class Pessimize::Gemfile
Attributes
gem_token_map[RW]
gems[RW]
tokens[RW]
Public Class Methods
new(contents)
click to toggle source
# File lib/pessimize/gemfile.rb, line 8 def initialize(contents) self.tokens = Ripper.lex(contents) self.gems = [] self.gem_token_map = [] parse_gems_from_tokens! end
Public Instance Methods
to_s()
click to toggle source
# File lib/pessimize/gemfile.rb, line 16 def to_s TokenCompiler.new(tokens).compile_to_string(gems, gem_token_map) end
Protected Instance Methods
all_gem_tokens_collected?(current_token, next_token)
click to toggle source
# File lib/pessimize/gemfile.rb, line 44 def all_gem_tokens_collected?(current_token, next_token) [:on_nl, :on_comment].include?(next_token[1]) end
parse_gems_from_tokens!()
click to toggle source
# File lib/pessimize/gemfile.rb, line 24 def parse_gems_from_tokens! enum = tokens.each_with_index loop do (tok, i) = enum.next if tok[1] == :on_ident && tok[2] == "gem" gem_toks = [] until all_gem_tokens_collected?(tok[0], enum.peek[0]) (tok, j) = enum.next gem_toks << tok end self.gems << Pessimize::Gem.new(gem_toks) self.gem_token_map << [i + 1, j] end end rescue StopIteration end