module Skroutz::Associations
Public Instance Methods
association(name, options = {})
click to toggle source
# File lib/skroutz/associations.rb, line 6 def association(name, options = {}) associations << name define_association(name, options) end
associations()
click to toggle source
# File lib/skroutz/associations.rb, line 11 def associations @associations ||= [] end
define_association(name, options)
click to toggle source
# File lib/skroutz/associations.rb, line 17 def define_association(name, options) # rubocop:disable Metrics/AbcSize define_method(name) do class_name = options.fetch(:class_name, name.to_s).classify.pluralize owner = attributes.key?("#{name}_id") ? nil : self prefix = options[:class_name] && owner ? name.to_s : nil klass = "Skroutz::#{class_name}Collection".constantize collection = klass.new nil, client, owner, prefix: prefix owner ? collection : collection.find(attributes["#{name}_id"]) end end