class Gemrat::Gem
Constants
- ACTIONS
Attributes
action[RW]
name[RW]
no_version[RW]
valid[RW]
valid?[RW]
version_constraint[RW]
Public Class Methods
new()
click to toggle source
# File lib/gemrat/gem.rb, line 12 def initialize self.valid = true add! end
Public Instance Methods
add!()
click to toggle source
# File lib/gemrat/gem.rb, line 50 def add! self.action = ACTIONS.add end
add?()
click to toggle source
# File lib/gemrat/gem.rb, line 54 def add? self.action == ACTIONS.add end
invalid!()
click to toggle source
# File lib/gemrat/gem.rb, line 22 def invalid! self.valid = false end
no_version!()
click to toggle source
# File lib/gemrat/gem.rb, line 62 def no_version! self.no_version = true end
no_version?()
click to toggle source
# File lib/gemrat/gem.rb, line 58 def no_version? no_version end
skip!()
click to toggle source
# File lib/gemrat/gem.rb, line 42 def skip! self.action = ACTIONS.skip end
skip?()
click to toggle source
# File lib/gemrat/gem.rb, line 46 def skip? self.action == ACTIONS.skip end
to_s()
click to toggle source
# File lib/gemrat/gem.rb, line 18 def to_s @output ||= get_output end
update!()
click to toggle source
# File lib/gemrat/gem.rb, line 34 def update! self.action = ACTIONS.update end
update?()
click to toggle source
# File lib/gemrat/gem.rb, line 38 def update? self.action == ACTIONS.update end
version()
click to toggle source
# File lib/gemrat/gem.rb, line 26 def version if platform_dependent? platform_dependent_version else standard_version end end
Private Instance Methods
fetch_all()
click to toggle source
# File lib/gemrat/gem.rb, line 144 def fetch_all `gem search -r #{name}` end
find_all()
click to toggle source
# File lib/gemrat/gem.rb, line 140 def find_all fetch_all.split(/\n/) end
find_exact_match()
click to toggle source
# File lib/gemrat/gem.rb, line 134 def find_exact_match find_all.reject do |n| /^#{name} / !~ n end.first || raise(NotFound) end
get_output()
click to toggle source
# File lib/gemrat/gem.rb, line 68 def get_output if self.no_version? && self.version_constraint raise InvalidFlags end if self.no_version? return with_no_version elsif self.version_constraint return with_version_constraint else return "gem '#{name}', '#{version}'" end end
normalize_name()
click to toggle source
# File lib/gemrat/gem.rb, line 125 def normalize_name if no_version? normalized = ("gem '" + name + "'") else normalized = ("gem " + find_exact_match).gsub(/[()]/, "'") normalized.gsub(/#{name}/, "'#{name}',") end end
platform_dependent?()
click to toggle source
# File lib/gemrat/gem.rb, line 94 def platform_dependent? versions.count > 1 end
platform_dependent_version()
click to toggle source
# File lib/gemrat/gem.rb, line 113 def platform_dependent_version version_for_platform = versions.select do |key, value| key.join =~ /#{SYSTEM}/ if key.is_a? Array end.values if version_for_platform.empty? versions[:default].strip else version_for_platform.first end end
standard_version()
click to toggle source
# File lib/gemrat/gem.rb, line 98 def standard_version normalize_name.match(/\d[\d\.]+/).to_s end
versions()
click to toggle source
# File lib/gemrat/gem.rb, line 102 def versions platform_versions = normalize_name.gsub(/'/,"").split(",")[1..-1] hash = {:default => platform_versions.shift} platform_versions.inject(hash) do |hash, part| hash[part.split(" ")[1..-1]] = part.split(" ").first hash end end
with_no_version()
click to toggle source
# File lib/gemrat/gem.rb, line 81 def with_no_version "gem '#{name}'" end
with_version_constraint()
click to toggle source
# File lib/gemrat/gem.rb, line 85 def with_version_constraint case self.version_constraint when "optimistic" "gem '#{name}', '>= #{version}'" when "pessimistic" "gem '#{name}', '~> #{version}'" end end