Class: Mactag::Indexer::Gem
- Inherits:
-
Object
- Object
- Mactag::Indexer::Gem
- Defined in:
- lib/mactag/indexer/gem.rb
Instance Attribute Summary collapse
-
#name ⇒ Object
Returns the value of attribute name.
- #version ⇒ Object
Class Method Summary collapse
Instance Method Summary collapse
- #dirs ⇒ Object
- #exist? ⇒ Boolean
-
#initialize(name, version = nil) ⇒ Gem
constructor
A new instance of Gem.
- #most_recent ⇒ Object
- #tag ⇒ Object
Constructor Details
#initialize(name, version = nil) ⇒ Gem
Returns a new instance of Gem.
7 8 9 10 |
# File 'lib/mactag/indexer/gem.rb', line 7 def initialize(name, version = nil) @name = name @version = version end |
Instance Attribute Details
#name ⇒ Object
Returns the value of attribute name.
4 5 6 |
# File 'lib/mactag/indexer/gem.rb', line 4 def name @name end |
#version ⇒ Object
24 25 26 |
# File 'lib/mactag/indexer/gem.rb', line 24 def version @version || most_recent end |
Class Method Details
.all ⇒ Object
48 49 50 51 52 53 |
# File 'lib/mactag/indexer/gem.rb', line 48 def all gems = Mactag::Bundler.gems gems.map do |name, version| new(name, version) end end |
.exist?(name) ⇒ Boolean
55 56 57 |
# File 'lib/mactag/indexer/gem.rb', line 55 def exist?(name) new(name).exist? end |
Instance Method Details
#dirs ⇒ Object
43 44 45 |
# File 'lib/mactag/indexer/gem.rb', line 43 def dirs @dirs ||= Dir.glob(File.join(Mactag::Config.gem_home, "#{name}-*")) end |
#exist? ⇒ Boolean
20 21 22 |
# File 'lib/mactag/indexer/gem.rb', line 20 def exist? dirs.size > 0 end |
#most_recent ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/mactag/indexer/gem.rb', line 28 def most_recent unless dirs.empty? if dirs.size == 1 gem = dirs.first else gem = dirs.sort.last end regex = /#{escaped_name}-([^\/]+)/ if match = regex.match(gem) match[1] end end end |
#tag ⇒ Object
12 13 14 15 16 17 18 |
# File 'lib/mactag/indexer/gem.rb', line 12 def tag if exist? File.join(Mactag::Config.gem_home, combo, 'lib', '**', '*.rb') else raise GemNotFoundError.new(self) end end |