alula-ruby 2.8.0 → 2.9.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fa567cfd5e7ba41e5ca4e6ff542ecc280d5dd516c2511d5d67784f733c20b0bc
4
- data.tar.gz: 20b348feba6ea3f92e3f5b3fe033a0e750e2ba239a802d711438f6e5018297a3
3
+ metadata.gz: d1b9979c43f40957a0f94f348ac6156b9e2b211a9bf157a7327c84f2e313f193
4
+ data.tar.gz: 39517538f976d1607f0584e2c1bbdad8cf75d6bf1e3be3bade1069be2dff4deb
5
5
  SHA512:
6
- metadata.gz: 0e9e19de05afc3e827bad08f3b760cfeda991d6690f8ba33f4a1c856e6f444cac4e37efb1a0c15fdc9648d257928652e5a8310dae6e4d1ff6ef46cf0816aa175
7
- data.tar.gz: 7ec36038fcf83f0fc49ad0aa02193c79632f50ded31e0f58139b3e0bb98aab719f0f226a17d0eb24faca59547c6b820017a9b3bf70f7a0b48f1d8563abdf98ca
6
+ metadata.gz: 9b7337413934562925d8ac2b8809942c81e5b67ff3edb38838f6f852cb1f03ee304c2666360baf79d2924f219f653ba24a5c1c282ecf748edebafa5942a1fa27
7
+ data.tar.gz: 23f34e9da7a14a690e052340ab0c0d57b5aaec8ffa976b654babd6f59b648c748d2773ddedeaeffc0e0f6e1112153c5edd77cceaa879e4b70094b5df7d42441c
data/VERSION.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  | Version | Date | Description |
4
4
  | ------- | ------------| --------------------------------------------------------------------------- |
5
+ | v2.9.0 | 2025-02-20 | Add merge! capability for Alula::ListObject |
6
+ | v2.8.1 | 2025-02-19 | Mark Device ID as filterable/sortable |
5
7
  | v2.8.0 | 2025-02-12 | Add ONVIF Features Selected for device. Add supports_onvif? method |
6
8
  | v2.7.0 | 2025-02-05 | Add DCP client |
7
9
  | v2.6.3 | 2025-01-30 | Add alula_controllable_sim field to device |
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Alula
2
4
  class ListObject
3
5
  include Enumerable
@@ -30,7 +32,7 @@ module Alula
30
32
  @items.last
31
33
  end
32
34
 
33
- def << item
35
+ def <<(item)
34
36
  @items << item
35
37
  end
36
38
 
@@ -42,18 +44,34 @@ module Alula
42
44
  meta.page
43
45
  end
44
46
 
45
- def self.construct_from_response klass, response, opts
47
+ # Merge another list into this list
48
+ # Use only for lists of the same type and same pagination settings
49
+ # Should be used only when we are limited by URL length and need to fetch more than 20 items in the same page
50
+ def merge!(list)
51
+ @items += list.items
52
+ new_meta = Meta.new(
53
+ 'page' => {
54
+ 'total' => list.meta.page.total,
55
+ 'number' => list.meta.page.number,
56
+ 'size' => list.meta.page.size
57
+ }
58
+ )
59
+ set_meta(new_meta)
60
+ self
61
+ end
62
+
63
+ def self.construct_from_response(klass, response, _opts)
46
64
  list = ListObject.new(klass)
47
65
  response.data['data'].each do |item|
48
66
  list << klass.new(item['id']).construct_from(item)
49
67
  end
50
68
  list.set_meta Meta.new(response.data['meta'])
51
69
  list.rate_limit = response.rate_limit
52
-
70
+
53
71
  list
54
72
  end
55
73
 
56
- def self.construct_from_array klass, collection
74
+ def self.construct_from_array(klass, collection)
57
75
  list = ListObject.new(klass)
58
76
  collection.each do |item|
59
77
  list << klass.new(item['id']).construct_from(item)
@@ -61,4 +79,4 @@ module Alula
61
79
  list
62
80
  end
63
81
  end
64
- end
82
+ end
@@ -49,8 +49,8 @@ module Alula
49
49
  # on how params are parsed,
50
50
  field :id,
51
51
  type: :string,
52
- sortable: false,
53
- filterable: false,
52
+ sortable: true,
53
+ filterable: true,
54
54
  creatable_by: [],
55
55
  patchable_by: []
56
56
 
data/lib/alula/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Alula
4
- VERSION = '2.8.0'
4
+ VERSION = '2.9.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: alula-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.8.0
4
+ version: 2.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Titus Johnson
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2025-02-13 00:00:00.000000000 Z
11
+ date: 2025-02-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty