Class: Ji2p::Package::DSL
Overview
DSL is a minimal, incomplete Gemfile DSL subset parser, only what is currently required is implemented.
Instance Attribute Summary collapse
-
#gemset ⇒ Object
readonly
Returns the value of attribute gemset.
Class Method Summary collapse
-
.parse(gemfile_content) ⇒ Gemset
Parsed Gemfile content as a Gemset.
Instance Method Summary collapse
- #gem(name, *requirements) ⇒ Object
- #gemspec(options = {}) ⇒ Object
-
#initialize ⇒ DSL
constructor
A new instance of DSL.
-
#source(url) ⇒ Object
DSL methods.
Constructor Details
Instance Attribute Details
#gemset ⇒ Object (readonly)
Returns the value of attribute gemset.
188 189 190 |
# File 'lib/ji2p/package/gemfile.rb', line 188 def gemset @gemset end |
Class Method Details
.parse(gemfile_content) ⇒ Gemset
Returns parsed Gemfile content as a Gemset.
196 197 198 199 200 |
# File 'lib/ji2p/package/gemfile.rb', line 196 def self.parse(gemfile_content) dsl = self.new dsl.instance_eval(gemfile_content) dsl.gemset end |
Instance Method Details
#gem(name, *requirements) ⇒ Object
208 209 210 211 |
# File 'lib/ji2p/package/gemfile.rb', line 208 def gem(name, *requirements) parsed = Gem.parse(name, *requirements) @gemset.add_gem(parsed) end |
#gemspec(options = {}) ⇒ Object
213 214 215 216 |
# File 'lib/ji2p/package/gemfile.rb', line 213 def gemspec( = {}) raise(GemfileError, "cannot declare multiple gemspec directives") unless @gemset.gemspec.empty? @gemset.gemspec = end |
#source(url) ⇒ Object
DSL methods
204 205 206 |
# File 'lib/ji2p/package/gemfile.rb', line 204 def source(url) @gemset.sources << url end |