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
-
.included(klass) ⇒ Object
module ClassMethods.
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
#data ⇒ Object
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_items ⇒ Object
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
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 |