Module: Data2ruby

Includes:
Enumerable
Defined in:
lib/data2ruby.rb,
lib/data2ruby/version.rb

Defined Under Namespace

Modules: ClassMethods

Constant Summary collapse

VERSION =
'0.1.0'

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(klass) ⇒ Object

module ClassMethods



69
70
71
# File 'lib/data2ruby.rb', line 69

def self.included(klass)
  klass.extend(ClassMethods)
end

Instance Method Details

#dataObject

Raises:

  • (NotImplementedError)


73
74
75
# File 'lib/data2ruby.rb', line 73

def data
  raise NotImplementedError, 'Implement in the including class'
end

#each(&block) ⇒ Object



77
78
79
80
81
82
# 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_itemsObject



84
85
86
87
88
# 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?Boolean

Returns:

  • (Boolean)


90
91
92
93
94
# 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