class Neomirror::PropertyCollector

Public Class Methods

new(&block) click to toggle source
# File lib/neomirror/property_collector.rb, line 20
def initialize(&block)
  return unless block_given? 
  if block.arity == 0
    self.instance_eval(&block)
  else
    block.call(self)
  end
end

Public Instance Methods

properties() click to toggle source
# File lib/neomirror/property_collector.rb, line 2
def properties
  @properties ||= {}
end
property(property_name, record_method_name = nil, &block) click to toggle source
# File lib/neomirror/property_collector.rb, line 6
def property(property_name, record_method_name = nil, &block)
  if record_method_name && block_given?
    raise ArgumentError, "For property provide record's method name or block (or proc)"
  elsif block_given?
    properties[property_name.to_sym] = block
  else
    record_method_name ||= property_name
    record_method_name = record_method_name.to_sym if record_method_name.is_a?(String)
    properties[property_name.to_sym] = record_method_name.to_proc
  end
end