Module: JSONData::Collection

Defined in:
lib/json_data/collection.rb

Defined Under Namespace

Modules: ClassMethods

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#data_source=(json) ⇒ Object



24
25
26
27
# File 'lib/json_data/collection.rb', line 24

def data_source=(json)
  @data_source = json.is_a?(String) ? JSON.parse(json) : json
  create_data_objects
end

Class Method Details

.included(base) ⇒ Object



15
16
17
18
# File 'lib/json_data/collection.rb', line 15

def self.included(base)
  base.send :include, Enumerable
  base.send :extend, ClassMethods
end

Instance Method Details

#each(&block) ⇒ Object



29
30
31
# File 'lib/json_data/collection.rb', line 29

def each(&block)
  data_source.each { |d| block.call(d) }
end

#empty?Boolean

Returns:

  • (Boolean)


37
38
39
# File 'lib/json_data/collection.rb', line 37

def empty?
  data_source.empty?
end

#initialize(options = {}) ⇒ Object



20
21
22
# File 'lib/json_data/collection.rb', line 20

def initialize(options = {})
  self.data_source = options.fetch(:data_source) { [] }
end

#valid?Boolean

Returns:

  • (Boolean)


33
34
35
# File 'lib/json_data/collection.rb', line 33

def valid?
  !empty? && all? { |d| d.valid? }
end