Class: Teamtailor::Record
- Inherits:
-
Object
- Object
- Teamtailor::Record
- Defined in:
- lib/teamtailor/record.rb
Direct Known Subclasses
Candidate, Company, CustomField, CustomFieldValue, Department, Job, JobApplication, Location, PartnerResult, Referral, RejectReason, Requisition, RequisitionStepVerdict, Stage, User
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(data, included = {}) ⇒ Record
constructor
A new instance of Record.
- #method_missing(m) ⇒ Object
- #serialize ⇒ Object
Constructor Details
#initialize(data, included = {}) ⇒ Record
Returns a new instance of Record.
5 6 7 8 |
# File 'lib/teamtailor/record.rb', line 5 def initialize(data, included = {}) @data = data @included = included end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(m) ⇒ Object
22 23 24 25 26 27 28 29 30 |
# File 'lib/teamtailor/record.rb', line 22 def method_missing(m) if m == :id data.dig('id').to_i elsif relationship_keys.include?(m.to_s.gsub('_', '-')) build_relationship(m.to_s.gsub('_', '-')) else data.dig('attributes', m.to_s.gsub('_', '-')) end end |
Class Method Details
.deserialize(value) ⇒ Object
10 11 12 13 |
# File 'lib/teamtailor/record.rb', line 10 def self.deserialize(value) payload = JSON.parse value new(payload['data'], payload['included']) end |
Instance Method Details
#serialize ⇒ Object
15 16 17 18 19 20 |
# File 'lib/teamtailor/record.rb', line 15 def serialize { data: data, included: included }.to_json end |