class Agris::Api::Grain::Contract

Constants

ATTRIBUTE_NAMES

Public Class Methods

add_transcodes_to_schedule(schedule) click to toggle source

This adds the transcode attributes like salesperson into the schedule

# File lib/agris/api/grain/contract.rb, line 104
def self.add_transcodes_to_schedule(schedule)
  if schedule['trancodes']
    trancodes = schedule['trancodes']['trancode']
    trancodes = [trancodes] unless trancodes.class == Array
    trancodes.each do |trancode|
      label_code = trancode['label'].downcase + 'code'
      schedule[label_code] = trancode['code']
      label_description = trancode['label'].downcase + 'description'
      schedule[label_description] = trancode['description']
    end
  end
  schedule
end
from_json_hash(hash) click to toggle source
Calls superclass method
# File lib/agris/api/grain/contract.rb, line 85
def self.from_json_hash(hash)
  super.tap do |contract|
    if hash['schedules']
      contract.schedules.concat(
        hash['schedules'].map do |schedule|
          Schedule.from_json_hash(schedule)
        end
      )
    end
  end
end
from_xml_hash(hash) click to toggle source
Calls superclass method
# File lib/agris/api/grain/contract.rb, line 70
def self.from_xml_hash(hash)
  super.tap do |document|
    if hash['schedules']
      document.schedules.concat(
        [hash['schedules']['schedule']]
          .flatten
          .map do |schedule|
            enhanced_schedule = add_transcodes_to_schedule(schedule)
            Schedule.from_xml_hash(enhanced_schedule)
          end
      )
    end
  end
end
new(hash = {}) click to toggle source
Calls superclass method
# File lib/agris/api/grain/contract.rb, line 97
def initialize(hash = {})
  super

  @schedules = []
end