Class: EacRubyGemsUtils::Gem

Inherits:
Object
  • Object
show all
Defined in:
lib/eac_ruby_gems_utils/gem.rb,
lib/eac_ruby_gems_utils/gem/command.rb

Defined Under Namespace

Classes: Command

Constant Summary collapse

GEMSPEC_EXTNAME =
'.gemspec'

Instance Method Summary collapse

Instance Method Details

#bundle(*args) ⇒ Object



21
22
23
# File 'lib/eac_ruby_gems_utils/gem.rb', line 21

def bundle(*args)
  ::EacRubyGemsUtils::Gem::Command.new(self, %w[bundle] + args).envvar_gemfile
end

#gemfile_lock_contentObject



29
30
31
# File 'lib/eac_ruby_gems_utils/gem.rb', line 29

def gemfile_lock_content
  ::Bundler::LockfileParser.new(::Bundler.read_file(gemfile_lock_path))
end

#gemfile_lock_gem_version(gem_name) ⇒ Object



25
26
27
# File 'lib/eac_ruby_gems_utils/gem.rb', line 25

def gemfile_lock_gem_version(gem_name)
  gemfile_lock_content.specs.find { |gem| gem.name == gem_name }.if_present(&:version)
end

#nameObject



33
34
35
# File 'lib/eac_ruby_gems_utils/gem.rb', line 33

def name
  name_by_gemspec || name_by_path
end

#name_by_gemspecObject



37
38
39
# File 'lib/eac_ruby_gems_utils/gem.rb', line 37

def name_by_gemspec
  gemspec_path.if_present { |v| v.basename(GEMSPEC_EXTNAME).to_path }
end

#name_by_pathObject



41
42
43
# File 'lib/eac_ruby_gems_utils/gem.rb', line 41

def name_by_path
  root.basename.to_s
end

#namespace_partsObject



45
46
47
# File 'lib/eac_ruby_gems_utils/gem.rb', line 45

def namespace_parts
  name.split('-')
end

#rake(*args) ⇒ Object



49
50
51
52
53
# File 'lib/eac_ruby_gems_utils/gem.rb', line 49

def rake(*args)
  raise "File \"#{rakefile_path}\" does not exist" unless rakefile_path.exist?

  bundle('exec', 'rake', '--rakefile', rakefile_path, *args)
end

#to_sObject



17
18
19
# File 'lib/eac_ruby_gems_utils/gem.rb', line 17

def to_s
  name
end

#versionObject



55
56
57
# File 'lib/eac_ruby_gems_utils/gem.rb', line 55

def version
  /VERSION\s*=\s*[\'\"]([^\'\"]+)[\'\"]/.if_match(version_file.read) { |m| m[1] }
end