Class: Grist::Type::Base
- Inherits:
-
Object
- Object
- Grist::Type::Base
- Includes:
- Accessible, Rest, Searchable
- Defined in:
- lib/grist/type/base.rb
Constant Summary collapse
- PATH =
""- KEYS =
%w[].freeze
Class Method Summary collapse
-
.all ⇒ Array
List all items.
-
.delete(id) ⇒ Grist::Type::Base?
Deletes the item.
-
.find(id) ⇒ Object
Finds an item by ID return [Grist::Type::Base, nil] The item or nil if not found.
-
.update(id, data) ⇒ Grist::Type::Base?
Updates the item.
Instance Method Summary collapse
- #deleted? ⇒ Boolean
-
#initialize(params = {}) ⇒ Base
constructor
A new instance of Base.
- #keys ⇒ Object
Methods included from Searchable
Methods included from Accessible
Methods included from Rest
#create, #delete, #get, #list, #path, #request, #update
Constructor Details
#initialize(params = {}) ⇒ Base
14 15 16 17 18 19 |
# File 'lib/grist/type/base.rb', line 14 def initialize(params = {}) keys.each do |key| instance_variable_set("@#{key}", params[key]) end @deleted = params.delete(:deleted) || false end |
Class Method Details
.all ⇒ Array
List all items
31 32 33 34 35 36 37 38 |
# File 'lib/grist/type/base.rb', line 31 def self.all grist_res = new.list return [] unless grist_res&.data.is_a?(Array) return [] unless grist_res&.data&.any? grist_res.data.map { |org| new(org) } end |
.delete(id) ⇒ Grist::Type::Base?
Deletes the item
64 65 66 67 68 69 |
# File 'lib/grist/type/base.rb', line 64 def self.delete(id) org = find(id) return unless org org.delete end |
.find(id) ⇒ Object
Finds an item by ID return [Grist::Type::Base, nil] The item or nil if not found
43 44 45 46 47 48 |
# File 'lib/grist/type/base.rb', line 43 def self.find(id) grist_res = new.get(id) return unless grist_res.success? && grist_res.data new(grist_res.data) end |
.update(id, data) ⇒ Grist::Type::Base?
Updates the item
54 55 56 57 58 59 |
# File 'lib/grist/type/base.rb', line 54 def self.update(id, data) org = find(id) return unless org org.update(data) end |
Instance Method Details
#deleted? ⇒ Boolean
25 26 27 |
# File 'lib/grist/type/base.rb', line 25 def deleted? !!@deleted end |
#keys ⇒ Object
21 22 23 |
# File 'lib/grist/type/base.rb', line 21 def keys self.class::KEYS end |