eac_rest 0.11.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: c6ea54f4879bd8986f51bb61675479e688510922dec567816955d9fdc82120e1
4
- data.tar.gz: 4a3c2f7ede1e8ffa3031a731ff1bc66d9521c9d8c93c997d3e00597e4016dffa
3
+ metadata.gz: 82e7ab203081a5bb00d067ac03d7816d3269d184b529fb5221b29abfb6417bf0
4
+ data.tar.gz: 686f13eeff4af34eb0aaed13cad06f6b2dc45b288333ddaf846f37ca3cd2913d
5
5
  SHA512:
6
- metadata.gz: 852082a762e5ad0df28b520636be72c521376828793d24fe3f442bc309d637195633220f262bdbdd5a0f8273a8f643949caabe40f87b352407ac56f79e7080a8
7
- data.tar.gz: 4b9b1ffb18491caf4d4615ac4d29bdb9ab3f4c785a6968ce8ee19ea66ced56cb6acfaaf2163073e887cfa98dc2edab80e7412a6b394295fcd6fffb2b01a9106e
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,19 +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
6
+ # @param url_suffix [Addressable::URI]
7
+ # @return [EacRest::Request]
8
+ def request(url_suffix)
9
+ request_json(url_suffix)
12
10
  end
13
11
 
12
+ # @param url_suffix [Addressable::URI]
14
13
  # @return [EacRest::Request]
15
- def request(url_suffix)
16
- api.request(::EacRest::Helper.url_join(entity_root_url_suffix, url_suffix))
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__
17
28
  end
18
29
  end
19
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
@@ -13,7 +9,7 @@ module EacRest
13
9
  @internal_response ||= request.internal_request.response
14
10
  end
15
11
 
16
- %i[body_data body_data_or_raise body_str body_str_or_raise header headers
12
+ %i[body_data body_data! body_data_or_raise body_str body_str_or_raise header headers
17
13
  link links raise_unless_200 status to_s url].each do |method_name| # rubocop:disable Naming/VariableNumber
18
14
  define_method method_name do |*args, &block|
19
15
  internal_response.send(method_name, *args, &block)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module EacRest
4
- VERSION = '0.11.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.11.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-11-29 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,64 +16,76 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.4'
19
+ version: '0.7'
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: 0.4.1
22
+ version: 0.7.1
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - "~>"
28
28
  - !ruby/object:Gem::Version
29
- version: '0.4'
29
+ version: '0.7'
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: 0.4.1
32
+ version: 0.7.1
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: eac_fs
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: '0.16'
39
+ version: '0.20'
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: 0.20.1
40
43
  type: :runtime
41
44
  prerelease: false
42
45
  version_requirements: !ruby/object:Gem::Requirement
43
46
  requirements:
44
47
  - - "~>"
45
48
  - !ruby/object:Gem::Version
46
- version: '0.16'
49
+ version: '0.20'
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: 0.20.1
47
53
  - !ruby/object:Gem::Dependency
48
54
  name: eac_ruby_utils
49
55
  requirement: !ruby/object:Gem::Requirement
50
56
  requirements:
51
57
  - - "~>"
52
58
  - !ruby/object:Gem::Version
53
- version: '0.120'
59
+ version: '0.130'
54
60
  type: :runtime
55
61
  prerelease: false
56
62
  version_requirements: !ruby/object:Gem::Requirement
57
63
  requirements:
58
64
  - - "~>"
59
65
  - !ruby/object:Gem::Version
60
- version: '0.120'
66
+ version: '0.130'
61
67
  - !ruby/object:Gem::Dependency
62
68
  name: eac_ruby_gem_support
63
69
  requirement: !ruby/object:Gem::Requirement
64
70
  requirements:
65
71
  - - "~>"
66
72
  - !ruby/object:Gem::Version
67
- version: '0.9'
73
+ version: '0.12'
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ version: 0.12.2
68
77
  type: :development
69
78
  prerelease: false
70
79
  version_requirements: !ruby/object:Gem::Requirement
71
80
  requirements:
72
81
  - - "~>"
73
82
  - !ruby/object:Gem::Version
74
- version: '0.9'
75
- description:
76
- email:
83
+ version: '0.12'
84
+ - - ">="
85
+ - !ruby/object:Gem::Version
86
+ version: 0.12.2
87
+ description:
88
+ email:
77
89
  executables: []
78
90
  extensions: []
79
91
  extra_rdoc_files: []
@@ -81,6 +93,7 @@ files:
81
93
  - lib/eac_rest.rb
82
94
  - lib/eac_rest/api.rb
83
95
  - lib/eac_rest/entity.rb
96
+ - lib/eac_rest/entity/children.rb
84
97
  - lib/eac_rest/entity/data.rb
85
98
  - lib/eac_rest/entity/fetching.rb
86
99
  - lib/eac_rest/error.rb
@@ -88,10 +101,10 @@ files:
88
101
  - lib/eac_rest/request.rb
89
102
  - lib/eac_rest/response.rb
90
103
  - lib/eac_rest/version.rb
91
- homepage:
104
+ homepage:
92
105
  licenses: []
93
106
  metadata: {}
94
- post_install_message:
107
+ post_install_message:
95
108
  rdoc_options: []
96
109
  require_paths:
97
110
  - lib
@@ -106,8 +119,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
106
119
  - !ruby/object:Gem::Version
107
120
  version: '0'
108
121
  requirements: []
109
- rubygems_version: 3.1.6
110
- signing_key:
122
+ rubygems_version: 3.4.19
123
+ signing_key:
111
124
  specification_version: 4
112
125
  summary: A REST helper for Ruby.
113
126
  test_files: []