Module: Pickle::Parser::WithSession

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

Overview

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

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#sessionObject

Returns the value of attribute session.



9
10
11
# File 'lib/pickle/parser/with_session.rb', line 9

def session
  @session
end

Class Method Details

.included(parser_class) ⇒ Object



5
6
7
# File 'lib/pickle/parser/with_session.rb', line 5

def self.included(parser_class)
  parser_class.alias_method_chain :parse_field, :model
end

Instance Method Details

#match_fieldObject



11
12
13
# File 'lib/pickle/parser/with_session.rb', line 11

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

#parse_field_with_model(field) ⇒ Object



15
16
17
18
19
20
21
# File 'lib/pickle/parser/with_session.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