class Pessimize::Gem
Attributes
after_name_index[RW]
name[RW]
original_tokens[RW]
token_before_version[RW]
version[RW]
version_index[RW]
Public Class Methods
new(gem_tokens)
click to toggle source
# File lib/pessimize/gem.rb, line 6 def initialize(gem_tokens) self.original_tokens = gem_tokens parse_name parse_version end
Public Instance Methods
to_s()
click to toggle source
# File lib/pessimize/gem.rb, line 22 def to_s tokens.inject("") { |a, t| a << t[2] } end
tokens()
click to toggle source
# File lib/pessimize/gem.rb, line 12 def tokens compiled_tokens = original_tokens.dup if version_index compiled_tokens[version_index][2] = version elsif version compiled_tokens[after_name_index..0] = version_tokens end compiled_tokens end
Protected Instance Methods
parse_name()
click to toggle source
# File lib/pessimize/gem.rb, line 42 def parse_name name_index = original_tokens.index { |t| t[1] == :on_tstring_content } self.name = original_tokens[name_index][2] self.after_name_index = name_index + 2 end
parse_version()
click to toggle source
# File lib/pessimize/gem.rb, line 48 def parse_version token_before_version = original_tokens.index { |t| t[1] == :on_comma } if token_before_version remaining_tokens = original_tokens[(token_before_version + 1)..-1] while [:on_sp, :on_tstring_beg, :on_ignored_nl].include? remaining_tokens.first[1] remaining_tokens.shift token_before_version += 1 end if remaining_tokens.first[1] == :on_tstring_content self.version_index = token_before_version + 1 self.version = remaining_tokens.first[2] end end end
version_tokens()
click to toggle source
# File lib/pessimize/gem.rb, line 32 def version_tokens [ [[], :on_comma, ","], [[], :on_sp, " "], [[], :on_tstring_beg, "\""], [[], :on_tstring_content, version], [[], :on_tstring_end, "\""] ] end