module Data2ruby
Constants
- VERSION
Public Class Methods
included(klass)
click to toggle source
# File lib/data2ruby.rb, line 69 def self.included(klass) klass.extend(ClassMethods) end
Public Instance Methods
data()
click to toggle source
# File lib/data2ruby.rb, line 73 def data raise NotImplementedError, 'Implement in the including class' end
each(&block)
click to toggle source
# File lib/data2ruby.rb, line 77 def each(&block) self.class.associations.each do |assoc_name| object = public_send(assoc_name) object.is_a?(Array) ? object.each(&block) : block.yield(object) end end
invalid_items()
click to toggle source
# File lib/data2ruby.rb, line 84 def invalid_items reduce(select { |item| item.errors.any? }) do |sum, item| sum + item.invalid_items end end
valid_structure?()
click to toggle source
# File lib/data2ruby.rb, line 90 def valid_structure? reduce(respond_to?(:valid?) ? valid? : true) do |sum, item| item.valid_structure? && sum # forces to evaluate validity for all the nodes end end
Private Instance Methods
memoize(var_name, &block)
click to toggle source
# File lib/data2ruby.rb, line 98 def memoize(var_name, &block) if instance_variable_defined?(var_name) instance_variable_get(var_name) else instance_variable_set( var_name, instance_exec(&block) ) end end