Class: Release::Gem::GemDep
- Inherits:
-
Object
- Object
- Release::Gem::GemDep
- Includes:
- TR::CondUtils
- Defined in:
- lib/release/gem/gemdep.rb
Instance Method Summary collapse
- #all_dev_gems_has_config? ⇒ Boolean
- #configure_gem(name, opts = { type: :runtime, version: "" }) ⇒ Object
- #development_gem ⇒ Object
- #has_development_gem? ⇒ Boolean
-
#initialize(root, opts = { }) ⇒ GemDep
constructor
A new instance of GemDep.
- #load_gemfile_deps ⇒ Object
- #load_gemspec_deps ⇒ Object
- #not_configured_gem ⇒ Object
- #restore_dev_gem ⇒ Object
- #transfer_gem ⇒ Object
Constructor Details
Instance Method Details
#all_dev_gems_has_config? ⇒ Boolean
69 70 71 |
# File 'lib/release/gem/gemdep.rb', line 69 def all_dev_gems_has_config? not_configured_gem.length == 0 end |
#configure_gem(name, opts = { type: :runtime, version: "" }) ⇒ Object
47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/release/gem/gemdep.rb', line 47 def configure_gem(name, opts = { type: :runtime, version: "" }) raise GemDepError, "Given option to configure the gem is empty" if is_empty?(opts) raise GemDepError, "Given option is not a hash. Hash wity keys :type and/or :version (can be empty) is expected" if not opts.is_a?(Hash) raise GemDepError, "Production gem type not given. Please provide the gem type via key :type (valid value is either :runtime or :dev)" if is_empty?(opts[:type]) if @devGems.keys.include?(name.to_s) @gemConfig[name.to_s] = opts else raise GemDepError, "Name '#{name}' is not in the list of development gems. Valid value including : #{@devGems.keys.join(", ")}" end end |
#development_gem ⇒ Object
43 44 45 |
# File 'lib/release/gem/gemdep.rb', line 43 def development_gem @devGems end |
#has_development_gem? ⇒ Boolean
39 40 41 |
# File 'lib/release/gem/gemdep.rb', line 39 def has_development_gem? not_empty?(@devGems) end |
#load_gemfile_deps ⇒ Object
21 22 23 24 25 26 27 28 |
# File 'lib/release/gem/gemdep.rb', line 21 def load_gemfile_deps gdef = Bundler::Definition.build(gemfile_file, nil, {}) gdef.dependencies.each do |d| if not d.source.nil? and d.source.path.to_s != "." @devGems[d.name] = d.source.path.to_s end end end |
#load_gemspec_deps ⇒ Object
30 31 32 33 34 35 36 37 |
# File 'lib/release/gem/gemdep.rb', line 30 def load_gemspec_deps gs = ::Gem::Specification.load(gemspec_file) gs.dependencies.each do |d| if not d.source.nil? and d.source.path.to_s != "." @devGems[d.name] = d.source.path.to_s end end end |
#not_configured_gem ⇒ Object
73 74 75 |
# File 'lib/release/gem/gemdep.rb', line 73 def not_configured_gem @devGems.keys.difference(@gemConfig.keys) end |
#restore_dev_gem ⇒ Object
77 78 79 80 81 82 83 |
# File 'lib/release/gem/gemdep.rb', line 77 def restore_dev_gem @fileHistory.each do |k,v| FileUtils.mv(k,"#{k}.prod") FileUtils.cp(v,k) end @fileHistory.clear end |
#transfer_gem ⇒ Object
59 60 61 62 63 64 65 66 67 |
# File 'lib/release/gem/gemdep.rb', line 59 def transfer_gem if not all_dev_gems_has_config? raise GemDepError, "Not all gem has configuration. Gem required configuration includes: #{not_configured_gem.join(", ")}" end remove_dev_gem_from_gemfile add_gem_to_gemspec(@gemConfig) end |