class Harvest::ResourceFactory
Public Instance Methods
client(data)
click to toggle source
# File lib/harvest/resourcefactory.rb, line 100 def client(data) data ||= {} convert_dates(Struct::ResourceClient.new(data)) unless data.nil? end
company(data)
click to toggle source
# File lib/harvest/resourcefactory.rb, line 22 def company(data) data ||= {} Struct::Company.new(data) end
estimate(data)
click to toggle source
# File lib/harvest/resourcefactory.rb, line 27 def estimate(data) data ||= {} convert_estimate_line_items(convert_client(Struct::Estimate.new(data))) end
estimate_item_category(data)
click to toggle source
# File lib/harvest/resourcefactory.rb, line 42 def estimate_item_category(data) data ||= {} Struct::EstimateItemCategory.new(data) end
estimate_line_item(data)
click to toggle source
# File lib/harvest/resourcefactory.rb, line 32 def estimate_line_item(data) data ||= {} Struct::EstimateLineItem.new(data) end
estimate_message(data)
click to toggle source
# File lib/harvest/resourcefactory.rb, line 37 def estimate_message(data) data ||= {} Struct::EstimateMessage.new(data) end
expense(data)
click to toggle source
# File lib/harvest/resourcefactory.rb, line 52 def expense(data) data ||= {} Struct::Expense.new(data) end
expense_category(data)
click to toggle source
# File lib/harvest/resourcefactory.rb, line 47 def expense_category(data) data ||= {} Struct::ExpenseCategory.new(data) end
invoice(data)
click to toggle source
# File lib/harvest/resourcefactory.rb, line 57 def invoice(data) data ||= {} Struct::Invoice.new(data) end
invoice_item_category(data)
click to toggle source
# File lib/harvest/resourcefactory.rb, line 77 def invoice_item_category(data) data ||= {} Struct::InvoiceItemCategory.new(data) end
invoice_line_item(data)
click to toggle source
# File lib/harvest/resourcefactory.rb, line 62 def invoice_line_item(data) data ||= {} Struct::InvoiceLineItem.new(data) end
invoice_message(data)
click to toggle source
# File lib/harvest/resourcefactory.rb, line 67 def invoice_message(data) data ||= {} Struct::InvoiceMessage.new(data) end
invoice_payment(data)
click to toggle source
# File lib/harvest/resourcefactory.rb, line 72 def invoice_payment(data) data ||= {} Struct::InvoicePayment.new(data) end
message_recipient(data)
click to toggle source
# File lib/harvest/resourcefactory.rb, line 17 def message_recipient(data) data ||= {} Struct::MessageRecipient.new(data) end
project(data)
click to toggle source
# File lib/harvest/resourcefactory.rb, line 95 def project(data) data ||= {} convert_dates(Struct::Project.new(data)) unless data.nil? end
project_assignment(data)
click to toggle source
# File lib/harvest/resourcefactory.rb, line 82 def project_assignment(data) data ||= {} unless data.nil? convert_dates( convert_project_client( convert_task_assignments( Struct::ProjectAssignment.new(data) ) ) ) end end
resource(klass, data)
click to toggle source
# File lib/harvest/resourcefactory.rb, line 12 def resource(klass, data) data ||= {} send(klass.to_sym, data) end
task(data)
click to toggle source
# File lib/harvest/resourcefactory.rb, line 110 def task(data) data ||= {} convert_dates(Struct::Task.new(data)) unless data.nil? end
task_assignment(data)
click to toggle source
# File lib/harvest/resourcefactory.rb, line 105 def task_assignment(data) data ||= {} convert_dates(convert_task(Struct::TaskAssignment.new(data))) unless data.nil? end
time_entry(data)
click to toggle source
# File lib/harvest/resourcefactory.rb, line 130 def time_entry(data) data ||= {} convert_dates( convert_project_client( convert_task_assignment( convert_task( convert_user_assignment( convert_user( convert_external_reference( Struct::TimeEntry.new(data) ) ) ) ) ) ) ) end
time_entry_external_reference(data)
click to toggle source
# File lib/harvest/resourcefactory.rb, line 125 def time_entry_external_reference(data) data ||= {} Struct::TimeEntryExternalReference.new(data) end
user(data)
click to toggle source
# File lib/harvest/resourcefactory.rb, line 115 def user(data) data ||= {} convert_dates(Struct::User.new(data)) unless data.nil? end
user_assignment(data)
click to toggle source
# File lib/harvest/resourcefactory.rb, line 120 def user_assignment(data) data ||= {} convert_dates(Struct::UserAssignment.new(data)) unless data.nil? end
Private Instance Methods
convert_client(data)
click to toggle source
@param data [Struct] passed a struct which contains an attribute client
# File lib/harvest/resourcefactory.rb, line 196 def convert_client(data) data.client = client(data.client) data end
convert_dates(data)
click to toggle source
# File lib/harvest/resourcefactory.rb, line 210 def convert_dates(data) %i[created_at updated_at sent_at accepted_at declined_at].each do |key| if data.members.include?(key) && !data.method(key).call.nil? data.method("#{key}=").call(DateTime.strptime(data.method(key).call)) end end %i[spent_date].each do |key| if data.members.include?(key) && !data.method(key).call.nil? data.method("#{key}=").call(Date.strptime(data.method(key).call)) end end data end
convert_estimate_line_items(data)
click to toggle source
# File lib/harvest/resourcefactory.rb, line 151 def convert_estimate_line_items(data) unless data.line_items.nil? data.line_items = data.line_items.map { |ta| estimate_line_item(ta) } end data end
convert_external_reference(data)
click to toggle source
# File lib/harvest/resourcefactory.rb, line 158 def convert_external_reference(data) data.external_reference = time_entry_external_reference(data.external_reference) data end
convert_project(data)
click to toggle source
# File lib/harvest/resourcefactory.rb, line 201 def convert_project(data) data.project = project(data.project) data end
convert_project_client(data)
click to toggle source
# File lib/harvest/resourcefactory.rb, line 206 def convert_project_client(data) convert_project(convert_client(data)) end
convert_task(data)
click to toggle source
# File lib/harvest/resourcefactory.rb, line 189 def convert_task(data) data.task ||= {} data.task = task(data.task) unless data.task.nil? data end
convert_task_assignment(data)
click to toggle source
# File lib/harvest/resourcefactory.rb, line 175 def convert_task_assignment(data) data.task_assignment ||= {} data.task_assignment = task_assignment(data.task_assignment) unless data.task_assignment.nil? data end
convert_task_assignments(data)
click to toggle source
# File lib/harvest/resourcefactory.rb, line 182 def convert_task_assignments(data) unless data.task_assignments.nil? data.task_assignments = data.task_assignments.map { |ta| task_assignment(ta) } end data end
convert_user(data)
click to toggle source
# File lib/harvest/resourcefactory.rb, line 163 def convert_user(data) data.user ||= {} data.user = user(data.user) unless data.nil? data end
convert_user_assignment(data)
click to toggle source
# File lib/harvest/resourcefactory.rb, line 169 def convert_user_assignment(data) data.user_assignment ||= {} data.user_assignment = user_assignment(data.user_assignment) unless data.nil? data end