class Koine::Hydrator::Hydrator

Public Instance Methods

extract(object) click to toggle source
# File lib/koine/hydrator/hydrator.rb, line 11
def extract(object)
  data = {}

  entity_methods(object).each do |method|
    if object.method(method).arity == 0
      data[method] = object.send(method)
    end
  end

  data
end
hydrate(data, object) click to toggle source
# File lib/koine/hydrator/hydrator.rb, line 4
def hydrate(data, object)
  data.each do |key, value|
    method = "#{key}="
    object.send(method, value) if object.respond_to?(method)
  end
end

Private Instance Methods

entity_methods(object) click to toggle source

disconsiders methods that are inherited from Object class

# File lib/koine/hydrator/hydrator.rb, line 26
def entity_methods(object)
  reject_methods = Object.public_instance_methods

  object.public_methods(true).reject do |method|
    reject_methods.include?(method)
  end
end