module Pickle::Session::Parser

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

Attributes

session[RW]

Public Class Methods

included(parser_class) click to toggle source
# File lib/pickle/session/parser.rb, line 5
def self.included(parser_class)
  parser_class.alias_method_chain :parse_field, :model
end

Public Instance Methods

match_field() click to toggle source
# File lib/pickle/session/parser.rb, line 11
def match_field
  "(?:\\w+: (?:#{match_model}|#{match_value}))"
end
parse_field_with_model(field) click to toggle source
# File lib/pickle/session/parser.rb, line 15
def parse_field_with_model(field)
  if session && field =~ /^(\w+): #{capture_model}$/
    {$1 => session.model!($2)}
  else
    parse_field_without_model(field)
  end
end
parse_hash(hash) click to toggle source
# File lib/pickle/session/parser.rb, line 23
def parse_hash(hash)
  hash.inject({}) do |parsed, (key, val)|
    if session && val =~ /^#{capture_model}$/
      parsed.merge(key => session.model($1))
    else
      parsed.merge(key => val)
    end
  end
end