Sha256: 9a150d4ce8f75a788c51f9934192aa993775503d210b682c1cea4991ba366c1a

Contents?: true

Size: 853 Bytes

Versions: 2

Compression:

Stored size: 853 Bytes

Contents

require 'ripple'

module Ripple
  module Document
    module Key
      extend ActiveSupport::Concern

      module ClassMethods
        # Defines the key to be derived from a property.
        # @param [String,Symbol] prop the property to derive the key from
        def key_on(prop)
          class_eval <<-CODE
          def key
            #{prop}.to_s
          end
          def key=(value)
            self.#{prop} = value
          end
          def key_attr
            :#{prop}
          end
          CODE
        end
      end
      
      module InstanceMethods
        # Reads the key for this Document.
        def key
          @key
        end
        
        # Sets the key for this Document.
        def key=(value)
          @key = value.to_s
        end

        def key_attr
          :key
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
ripple-anaf-0.8.0.beta2 lib/ripple-anaf/document/key.rb
ripple-anaf-0.8.0.beta1 lib/ripple-anaf/document/key.rb