Module: Pickle::Session::Parser

Defined in:
lib/pickle/session/parser.rb

Overview

add ability to parse model names as fields, using a session

Defined Under Namespace

Modules: ParseFieldWithModel

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#sessionObject

Returns the value of attribute session.



19
20
21
# File 'lib/pickle/session/parser.rb', line 19

def session
  @session
end

Class Method Details

.included(parser_class) ⇒ Object



15
16
17
# File 'lib/pickle/session/parser.rb', line 15

def self.included(parser_class)
  parser_class.send(:prepend,  ParseFieldWithModel)
end

Instance Method Details

#match_fieldObject



21
22
23
# File 'lib/pickle/session/parser.rb', line 21

def match_field
  "(?:\\w+: (?:#{match_model}|#{match_value}))"
end

#parse_hash(hash) ⇒ Object



25
26
27
28
29
30
31
32
33
# File 'lib/pickle/session/parser.rb', line 25

def parse_hash(hash)
  hash.inject({}) do |parsed, (key, val)|
    if session && val.is_a?(String) && val =~ /^#{capture_model}$/
      parsed.merge(key => session.model($1))
    else
      parsed.merge(key => val)
    end
  end
end