Class: Kamaze::Project::Tools::Gemspec::Writer::DepGen
- Defined in:
- lib/kamaze/project/tools/gemspec/writer/dep_gen.rb
Overview
Dependencies generator (using a kindo of decorator)
Inspiration taken from GemspecDepsGen
Instance Method Summary collapse
- #decorator ⇒ Kamaze::Project::Tools::Gemspec::Writer::Dependency protected
-
#dependencies ⇒ Hash
Get dependencies indexed by group.
-
#dependency ⇒ Kamaze::Project::Tools::Gemspec::Writer::Dependency
Get an object describing dependency.
-
#gems_by_group(group) ⇒ Array
protected
Get gems for given group.
-
#initialize(spec_name = 's') ⇒ DepGen
constructor
A new instance of DepGen.
Constructor Details
#initialize(spec_name = 's') ⇒ DepGen
Returns a new instance of DepGen.
20 21 22 |
# File 'lib/kamaze/project/tools/gemspec/writer/dep_gen.rb', line 20 def initialize(spec_name = 's') @spec_name = spec_name.to_s end |
Instance Method Details
#decorator ⇒ Kamaze::Project::Tools::Gemspec::Writer::Dependency (protected)
58 59 60 |
# File 'lib/kamaze/project/tools/gemspec/writer/dep_gen.rb', line 58 def decorator Kamaze::Project::Tools::Gemspec::Writer::Dependency end |
#dependencies ⇒ Hash
Get dependencies indexed by group
27 28 29 30 31 32 33 34 35 |
# File 'lib/kamaze/project/tools/gemspec/writer/dep_gen.rb', line 27 def dependencies {}.yield_self do |dependencies| { default: :runtime, development: :development }.each do |k, type| dependencies[type] = gems_by_group(k).to_a.freeze end dependencies end.freeze end |
#dependency ⇒ Kamaze::Project::Tools::Gemspec::Writer::Dependency
Get an object describing dependency
40 41 42 |
# File 'lib/kamaze/project/tools/gemspec/writer/dep_gen.rb', line 40 def dependency decorator.new(dependencies, @spec_name) end |
#gems_by_group(group) ⇒ Array (protected)
Get gems for given group
50 51 52 53 54 55 |
# File 'lib/kamaze/project/tools/gemspec/writer/dep_gen.rb', line 50 def gems_by_group(group) Bundler.environment .dependencies .select { |d| d.groups.include?(group.to_sym) } .to_a end |