eac_rest 0.12.0 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e4a44344b3c4cbd860895c14ecc52953d7a698311097ad68f2e0a0caee667953
4
- data.tar.gz: 4a44b26527e1331b2976721aad87c26b006e9906f3833be7a83d83f629b5fddf
3
+ metadata.gz: 82e7ab203081a5bb00d067ac03d7816d3269d184b529fb5221b29abfb6417bf0
4
+ data.tar.gz: 686f13eeff4af34eb0aaed13cad06f6b2dc45b288333ddaf846f37ca3cd2913d
5
5
  SHA512:
6
- metadata.gz: 8ce1615c18e320116bd20cf2f4b0ba35eb059cfd4ae87b0715b1a31bc9a44d72a0bbf64c6f2a089e657a919fda100aeebe437fd5f6e5f4d482320f33501b926e
7
- data.tar.gz: b049d5c0b97534f51b6fc96038c37a07328be2bbbba6a5daefcbd0807ce71f5d3c2d3f9b807a8986365a348f1981d4e4f6f23eef22b9098e03f8764a91a8f3b4
6
+ metadata.gz: 914710a3034b2c34a30a4268a0ad2a43e21a6e0fe193f5b8d40d3f4302e99d3d2b60a502d72fc101c1b33f4cd1300a25efbc48e1e933e0818cf79060aabac29d
7
+ data.tar.gz: ad721989f4a047203d045aa45a73487f84eadf7cc4f3fad9ecfdd42f278bce062782443a0c7d60d3161cbe3bdaf10c2eee3324b78790122bae48d2883f1b6d02
data/lib/eac_rest/api.rb CHANGED
@@ -1,9 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'eac_rest/helper'
4
- require 'eac_rest/request'
5
- require 'eac_ruby_utils/core_ext'
6
-
7
3
  module EacRest
8
4
  # Abstract methods
9
5
  # * self.issue_get_url_suffix(provider_issue_id)
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ module EacRest
4
+ class Entity
5
+ module Children
6
+ # @param entity_class [Class]
7
+ # @param data_or_id [Hash|Object]
8
+ # @param options [Hash]
9
+ # @return [EacRest::Entity]
10
+ def child_entity(entity_class, data_or_id, options = {})
11
+ api.entity(entity_class, data_or_id, options.merge(OPTION_PARENT => self))
12
+ end
13
+
14
+ # @param entity_class [Class<T>]
15
+ # @param path_suffix [String]
16
+ # @return [Enumerable<T>]
17
+ def child_list(entity_class, path_suffix)
18
+ items = request(path_suffix).response.body_data
19
+ items = yield(items) if block_given?
20
+ items.map { |e| child_entity(entity_class, e) }
21
+ end
22
+ end
23
+ end
24
+ end
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'eac_ruby_utils/core_ext'
4
-
5
3
  module EacRest
6
4
  class Entity
7
5
  module Data
@@ -1,26 +1,30 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'eac_rest/helper'
4
- require 'eac_ruby_utils/core_ext'
5
-
6
3
  module EacRest
7
4
  class Entity
8
5
  module Fetching
9
- # @return [Addressable::URI]
10
- def entity_root_url_suffix
11
- parent_entity.if_present('', &:entity_root_url_suffix).to_uri
12
- end
13
-
14
6
  # @param url_suffix [Addressable::URI]
15
7
  # @return [EacRest::Request]
16
8
  def request(url_suffix)
17
- api.request_json(request_url(url_suffix))
9
+ request_json(url_suffix)
18
10
  end
19
11
 
20
12
  # @param url_suffix [Addressable::URI]
21
- # @return [Addressable::URI]
22
- def request_url(url_suffix)
23
- ::EacRest::Helper.url_join(entity_root_url_suffix, url_suffix)
13
+ # @return [EacRest::Request]
14
+ def request_json(url_suffix = '')
15
+ api.request_json(to_api_address_suffix(url_suffix))
16
+ end
17
+
18
+ # @return [String]
19
+ def to_api_address_suffix(url_suffix = '')
20
+ r = [to_api_address_suffix_self, url_suffix].join
21
+ r = parent_entity.to_api_address_suffix(r) if parent_entity
22
+ r
23
+ end
24
+
25
+ # @return [String]
26
+ def to_api_address_suffix_self
27
+ raise_abstract_method __method__
24
28
  end
25
29
  end
26
30
  end
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'eac_ruby_utils/core_ext'
4
-
5
3
  module EacRest
6
4
  class Entity
7
5
  enable_abstract_methods
@@ -18,13 +16,6 @@ module EacRest
18
16
  end
19
17
  end
20
18
 
21
- # @param entity_class [Class]
22
- # @param url_suffix [String]
23
- # @return [EacRest::Entity]
24
- def child_entity(entity_class, data_or_id, options = {})
25
- api.entity(entity_class, data_or_id, options.merge(OPTION_PARENT => self))
26
- end
27
-
28
19
  # @return [EacRest::Entity, nil]
29
20
  def parent_entity
30
21
  options[OPTION_PARENT]
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'eac_ruby_utils/core_ext'
4
-
5
3
  module EacRest
6
4
  module Helper
7
5
  # @param parts [Array<Addressable::URI>]
@@ -1,9 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'eac_envs/http/request'
4
- require 'eac_rest/response'
5
- require 'eac_ruby_utils/core_ext'
6
-
7
3
  module EacRest
8
4
  class Request
9
5
  BODY_DATA_JSON_HEADERS = { 'Content-Type' => 'application/json' }.freeze
@@ -1,9 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'eac_rest/error'
4
- require 'eac_envs/http/error'
5
- require 'eac_ruby_utils/core_ext'
6
-
7
3
  module EacRest
8
4
  class Response < ::StandardError
9
5
  common_constructor :request
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module EacRest
4
- VERSION = '0.12.0'
4
+ VERSION = '0.13.0'
5
5
  end
data/lib/eac_rest.rb CHANGED
@@ -1,7 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'eac_ruby_utils/core_ext'
3
+ require 'eac_ruby_utils'
4
+ EacRubyUtils::RootModuleSetup.perform __FILE__
4
5
 
5
6
  module EacRest
6
- require_sub __FILE__
7
7
  end
8
+
9
+ require 'eac_envs/http'
10
+ require 'eac_fs'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eac_rest
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.0
4
+ version: 0.13.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eduardo H. Bogoni
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-12-04 00:00:00.000000000 Z
11
+ date: 2026-04-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: eac_envs-http
@@ -16,58 +16,76 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.5'
19
+ version: '0.7'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 0.7.1
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
27
  - - "~>"
25
28
  - !ruby/object:Gem::Version
26
- version: '0.5'
29
+ version: '0.7'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 0.7.1
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: eac_fs
29
35
  requirement: !ruby/object:Gem::Requirement
30
36
  requirements:
31
37
  - - "~>"
32
38
  - !ruby/object:Gem::Version
33
- version: '0.16'
39
+ version: '0.20'
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: 0.20.1
34
43
  type: :runtime
35
44
  prerelease: false
36
45
  version_requirements: !ruby/object:Gem::Requirement
37
46
  requirements:
38
47
  - - "~>"
39
48
  - !ruby/object:Gem::Version
40
- version: '0.16'
49
+ version: '0.20'
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: 0.20.1
41
53
  - !ruby/object:Gem::Dependency
42
54
  name: eac_ruby_utils
43
55
  requirement: !ruby/object:Gem::Requirement
44
56
  requirements:
45
57
  - - "~>"
46
58
  - !ruby/object:Gem::Version
47
- version: '0.120'
59
+ version: '0.130'
48
60
  type: :runtime
49
61
  prerelease: false
50
62
  version_requirements: !ruby/object:Gem::Requirement
51
63
  requirements:
52
64
  - - "~>"
53
65
  - !ruby/object:Gem::Version
54
- version: '0.120'
66
+ version: '0.130'
55
67
  - !ruby/object:Gem::Dependency
56
68
  name: eac_ruby_gem_support
57
69
  requirement: !ruby/object:Gem::Requirement
58
70
  requirements:
59
71
  - - "~>"
60
72
  - !ruby/object:Gem::Version
61
- version: '0.9'
73
+ version: '0.12'
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ version: 0.12.2
62
77
  type: :development
63
78
  prerelease: false
64
79
  version_requirements: !ruby/object:Gem::Requirement
65
80
  requirements:
66
81
  - - "~>"
67
82
  - !ruby/object:Gem::Version
68
- version: '0.9'
69
- description:
70
- email:
83
+ version: '0.12'
84
+ - - ">="
85
+ - !ruby/object:Gem::Version
86
+ version: 0.12.2
87
+ description:
88
+ email:
71
89
  executables: []
72
90
  extensions: []
73
91
  extra_rdoc_files: []
@@ -75,6 +93,7 @@ files:
75
93
  - lib/eac_rest.rb
76
94
  - lib/eac_rest/api.rb
77
95
  - lib/eac_rest/entity.rb
96
+ - lib/eac_rest/entity/children.rb
78
97
  - lib/eac_rest/entity/data.rb
79
98
  - lib/eac_rest/entity/fetching.rb
80
99
  - lib/eac_rest/error.rb
@@ -82,10 +101,10 @@ files:
82
101
  - lib/eac_rest/request.rb
83
102
  - lib/eac_rest/response.rb
84
103
  - lib/eac_rest/version.rb
85
- homepage:
104
+ homepage:
86
105
  licenses: []
87
106
  metadata: {}
88
- post_install_message:
107
+ post_install_message:
89
108
  rdoc_options: []
90
109
  require_paths:
91
110
  - lib
@@ -100,8 +119,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
100
119
  - !ruby/object:Gem::Version
101
120
  version: '0'
102
121
  requirements: []
103
- rubygems_version: 3.1.6
104
- signing_key:
122
+ rubygems_version: 3.4.19
123
+ signing_key:
105
124
  specification_version: 4
106
125
  summary: A REST helper for Ruby.
107
126
  test_files: []