Class: PRRD::Entity

Inherits:
Object
  • Object
show all
Defined in:
lib/prrd.rb

Overview

Entity base class

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(values = nil) ⇒ Entity

Constructor



135
136
137
138
139
140
141
142
143
144
# File 'lib/prrd.rb', line 135

def initialize(values = nil)
  @data = {}

  unless values.nil?
    values.each do |k, v|
      next unless @keys.include? k
      send "#{k}=".to_sym, v
    end
  end
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(m, *args, &block) ⇒ Boolean

Method missing

Parameters:

  • m (Symbol)
  • args (Array)
  • block (Proc)

Returns:

  • (Boolean)


159
160
161
162
163
164
165
166
167
168
169
170
# File 'lib/prrd.rb', line 159

def method_missing(m, *args, &block)
  ms = m.to_s
  if ms.include? '='
    ms = ms[0..-2]
    if @keys.include? ms.to_sym
      @data[ms.to_sym] = args[0]
      return true
    end
  end

  super
end

Instance Attribute Details

#dataObject

Accessors



132
133
134
# File 'lib/prrd.rb', line 132

def data
  @data
end

#keysObject

Accessors



132
133
134
# File 'lib/prrd.rb', line 132

def keys
  @keys
end

Instance Method Details

#validate_presence(*keys) ⇒ Object

Validate presence of keys in data collection

Parameters:

  • keys (Array)


148
149
150
151
152
# File 'lib/prrd.rb', line 148

def validate_presence(*keys)
  keys.each do |k|
    fail 'Define a "%s" option' % k if !@data.key?(k) || @data[k].nil?
  end
end