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 ⇒ Class<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.
- #runtime ⇒ Bundler::Runtime protected
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 ⇒ Class<Kamaze::Project::Tools::Gemspec::Writer::Dependency> (protected)
61 62 63 |
# File 'lib/kamaze/project/tools/gemspec/writer/dep_gen.rb', line 61 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
56 57 58 |
# File 'lib/kamaze/project/tools/gemspec/writer/dep_gen.rb', line 56 def gems_by_group(group) runtime.dependencies.select { |d| d.groups.include?(group.to_sym) }.to_a end |
#runtime ⇒ Bundler::Runtime (protected)
47 48 49 50 |
# File 'lib/kamaze/project/tools/gemspec/writer/dep_gen.rb', line 47 def runtime # Bundler.environment has been removed in favor of Bundler.load Bundler.public_send(Bundler.respond_to?(:load) ? :load : :environment) end |