Module: JSONData::Data

Defined in:
lib/json_data/data.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



42
43
44
45
# File 'lib/json_data/data.rb', line 42

def data_source=(json)
  data_source = json.is_a?(Hash) ? json : JSON.parse(json)
  @data_source = OpenStruct.new(data_source)
end

Class Method Details

.included(base) ⇒ Object

end ClassMethods



34
35
36
# File 'lib/json_data/data.rb', line 34

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

Instance Method Details

#initialize(options = {}) ⇒ Object



38
39
40
# File 'lib/json_data/data.rb', line 38

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

#required_attrsObject



51
52
53
# File 'lib/json_data/data.rb', line 51

def required_attrs
  self.class.instance_variable_get(:@required_attrs) || []
end

#valid?Boolean

Returns:

  • (Boolean)


47
48
49
# File 'lib/json_data/data.rb', line 47

def valid?
  required_attrs.empty? || required_attrs.all? { |f| !send(f).nil? }
end