Sha256: a5e555266ed9601c51ac868f126aa3635be44194cb5aba315a0c67aa42f2c29a
Contents?: true
Size: 849 Bytes
Versions: 24
Compression:
Stored size: 849 Bytes
Contents
module Pickle module Session # add ability to parse model names as fields, using a session module Parser def self.included(parser_class) parser_class.alias_method_chain :parse_field, :model end attr_accessor :session def match_field "(?:\\w+: (?:#{match_model}|#{match_value}))" end def parse_field_with_model(field) if session && field =~ /^(\w+): #{capture_model}$/ {$1 => session.model($2)} else parse_field_without_model(field) end end 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 end end end
Version data entries
24 entries across 24 versions & 3 rubygems