Class: Bowerinstaller::Dsl
- Inherits:
-
Object
- Object
- Bowerinstaller::Dsl
- Defined in:
- lib/bowerinstaller/dsl.rb
Instance Method Summary collapse
- #do_not_install ⇒ Object
- #eval_file(file) ⇒ Object
- #group(name, options = {}) ⇒ Object
- #groups ⇒ Object
-
#initialize ⇒ Dsl
constructor
A new instance of Dsl.
- #package(name, version = nil, &dsl) ⇒ Object
- #source(src) ⇒ Object
- #to_bower_json ⇒ Object
Constructor Details
#initialize ⇒ Dsl
Returns a new instance of Dsl.
4 5 6 7 |
# File 'lib/bowerinstaller/dsl.rb', line 4 def initialize @default_options = {} eval_file(Rails.root.join('bower.rb')) end |
Instance Method Details
#do_not_install ⇒ Object
30 31 32 |
# File 'lib/bowerinstaller/dsl.rb', line 30 def do_not_install @context[:sources] = [] end |
#eval_file(file) ⇒ Object
15 16 17 18 |
# File 'lib/bowerinstaller/dsl.rb', line 15 def eval_file(file) contents = File.open(file,"r").read instance_eval(contents, file.to_s, 1) end |
#group(name, options = {}) ⇒ Object
9 10 11 12 13 |
# File 'lib/bowerinstaller/dsl.rb', line 9 def group name, ={} @context = {:packages => []} yield (@groups ||= []) << @default_options.merge({ :name => name, :packages => @context[:packages]}) end |
#groups ⇒ Object
38 39 40 |
# File 'lib/bowerinstaller/dsl.rb', line 38 def groups @groups end |
#package(name, version = nil, &dsl) ⇒ Object
20 21 22 23 24 25 26 27 28 |
# File 'lib/bowerinstaller/dsl.rb', line 20 def package name, version=nil, &dsl @context[:sources] = []; if dsl dsl.call() else @context[:sources] = nil # use default install method end (@context[:packages] || []) << {:name => name.to_s, :version => version, :sources => @context[:sources]} end |
#source(src) ⇒ Object
34 35 36 |
# File 'lib/bowerinstaller/dsl.rb', line 34 def source src (@context[:sources] ||= []) << src end |
#to_bower_json ⇒ Object
42 43 44 45 46 47 48 49 50 51 |
# File 'lib/bowerinstaller/dsl.rb', line 42 def to_bower_json dependencies = {}; groups.each do|grp| grp[:packages].each do |pkg| dependencies[pkg[:name]] = pkg[:version] || 'latest' end end return JSON.pretty_generate( {:dependencies => dependencies} ) end |