Class: JSONAPI::Sideposting::LidResolver
- Inherits:
-
Object
- Object
- JSONAPI::Sideposting::LidResolver
- Defined in:
- lib/json_api/sideposting/lid_resolver.rb
Instance Method Summary collapse
- #[](lid) ⇒ Object
- #add(lid, type:, id:) ⇒ Object
-
#initialize ⇒ LidResolver
constructor
A new instance of LidResolver.
- #resolve(data) ⇒ Object
Constructor Details
#initialize ⇒ LidResolver
Returns a new instance of LidResolver.
6 7 8 |
# File 'lib/json_api/sideposting/lid_resolver.rb', line 6 def initialize @map = {} end |
Instance Method Details
#[](lid) ⇒ Object
32 33 34 |
# File 'lib/json_api/sideposting/lid_resolver.rb', line 32 def [](lid) @map[lid.to_s] end |
#add(lid, type:, id:) ⇒ Object
10 11 12 13 14 15 16 17 |
# File 'lib/json_api/sideposting/lid_resolver.rb', line 10 def add(lid, type:, id:) raise ArgumentError, "lid is required" if lid.blank? raise ArgumentError, "type is required" if type.blank? raise ArgumentError, "id is required" if id.blank? @map[lid.to_s] = { type: type.to_s, id: id.to_s } self end |
#resolve(data) ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/json_api/sideposting/lid_resolver.rb', line 19 def resolve(data) return data if data.nil? case data when Hash resolve_hash(data) when Array data.map { |item| resolve(item) } else data end end |