Sha256: 2de75309793d004ebee7342e4d460dfbf0bddf170d8ec086cfe4a28c767de241

Contents?: true

Size: 466 Bytes

Versions: 3

Compression:

Stored size: 466 Bytes

Contents

module Decoradar
  class Attribute
    attr_reader :name, :as, :include_if

    def initialize(options = {})
      @name = options.fetch(:name)
      @as = options.fetch(:as, @name)
      @include_if = options[:include_if]
    end

    def including?(object)
      case include_if
      when nil then true
      when Proc then include_if.call(object)
      else false
      end
    end

    def serialize(hash, value)
      hash.merge(as => value)
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
decoradar-0.1.1 lib/decoradar/attribute.rb
decoradar-0.1.0 lib/decoradar/attribute.rb
decoradar-0.0.1 lib/decoradar/attribute.rb