Module: Avm::EacRubyBase1::Sources::Base::Rubygems

Defined in:
lib/avm/eac_ruby_base1/sources/base/rubygems.rb

Constant Summary collapse

GEMSPEC_EXTNAME =
'.gemspec'

Instance Method Summary collapse

Instance Method Details

#gem_nameObject



13
14
15
# File 'lib/avm/eac_ruby_base1/sources/base/rubygems.rb', line 13

def gem_name
  gem_name_by_gemspec || gem_name_by_path
end

#gem_name_by_gemspecObject



17
18
19
# File 'lib/avm/eac_ruby_base1/sources/base/rubygems.rb', line 17

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

#gem_name_by_pathObject



21
22
23
24
# File 'lib/avm/eac_ruby_base1/sources/base/rubygems.rb', line 21

def gem_name_by_path
  fullname = path.basename.to_s
  /\A(.+)(?:-\d+(?:\.\d+)*)\z/.if_match(fullname, false) { |m| m[1] }.if_present(fullname)
end

#gem_namespace_partsObject



26
27
28
# File 'lib/avm/eac_ruby_base1/sources/base/rubygems.rb', line 26

def gem_namespace_parts
  gem_name.split('-')
end

#gemspecGem::Specification

Returns:

  • (Gem::Specification)


31
32
33
# File 'lib/avm/eac_ruby_base1/sources/base/rubygems.rb', line 31

def gemspec
  ::Gem::Specification.load(gemspec_path.to_path)
end

#gemspec_pathPathname

Returns:

  • (Pathname)


36
37
38
# File 'lib/avm/eac_ruby_base1/sources/base/rubygems.rb', line 36

def gemspec_path
  path.glob("*#{GEMSPEC_EXTNAME}").first
end