Class: Riveter::Model
- Inherits:
-
Object
show all
- Defined in:
- lib/riveter/models.rb
Overview
Read-only view over a response hash: declared fields become reader methods,
unknown fields stay reachable via #raw / #[].
Direct Known Subclasses
Account, AccountInfo, ApiKeyInfo, Credit, Enrichment, EnrichmentSummary, Extraction, Monitor, Pagination, Run, RunListItem, RunProgress, RunsSummary, ScrapeResult
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(raw) ⇒ Model
Returns a new instance of Model.
9
10
11
|
# File 'lib/riveter/models.rb', line 9
def initialize(raw)
@raw = raw.is_a?(Hash) ? raw : {}
end
|
Instance Attribute Details
#raw ⇒ Object
Returns the value of attribute raw.
7
8
9
|
# File 'lib/riveter/models.rb', line 7
def raw
@raw
end
|
Class Method Details
.field(*names) ⇒ Object
25
26
27
28
29
|
# File 'lib/riveter/models.rb', line 25
def self.field(*names)
names.each do |name|
define_method(name) { @raw[name.to_s] }
end
end
|
.model_field(name, model_class) ⇒ Object
31
32
33
34
35
36
|
# File 'lib/riveter/models.rb', line 31
def self.model_field(name, model_class)
define_method(name) do
value = @raw[name.to_s]
value.nil? ? nil : model_class.new(value)
end
end
|
Instance Method Details
#[](key) ⇒ Object
13
14
15
|
# File 'lib/riveter/models.rb', line 13
def [](key)
@raw[key.to_s]
end
|
#inspect ⇒ Object
21
22
23
|
# File 'lib/riveter/models.rb', line 21
def inspect
"#<#{self.class.name} #{@raw.inspect}>"
end
|
#to_h ⇒ Object
17
18
19
|
# File 'lib/riveter/models.rb', line 17
def to_h
@raw
end
|