Browse Source

basic testing and separation of the Cask DSL

phinze 13 years ago
parent
commit
a0434184b0
  1. 20
      lib/cask.rb
  2. 25
      lib/cask/dsl.rb
  3. 10
      test/dsl_test.rb
  4. 5
      test/support/Casks/test-cask.rb
  5. 3
      test/test_helper.rb

20
lib/cask.rb

@ -13,12 +13,14 @@ require 'cask/cli/install'
require 'cask/cli/linkapps'
require 'cask/cli/list'
require 'cask/cli/search'
require 'cask/dsl'
require 'cask/exceptions'
require 'cask/scopes'
require 'plist/parser'
class Cask
include Cask::Scopes
include Cask::DSL
def self.tapspath
HOMEBREW_PREFIX.join "Library", "Taps"
@ -33,11 +35,6 @@ class Cask
HOME_APPS.mkpath
end
def self.homepage(homepage=nil)
@homepage ||= homepage
end
def homepage; self.class.homepage; end
def self.path(cask_title)
cask_title = all.grep(/#{cask_title}$/).first unless cask_title =~ /\//
tapspath.join(cask_title.sub("/", "/Casks/") + ".rb") unless cask_title.nil?
@ -54,24 +51,11 @@ class Cask
self.name.gsub(/([a-z\d])([A-Z])/,'\1-\2').downcase
end
def self.url(url=nil)
@url ||= URI.parse(url)
end
def url; self.class.url; end
attr_reader :title
def initialize(title=self.class.title)
@title = title
end
def self.version(version=nil)
@version ||= version
end
def version; self.class.version; end
# def version
# Pathname.new(self.url.path.to_s).version
# end
VALID_SUFFIXES = ['dmg', 'pkg', 'app']
def destination_path

25
lib/cask/dsl.rb

@ -0,0 +1,25 @@
module Cask::DSL
def self.included(base)
base.extend(ClassMethods)
end
def homepage; self.class.homepage; end
def url; self.class.url; end
def version; self.class.version; end
module ClassMethods
def homepage(homepage=nil)
@homepage ||= homepage
end
def url(url=nil)
@url ||= URI.parse(url)
end
def version(version=nil)
@version ||= version
end
end
end

10
test/dsl_test.rb

@ -0,0 +1,10 @@
require 'test_helper'
describe Cask::DSL do
it "lets you set url, homepage, and version" do
test_cask = TestCask.new
test_cask.url.must_equal URI('http://example.com/TestCask.dmg')
test_cask.homepage.must_equal 'http://example.com/'
test_cask.version.must_equal '1.2.3'
end
end

5
test/support/Casks/test-cask.rb

@ -0,0 +1,5 @@
class TestCask < Cask
url 'http://example.com/TestCask.dmg'
homepage 'http://example.com/'
version '1.2.3'
end

3
test/test_helper.rb

@ -38,3 +38,6 @@ require 'cmd/tap'
shutup do
Homebrew.install_tap 'phinze', 'cask'
end
# a test cask
require 'support/Casks/test-cask'

Loading…
Cancel
Save