Method: Filemaker::Record#initialize
- Defined in:
- lib/filemaker/record.rb
#initialize(record, resultset, portal_table_name = nil) ⇒ Record
Returns a new instance of Record.
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/filemaker/record.rb', line 14 def initialize(record, resultset, portal_table_name = nil) @mod_id = record['mod-id'] @record_id = record['record-id'] @portals = HashWithIndifferentAndCaseInsensitiveAccess.new @dirty = {} # Keep track of field modification @ready = false record.xpath('field').each do |field| # `field` is Nokogiri::XML::Element field_name = field['name'] # Right now, I do not want to mess with the field name # field_name.gsub!(Regexp.new(portal_table_name + '::'), '') if portal_table_name datum = [] = if portal_table_name resultset.portal_fields[portal_table_name] else resultset.fields end field.xpath('data').each do |data| datum.push([field_name].raw_cast(data.inner_text)) end self[field_name] = normalize_data(datum) end build_portals(record.xpath('relatedset'), resultset) @ready = true end |