class Ivy::Serializers::Attribute

Public Class Methods

new(name, &getter) click to toggle source
# File lib/ivy/serializers/attribute.rb, line 4
def initialize(name, &getter)
  @name = name
  @getter = getter || method(:default_getter)
end

Public Instance Methods

generate(generator, resource) click to toggle source
# File lib/ivy/serializers/attribute.rb, line 9
def generate(generator, resource)
  generator.attribute(@name, get(resource))
end

Private Instance Methods

default_getter(resource) click to toggle source
# File lib/ivy/serializers/attribute.rb, line 15
def default_getter(resource)
  resource.public_send(@name)
end
get(resource) click to toggle source
# File lib/ivy/serializers/attribute.rb, line 19
def get(resource)
  @getter.call(resource) if resource
end