eac_tools 0.75.2 → 0.76.1

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.
Files changed (224) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +5 -5
  3. data/Gemfile.lock +69 -71
  4. data/lib/eac_tools/version.rb +1 -1
  5. data/sub/avm-eac_redmine_base0/Gemfile +2 -2
  6. data/sub/avm-eac_redmine_base0/avm-eac_redmine_base0.gemspec +8 -6
  7. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/base/install.rb +9 -0
  8. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/docker_image.rb +1 -1
  9. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/rest_api/entity_base.rb +2 -2
  10. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/sources/core_update.rb +1 -1
  11. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/version.rb +1 -1
  12. data/sub/avm-eac_redmine_base0/spec/lib/avm/eac_redmine_base0/instances/apache_host_spec.rb +3 -3
  13. data/sub/avm-eac_redmine_base0/spec/lib/avm/eac_redmine_base0/instances/base/gitolite_spec.rb +1 -1
  14. data/sub/avm-eac_redmine_base0/spec/rubocop_spec.rb +1 -1
  15. data/sub/avm-eac_redmine_base0/spec/spec_helper.rb +2 -2
  16. data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/deploy/config/install.sh.template +3 -0
  17. data/sub/eac_cli/Gemfile +2 -2
  18. data/sub/eac_cli/eac_cli.gemspec +5 -3
  19. data/sub/eac_cli/lib/eac_cli/config.rb +0 -4
  20. data/sub/eac_cli/lib/eac_cli/core_ext.rb +1 -1
  21. data/sub/eac_cli/lib/eac_cli/definition/alternative.rb +24 -3
  22. data/sub/eac_cli/lib/eac_cli/definition.rb +1 -1
  23. data/sub/eac_cli/lib/eac_cli/old_configs/store_passwords_entry_reader.rb +1 -1
  24. data/sub/eac_cli/lib/eac_cli/parser/alternative/any_options.rb +19 -0
  25. data/sub/eac_cli/lib/eac_cli/parser/alternative/long_options.rb +1 -1
  26. data/sub/eac_cli/lib/eac_cli/parser/alternative/short_options.rb +1 -3
  27. data/sub/eac_cli/lib/eac_cli/parser/alternative.rb +0 -9
  28. data/sub/eac_cli/lib/eac_cli/parser.rb +1 -1
  29. data/sub/eac_cli/lib/eac_cli/patches/object.rb +1 -1
  30. data/sub/eac_cli/lib/eac_cli/patches.rb +1 -1
  31. data/sub/eac_cli/lib/eac_cli/runner/class_runner.rb +1 -1
  32. data/sub/eac_cli/lib/eac_cli/runner/context_responders/set.rb +2 -2
  33. data/sub/eac_cli/lib/eac_cli/runner/exit.rb +2 -1
  34. data/sub/eac_cli/lib/eac_cli/runner/instance_methods.rb +1 -1
  35. data/sub/eac_cli/lib/eac_cli/runner_with/help/builder/alternative.rb +1 -1
  36. data/sub/eac_cli/lib/eac_cli/runner_with/help/builder.rb +2 -2
  37. data/sub/eac_cli/lib/eac_cli/runner_with/help.rb +1 -0
  38. data/sub/eac_cli/lib/eac_cli/runner_with/subcommands.rb +1 -1
  39. data/sub/eac_cli/lib/eac_cli/runner_with_set.rb +1 -1
  40. data/sub/eac_cli/lib/eac_cli/speaker/list.rb +4 -4
  41. data/sub/eac_cli/lib/eac_cli/speaker/options.rb +3 -3
  42. data/sub/eac_cli/lib/eac_cli/speaker.rb +2 -1
  43. data/sub/eac_cli/lib/eac_cli/version.rb +1 -1
  44. data/sub/eac_cli/spec/lib/eac_cli/definition/alternative_spec.rb +2 -2
  45. data/sub/eac_cli/spec/lib/eac_cli/old_configs_spec.rb +1 -1
  46. data/sub/eac_cli/spec/lib/eac_cli/parser/alternative_spec.rb +10 -10
  47. data/sub/eac_cli/spec/lib/eac_cli/runner/for_context_spec.rb +13 -13
  48. data/sub/eac_cli/spec/lib/eac_cli/runner_spec.rb +10 -10
  49. data/sub/eac_cli/spec/lib/eac_cli/runner_with/confirmation_spec.rb +3 -3
  50. data/sub/eac_cli/spec/lib/eac_cli/runner_with/help/layout_spec.rb +1 -1
  51. data/sub/eac_cli/spec/lib/eac_cli/runner_with/help_spec.rb +3 -2
  52. data/sub/eac_cli/spec/lib/eac_cli/runner_with/output_spec.rb +6 -6
  53. data/sub/eac_cli/spec/lib/eac_cli/runner_with/subcommands_spec.rb +6 -6
  54. data/sub/eac_cli/spec/lib/eac_cli/speaker_spec.rb +1 -1
  55. data/sub/eac_cli/spec/rubocop_spec.rb +1 -1
  56. data/sub/eac_cli/spec/spec_helper.rb +1 -1
  57. data/sub/eac_ruby_utils/eac_ruby_utils.gemspec +1 -1
  58. data/sub/eac_ruby_utils/lib/eac_ruby_utils/module_ancestors_variable.rb +1 -1
  59. data/sub/eac_ruby_utils/lib/eac_ruby_utils/version.rb +1 -1
  60. metadata +10 -179
  61. data/sub/eac_envs-http/Gemfile +0 -8
  62. data/sub/eac_envs-http/eac_envs-http.gemspec +0 -25
  63. data/sub/eac_envs-http/lib/eac_envs/http/error.rb +0 -8
  64. data/sub/eac_envs-http/lib/eac_envs/http/request/body_field.rb +0 -51
  65. data/sub/eac_envs-http/lib/eac_envs/http/request/body_field_value.rb +0 -32
  66. data/sub/eac_envs-http/lib/eac_envs/http/request/body_fields.rb +0 -39
  67. data/sub/eac_envs-http/lib/eac_envs/http/request/faraday_connection.rb +0 -75
  68. data/sub/eac_envs-http/lib/eac_envs/http/request.rb +0 -58
  69. data/sub/eac_envs-http/lib/eac_envs/http/response/body.rb +0 -62
  70. data/sub/eac_envs-http/lib/eac_envs/http/response/headers.rb +0 -41
  71. data/sub/eac_envs-http/lib/eac_envs/http/response/links.rb +0 -28
  72. data/sub/eac_envs-http/lib/eac_envs/http/response/statuses.rb +0 -21
  73. data/sub/eac_envs-http/lib/eac_envs/http/response.rb +0 -30
  74. data/sub/eac_envs-http/lib/eac_envs/http/rspec/echo_server/request_processor.rb +0 -42
  75. data/sub/eac_envs-http/lib/eac_envs/http/rspec/echo_server/webrick_servlet.rb +0 -22
  76. data/sub/eac_envs-http/lib/eac_envs/http/rspec/echo_server.rb +0 -63
  77. data/sub/eac_envs-http/lib/eac_envs/http/rspec.rb +0 -11
  78. data/sub/eac_envs-http/lib/eac_envs/http/version.rb +0 -7
  79. data/sub/eac_envs-http/lib/eac_envs/http.rb +0 -9
  80. data/sub/eac_envs-http/spec/lib/eac_envs/http/request/body_fields_spec.rb +0 -47
  81. data/sub/eac_envs-http/spec/lib/eac_envs/http/request_spec.rb +0 -68
  82. data/sub/eac_envs-http/spec/lib/eac_envs/http/request_spec_files/get.source.yaml +0 -5
  83. data/sub/eac_envs-http/spec/lib/eac_envs/http/request_spec_files/get.target.yaml +0 -9
  84. data/sub/eac_envs-http/spec/lib/eac_envs/http/request_spec_files/get_with_auth.source.yaml +0 -8
  85. data/sub/eac_envs-http/spec/lib/eac_envs/http/request_spec_files/get_with_auth.target.yaml +0 -10
  86. data/sub/eac_envs-http/spec/lib/eac_envs/http/request_spec_files/post_array_body.source.yaml +0 -10
  87. data/sub/eac_envs-http/spec/lib/eac_envs/http/request_spec_files/post_array_body.target.yaml +0 -11
  88. data/sub/eac_envs-http/spec/lib/eac_envs/http/request_spec_files/post_string_body.source.yaml +0 -4
  89. data/sub/eac_envs-http/spec/lib/eac_envs/http/request_spec_files/post_string_body.target.yaml +0 -11
  90. data/sub/eac_envs-http/spec/lib/eac_envs/http/request_spec_files/put_hash_body.source.yaml +0 -6
  91. data/sub/eac_envs-http/spec/lib/eac_envs/http/request_spec_files/put_hash_body.target.yaml +0 -11
  92. data/sub/eac_envs-http/spec/lib/eac_envs/http/request_spec_files/put_with_file.source.yaml +0 -5
  93. data/sub/eac_envs-http/spec/lib/eac_envs/http/request_spec_files/put_with_file.target.yaml +0 -13
  94. data/sub/eac_envs-http/spec/lib/eac_envs/http/request_spec_files/root.source.yaml +0 -2
  95. data/sub/eac_envs-http/spec/lib/eac_envs/http/request_spec_files/root.target.yaml +0 -9
  96. data/sub/eac_envs-http/spec/rubocop_spec.rb +0 -3
  97. data/sub/eac_envs-http/spec/spec_helper/request_builder.rb +0 -62
  98. data/sub/eac_envs-http/spec/spec_helper.rb +0 -7
  99. data/sub/eac_fs/Gemfile +0 -8
  100. data/sub/eac_fs/eac_fs.gemspec +0 -20
  101. data/sub/eac_fs/lib/eac_fs/cached_download.rb +0 -40
  102. data/sub/eac_fs/lib/eac_fs/comparator/build.rb +0 -57
  103. data/sub/eac_fs/lib/eac_fs/comparator/rename_file.rb +0 -15
  104. data/sub/eac_fs/lib/eac_fs/comparator.rb +0 -18
  105. data/sub/eac_fs/lib/eac_fs/contexts.rb +0 -21
  106. data/sub/eac_fs/lib/eac_fs/core_ext.rb +0 -4
  107. data/sub/eac_fs/lib/eac_fs/file_info.rb +0 -29
  108. data/sub/eac_fs/lib/eac_fs/logs/file.rb +0 -56
  109. data/sub/eac_fs/lib/eac_fs/logs.rb +0 -64
  110. data/sub/eac_fs/lib/eac_fs/patches/module/fs_cache.rb +0 -15
  111. data/sub/eac_fs/lib/eac_fs/patches/module.rb +0 -4
  112. data/sub/eac_fs/lib/eac_fs/patches/object/fs_cache.rb +0 -32
  113. data/sub/eac_fs/lib/eac_fs/patches/object.rb +0 -4
  114. data/sub/eac_fs/lib/eac_fs/patches/pathname/info.rb +0 -12
  115. data/sub/eac_fs/lib/eac_fs/patches/pathname.rb +0 -4
  116. data/sub/eac_fs/lib/eac_fs/patches.rb +0 -4
  117. data/sub/eac_fs/lib/eac_fs/rspec/setup.rb +0 -25
  118. data/sub/eac_fs/lib/eac_fs/rspec.rb +0 -9
  119. data/sub/eac_fs/lib/eac_fs/storage_tree.rb +0 -81
  120. data/sub/eac_fs/lib/eac_fs/traversable.rb +0 -45
  121. data/sub/eac_fs/lib/eac_fs/traverser.rb +0 -76
  122. data/sub/eac_fs/lib/eac_fs/version.rb +0 -5
  123. data/sub/eac_fs/lib/eac_fs.rb +0 -7
  124. data/sub/eac_fs/spec/lib/eac_fs/storage_tree_spec.rb +0 -32
  125. data/sub/eac_fs/spec/rubocop_spec.rb +0 -3
  126. data/sub/eac_fs/spec/spec_helper.rb +0 -4
  127. data/sub/eac_rest/Gemfile +0 -8
  128. data/sub/eac_rest/eac_rest.gemspec +0 -21
  129. data/sub/eac_rest/lib/eac_rest/api.rb +0 -57
  130. data/sub/eac_rest/lib/eac_rest/entity/data.rb +0 -44
  131. data/sub/eac_rest/lib/eac_rest/entity/fetching.rb +0 -20
  132. data/sub/eac_rest/lib/eac_rest/entity.rb +0 -35
  133. data/sub/eac_rest/lib/eac_rest/error.rb +0 -6
  134. data/sub/eac_rest/lib/eac_rest/helper.rb +0 -34
  135. data/sub/eac_rest/lib/eac_rest/request.rb +0 -48
  136. data/sub/eac_rest/lib/eac_rest/response.rb +0 -27
  137. data/sub/eac_rest/lib/eac_rest/version.rb +0 -5
  138. data/sub/eac_rest/lib/eac_rest.rb +0 -7
  139. data/sub/eac_rest/spec/lib/eac_rest/api_spec.rb +0 -71
  140. data/sub/eac_rest/spec/lib/eac_rest/api_spec_files/get.source.yaml +0 -5
  141. data/sub/eac_rest/spec/lib/eac_rest/api_spec_files/get.target.yaml +0 -9
  142. data/sub/eac_rest/spec/lib/eac_rest/api_spec_files/get_with_auth.source.yaml +0 -8
  143. data/sub/eac_rest/spec/lib/eac_rest/api_spec_files/get_with_auth.target.yaml +0 -10
  144. data/sub/eac_rest/spec/lib/eac_rest/api_spec_files/post_array_body.source.yaml +0 -10
  145. data/sub/eac_rest/spec/lib/eac_rest/api_spec_files/post_array_body.target.yaml +0 -11
  146. data/sub/eac_rest/spec/lib/eac_rest/api_spec_files/post_string_body.source.yaml +0 -4
  147. data/sub/eac_rest/spec/lib/eac_rest/api_spec_files/post_string_body.target.yaml +0 -11
  148. data/sub/eac_rest/spec/lib/eac_rest/api_spec_files/put_hash_body.source.yaml +0 -6
  149. data/sub/eac_rest/spec/lib/eac_rest/api_spec_files/put_hash_body.target.yaml +0 -11
  150. data/sub/eac_rest/spec/lib/eac_rest/api_spec_files/put_with_file.source.yaml +0 -5
  151. data/sub/eac_rest/spec/lib/eac_rest/api_spec_files/put_with_file.target.yaml +0 -13
  152. data/sub/eac_rest/spec/lib/eac_rest/api_spec_files/root.source.yaml +0 -2
  153. data/sub/eac_rest/spec/lib/eac_rest/api_spec_files/root.target.yaml +0 -9
  154. data/sub/eac_rest/spec/rubocop_spec.rb +0 -3
  155. data/sub/eac_rest/spec/spec_helper/request_builder.rb +0 -51
  156. data/sub/eac_rest/spec/spec_helper.rb +0 -7
  157. data/sub/eac_templates/Gemfile +0 -8
  158. data/sub/eac_templates/eac_templates.gemspec +0 -19
  159. data/sub/eac_templates/lib/eac_templates/abstract/directory.rb +0 -42
  160. data/sub/eac_templates/lib/eac_templates/abstract/file.rb +0 -25
  161. data/sub/eac_templates/lib/eac_templates/abstract/fs_object.rb +0 -94
  162. data/sub/eac_templates/lib/eac_templates/abstract/fs_object_by_pathname.rb +0 -13
  163. data/sub/eac_templates/lib/eac_templates/abstract/not_found_error.rb +0 -8
  164. data/sub/eac_templates/lib/eac_templates/core_ext.rb +0 -4
  165. data/sub/eac_templates/lib/eac_templates/interface_methods.rb +0 -12
  166. data/sub/eac_templates/lib/eac_templates/modules/ancestor/directory.rb +0 -17
  167. data/sub/eac_templates/lib/eac_templates/modules/ancestor/file.rb +0 -16
  168. data/sub/eac_templates/lib/eac_templates/modules/ancestor/fs_object.rb +0 -25
  169. data/sub/eac_templates/lib/eac_templates/modules/ancestor.rb +0 -51
  170. data/sub/eac_templates/lib/eac_templates/modules/base.rb +0 -35
  171. data/sub/eac_templates/lib/eac_templates/modules.rb +0 -9
  172. data/sub/eac_templates/lib/eac_templates/patches/module/erb_template.rb +0 -9
  173. data/sub/eac_templates/lib/eac_templates/patches/module/template.rb +0 -9
  174. data/sub/eac_templates/lib/eac_templates/patches/module.rb +0 -4
  175. data/sub/eac_templates/lib/eac_templates/patches/object/erb_template.rb +0 -9
  176. data/sub/eac_templates/lib/eac_templates/patches/object/template.rb +0 -9
  177. data/sub/eac_templates/lib/eac_templates/patches/object.rb +0 -4
  178. data/sub/eac_templates/lib/eac_templates/patches.rb +0 -4
  179. data/sub/eac_templates/lib/eac_templates/sources/directory.rb +0 -37
  180. data/sub/eac_templates/lib/eac_templates/sources/file.rb +0 -13
  181. data/sub/eac_templates/lib/eac_templates/sources/from_all_gems.rb +0 -4
  182. data/sub/eac_templates/lib/eac_templates/sources/from_gem.rb +0 -37
  183. data/sub/eac_templates/lib/eac_templates/sources/fs_object.rb +0 -53
  184. data/sub/eac_templates/lib/eac_templates/sources/internal_set.rb +0 -22
  185. data/sub/eac_templates/lib/eac_templates/sources/set.rb +0 -55
  186. data/sub/eac_templates/lib/eac_templates/sources/single.rb +0 -29
  187. data/sub/eac_templates/lib/eac_templates/sources.rb +0 -9
  188. data/sub/eac_templates/lib/eac_templates/variables/content.rb +0 -52
  189. data/sub/eac_templates/lib/eac_templates/variables/directory.rb +0 -49
  190. data/sub/eac_templates/lib/eac_templates/variables/file.rb +0 -26
  191. data/sub/eac_templates/lib/eac_templates/variables/fs_object.rb +0 -65
  192. data/sub/eac_templates/lib/eac_templates/variables/not_found_error.rb +0 -7
  193. data/sub/eac_templates/lib/eac_templates/variables/providers/base.rb +0 -23
  194. data/sub/eac_templates/lib/eac_templates/variables/providers/config_reader.rb +0 -29
  195. data/sub/eac_templates/lib/eac_templates/variables/providers/entries_reader.rb +0 -25
  196. data/sub/eac_templates/lib/eac_templates/variables/providers/generic.rb +0 -25
  197. data/sub/eac_templates/lib/eac_templates/variables/providers/hash.rb +0 -29
  198. data/sub/eac_templates/lib/eac_templates/variables/providers.rb +0 -25
  199. data/sub/eac_templates/lib/eac_templates/variables.rb +0 -9
  200. data/sub/eac_templates/lib/eac_templates/version.rb +0 -5
  201. data/sub/eac_templates/lib/eac_templates.rb +0 -7
  202. data/sub/eac_templates/spec/lib/eac_templates/modules/base_spec.rb +0 -141
  203. data/sub/eac_templates/spec/lib/eac_templates/modules/base_spec_files/path1/a_module/a/a_a +0 -1
  204. data/sub/eac_templates/spec/lib/eac_templates/modules/base_spec_files/path1/a_module/b +0 -1
  205. data/sub/eac_templates/spec/lib/eac_templates/modules/base_spec_files/path1/super_class/a/a_b +0 -1
  206. data/sub/eac_templates/spec/lib/eac_templates/modules/base_spec_files/path1/super_class/b +0 -1
  207. data/sub/eac_templates/spec/lib/eac_templates/modules/base_spec_files/path2/a_module/a/a_b +0 -1
  208. data/sub/eac_templates/spec/lib/eac_templates/modules/base_spec_files/path2/a_module/b +0 -1
  209. data/sub/eac_templates/spec/lib/eac_templates/modules/base_spec_files/path2/a_module/c +0 -1
  210. data/sub/eac_templates/spec/lib/eac_templates/modules/base_spec_files/path2/prepended_module/c +0 -1
  211. data/sub/eac_templates/spec/lib/eac_templates/modules/base_spec_files/path2/sub_class/b +0 -1
  212. data/sub/eac_templates/spec/lib/eac_templates/modules/base_spec_files/path2/super_class/a/a_b +0 -1
  213. data/sub/eac_templates/spec/lib/eac_templates/modules/base_spec_files/path2/super_class/b +0 -1
  214. data/sub/eac_templates/spec/lib/eac_templates/patches/object/template_spec.rb +0 -26
  215. data/sub/eac_templates/spec/lib/eac_templates/patches/object/template_spec_files/path/my_stub_with_template +0 -1
  216. data/sub/eac_templates/spec/lib/eac_templates/sources/set_spec.rb +0 -42
  217. data/sub/eac_templates/spec/lib/eac_templates/sources/set_spec_files/path1/subdir1/file1.template +0 -1
  218. data/sub/eac_templates/spec/lib/eac_templates/sources/set_spec_files/path1/subdir1/file2 +0 -1
  219. data/sub/eac_templates/spec/lib/eac_templates/sources/set_spec_files/path2/subdir1/file3.template +0 -1
  220. data/sub/eac_templates/spec/lib/eac_templates/variables/content_spec.rb +0 -35
  221. data/sub/eac_templates/spec/lib/eac_templates/variables/content_spec_files/expected_content +0 -2
  222. data/sub/eac_templates/spec/lib/eac_templates/variables/content_spec_files/source.template +0 -2
  223. data/sub/eac_templates/spec/rubocop_spec.rb +0 -3
  224. data/sub/eac_templates/spec/spec_helper.rb +0 -4
@@ -1,57 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_rest/helper'
4
- require 'eac_rest/request'
5
- require 'eac_ruby_utils/core_ext'
6
-
7
- module EacRest
8
- # Abstract methods
9
- # * self.issue_get_url_suffix(provider_issue_id)
10
- class Api
11
- DEFAULT_ROOT_ENTITY_CLASS_NAME_SUFFIX = 'Root'
12
-
13
- require_sub __FILE__, include_modules: true
14
- attr_accessor :ssl_verify
15
- common_constructor :root_url, :username, :password, default: [nil, nil] do
16
- self.ssl_verify = true
17
- end
18
-
19
- # @param entity_class [Class]
20
- # @param url_suffix [String]
21
- # @return [EacRest::Entity]
22
- def entity(entity_class, data_or_id, options = {})
23
- entity_class.new(self, data_or_id, options)
24
- end
25
-
26
- def request(service_url_suffix, headers = {}, &body_data_proc)
27
- r = ::EacRest::Request.new(build_service_url(service_url_suffix),
28
- body_data_proc).ssl_verify(ssl_verify)
29
- headers.each { |name, value| r = r.header(name, value) }
30
- r = r.autenticate(username, password) if username.present?
31
- r
32
- end
33
-
34
- def request_json(service_url_suffix, headers = {}, &body_data_proc)
35
- request(service_url_suffix, headers.merge('Accept' => 'application/json')) do |body_data|
36
- r = body_data.is_a?(::Enumerable) ? body_data : ::JSON.parse(body_data)
37
- r = body_data_proc.call(r) if body_data_proc
38
- r
39
- end
40
- end
41
-
42
- # @return [Addressable::URI]
43
- def build_service_url(suffix)
44
- ::EacRest::Helper.url_join(root_url, suffix)
45
- end
46
-
47
- # @return [EacRest::Entity]
48
- def root_entity
49
- @root_entity ||= root_entity_class.new(self, nil)
50
- end
51
-
52
- # @return [Class]
53
- def root_entity_class
54
- self.class.const_get(DEFAULT_ROOT_ENTITY_CLASS_NAME_SUFFIX)
55
- end
56
- end
57
- end
@@ -1,44 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/core_ext'
4
-
5
- module EacRest
6
- class Entity
7
- module Data
8
- common_concern
9
-
10
- # @return [Hash]
11
- def data
12
- if internal_data.blank?
13
- self.internal_data = data_or_id_data? ? data_or_id : data_from_id
14
- end
15
-
16
- internal_data
17
- end
18
-
19
- # @return [Boolean]
20
- def data_or_id_data?
21
- data_or_id.is_a?(::Hash)
22
- end
23
-
24
- # @return [Hash]
25
- def data_from_id
26
- raise_abstract_method __method__
27
- end
28
-
29
- # @return [Object]
30
- def id
31
- data_or_id_data? ? id_from_data : data_or_id
32
- end
33
-
34
- # @return [Object]
35
- def id_from_data
36
- raise_abstract_method __method__
37
- end
38
-
39
- private
40
-
41
- attr_accessor :internal_data
42
- end
43
- end
44
- end
@@ -1,20 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_rest/helper'
4
- require 'eac_ruby_utils/core_ext'
5
-
6
- module EacRest
7
- class Entity
8
- 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
- # @return [EacRest::Request]
15
- def request(url_suffix)
16
- api.request(::EacRest::Helper.url_join(entity_root_url_suffix, url_suffix))
17
- end
18
- end
19
- end
20
- end
@@ -1,35 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/core_ext'
4
-
5
- module EacRest
6
- class Entity
7
- enable_abstract_methods
8
- enable_simple_cache
9
- enable_listable
10
- lists.add_symbol :option, :parent
11
- common_constructor :api, :data_or_id, :options, default: [{}] do
12
- self.options = ::EacRest::Entity.lists.option.hash_keys_validate!(options)
13
- end
14
-
15
- class << self
16
- def from_array_data(api, array_data, *args)
17
- array_data.map { |item_data| new(api, item_data, *args) }
18
- end
19
- end
20
-
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
- # @return [EacRest::Entity, nil]
29
- def parent_entity
30
- options[OPTION_PARENT]
31
- end
32
-
33
- require_sub __FILE__, include_modules: :include
34
- end
35
- end
@@ -1,6 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module EacRest
4
- class Error < ::RuntimeError
5
- end
6
- end
@@ -1,34 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/core_ext'
4
-
5
- module EacRest
6
- module Helper
7
- # @param parts [Array<Addressable::URI>]
8
- # @return [Addressable::URI]
9
- def url_join(*parts)
10
- left = parts.shift
11
- left = url_join_pair(left, parts.shift) while parts.any?
12
- left
13
- end
14
-
15
- private
16
-
17
- # @param left [Addressable::URI]
18
- # @param right [Addressable::URI]
19
- # @return [Addressable::URI]
20
- def url_join_pair(left, right)
21
- r = ::Addressable::URI.parse(right)
22
- return r if r.scheme.present?
23
-
24
- s = ::Addressable::URI.parse(right)
25
- r = ::Addressable::URI.parse(left)
26
- r.path += s.path
27
- r.query_values = r.query_values(::Array).if_present([]) +
28
- s.query_values(::Array).if_present([])
29
- r
30
- end
31
-
32
- extend self
33
- end
34
- end
@@ -1,48 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_envs/http/request'
4
- require 'eac_rest/response'
5
- require 'eac_ruby_utils/core_ext'
6
-
7
- module EacRest
8
- class Request
9
- attr_reader :internal_request
10
-
11
- # @param url [EacEnvs::Http::Request, String]
12
- # @param response_body_data_proc [Proc, nil]
13
- def initialize(url, response_body_data_proc = nil)
14
- if url.is_a?(::EacEnvs::Http::Request)
15
- @internal_request = url
16
- else
17
- @internal_request = ::EacEnvs::Http::Request.new.url(url)
18
- response_body_data_proc.if_present do |v|
19
- @internal_request = @internal_request.response_body_data_proc(v)
20
- end
21
- end
22
- end
23
-
24
- delegate :sanitized_verb, :url, to: :internal_request
25
-
26
- {
27
- auth: 0, body_data: 0, header: 1, headers: 0, ssl_verify: 0, verb: 0
28
- }.each do |method_name, read_args_count|
29
- define_method method_name do |*args|
30
- if args.count <= read_args_count
31
- internal_request.send(method_name, *args)
32
- else
33
- self.class.new(internal_request.send(method_name, *args))
34
- end
35
- end
36
- end
37
-
38
- # @return [EacRest::Request]
39
- def autenticate(username, password)
40
- self.class.new(internal_request.basic_auth(username, password))
41
- end
42
-
43
- # @return [EacRest::Response]
44
- def response
45
- ::EacRest::Response.new(self)
46
- end
47
- end
48
- end
@@ -1,27 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_rest/error'
4
- require 'eac_envs/http/error'
5
- require 'eac_ruby_utils/core_ext'
6
-
7
- module EacRest
8
- class Response < ::StandardError
9
- common_constructor :request
10
- delegate :body_data_proc, to: :request
11
-
12
- def internal_response
13
- @internal_response ||= request.internal_request.response
14
- end
15
-
16
- %i[body_data body_data_or_raise body_str body_str_or_raise header headers
17
- link links raise_unless_200 status to_s url].each do |method_name|
18
- define_method method_name do |*args, &block|
19
- internal_response.send(method_name, *args, &block)
20
- rescue ::EacEnvs::Http::Error
21
- raise ::EacRest::Error
22
- rescue ::EacEnvs::Http::Response
23
- raise self
24
- end
25
- end
26
- end
27
- end
@@ -1,5 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module EacRest
4
- VERSION = '0.10.0'
5
- end
@@ -1,7 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/core_ext'
4
-
5
- module EacRest
6
- require_sub __FILE__
7
- end
@@ -1,71 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_rest/api'
4
- require 'eac_envs/http/rspec/echo_server'
5
-
6
- ::RSpec.describe ::EacRest::Api do
7
- let(:instance) { described_class.new(http_server.root_url) }
8
- let(:http_server) { ::EacEnvs::Http::Rspec::EchoServer.http }
9
-
10
- around do |example|
11
- http_server.on_active(&example)
12
- end
13
-
14
- before do
15
- allow_any_instance_of(::Faraday::Multipart::Middleware).to( # rubocop:disable RSpec/AnyInstance
16
- receive(:unique_boundary)
17
- .and_return('-----------RubyMultipartPost-0123456789abcdef0123456789abcdef')
18
- )
19
- end
20
-
21
- include_examples 'source_target_fixtures', __FILE__
22
-
23
- def source_data(source_file)
24
- remove_variable_values(
25
- ::JSON.parse(
26
- ::RequestBuilder.from_file(instance, source_file).result.response.body_str
27
- )
28
- )
29
- end
30
-
31
- def remove_variable_values(obj)
32
- if obj.is_a?(::Hash)
33
- remove_variable_values_from_hash(obj)
34
- elsif obj.is_a?(::Enumerable)
35
- remove_variable_values_from_enumerable(obj)
36
- end
37
- obj
38
- end
39
-
40
- def remove_variable_values_from_hash(hash)
41
- %w[host hostname ip].each { |key| hash.delete(key) }
42
- hash.each_value { |value| remove_variable_values(value) }
43
- end
44
-
45
- def remove_variable_values_from_enumerable(enumerable)
46
- enumerable.each { |value| remove_variable_values(value) }
47
- end
48
-
49
- context 'with self signed https server' do
50
- let(:http_server) { ::EacEnvs::Http::Rspec::EchoServer.https }
51
- let(:instance) { described_class.new(http_server.root_url) }
52
- let(:request_base) { instance.request('/any/path') }
53
- let(:response_body) { request.response.body_str }
54
-
55
- context 'when no additional flag' do
56
- let(:request) { request_base }
57
-
58
- it do
59
- expect { response_body }.to(raise_error(::EacRest::Error))
60
- end
61
- end
62
-
63
- context 'when ssl_verify disabled' do
64
- let(:request) { request_base.ssl_verify(false) }
65
-
66
- it do
67
- expect { response_body }.not_to raise_error
68
- end
69
- end
70
- end
71
- end
@@ -1,5 +0,0 @@
1
- ---
2
- url_suffix: '/path/to/service?field1=value1&field2=value2'
3
- verb: :get
4
- headers:
5
- Accept: application/json
@@ -1,9 +0,0 @@
1
- ---
2
- ssl: false
3
- method: GET
4
- uri: "/path/to/service?field1=value1&field2=value2"
5
- body:
6
- headers:
7
- user-agent: EacRest
8
- accept: application/json
9
- accept-encoding: gzip,deflate
@@ -1,8 +0,0 @@
1
- ---
2
- url_suffix: '/path/to/service?field1=value1&field2=value2'
3
- auth:
4
- username: the_user
5
- password: the_secret
6
- verb: :get
7
- headers:
8
- Accept: application/json
@@ -1,10 +0,0 @@
1
- ---
2
- ssl: false
3
- method: GET
4
- uri: "/path/to/service?field1=value1&field2=value2"
5
- body:
6
- headers:
7
- user-agent: EacRest
8
- accept: application/json
9
- authorization: Basic dGhlX3VzZXI6dGhlX3NlY3JldA==
10
- accept-encoding: gzip,deflate
@@ -1,10 +0,0 @@
1
- ---
2
- url_suffix: '/path/to/service'
3
- verb: :post
4
- body_data:
5
- - - field1
6
- - value1
7
- - - field2
8
- - value2
9
- - - field1
10
- - value3
@@ -1,11 +0,0 @@
1
- ---
2
- ssl: false
3
- method: POST
4
- uri: "/path/to/service"
5
- body: field1=value1&field1=value3&field2=value2
6
- headers:
7
- user-agent: EacRest
8
- content-type: application/x-www-form-urlencoded
9
- accept-encoding: gzip,deflate
10
- accept: "*/*"
11
- content-length: '41'
@@ -1,4 +0,0 @@
1
- ---
2
- url_suffix: '/path/to/service'
3
- verb: :post
4
- body_data: field1=value1&field2=value2
@@ -1,11 +0,0 @@
1
- ---
2
- ssl: false
3
- method: POST
4
- uri: "/path/to/service"
5
- body: field1=value1&field2=value2
6
- headers:
7
- user-agent: EacRest
8
- content-type: application/x-www-form-urlencoded
9
- accept-encoding: gzip,deflate
10
- accept: "*/*"
11
- content-length: '27'
@@ -1,6 +0,0 @@
1
- ---
2
- url_suffix: '/path/to/service'
3
- verb: :put
4
- body_data:
5
- field1: value1
6
- field2: value2
@@ -1,11 +0,0 @@
1
- ---
2
- ssl: false
3
- method: PUT
4
- uri: "/path/to/service"
5
- body: field1=value1&field2=value2
6
- headers:
7
- user-agent: EacRest
8
- content-type: application/x-www-form-urlencoded
9
- accept-encoding: gzip,deflate
10
- accept: "*/*"
11
- content-length: '27'
@@ -1,5 +0,0 @@
1
- ---
2
- url_suffix: '/path/to/service'
3
- verb: :put
4
- body_data:
5
- '@field1': value1
@@ -1,13 +0,0 @@
1
- ---
2
- ssl: false
3
- method: PUT
4
- uri: "/path/to/service"
5
- body: "-------------RubyMultipartPost-0123456789abcdef0123456789abcdef\r\nContent-Disposition:
6
- form-data; name=\"field1\"; filename=\"basename\"\r\nContent-Length: 6\r\nContent-Type:
7
- text/plain\r\nContent-Transfer-Encoding: binary\r\n\r\nvalue1\r\n-------------RubyMultipartPost-0123456789abcdef0123456789abcdef--\r\n"
8
- headers:
9
- user-agent: EacRest
10
- content-type: multipart/form-data; boundary=-----------RubyMultipartPost-0123456789abcdef0123456789abcdef
11
- content-length: '290'
12
- accept-encoding: gzip,deflate
13
- accept: "*/*"
@@ -1,2 +0,0 @@
1
- ---
2
- url_suffix: ''
@@ -1,9 +0,0 @@
1
- ---
2
- ssl: false
3
- method: GET
4
- uri: "/"
5
- body:
6
- headers:
7
- user-agent: EacRest
8
- accept-encoding: gzip,deflate
9
- accept: "*/*"
@@ -1,3 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- ::EacRubyUtils::Rspec.default_setup.describe_rubocop
@@ -1,51 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/core_ext'
4
- require 'eac_ruby_utils/fs/temp'
5
- require 'eac_ruby_utils/yaml'
6
-
7
- class RequestBuilder
8
- class << self
9
- def from_file(api, path)
10
- new(api, ::EacRubyUtils::Yaml.load_file(path))
11
- end
12
- end
13
-
14
- FILE_FIELD_PARSER = /\A@(.+)\z/.to_parser { |m| m[1] }
15
-
16
- common_constructor :api, :data do
17
- self.data = data.with_indifferent_access
18
- end
19
-
20
- def result # rubocop:disable Metrics/AbcSize
21
- r = %i[verb headers].inject(selected_api.request(data.fetch(:url_suffix))) do |a, e|
22
- data[e].if_present(a) { |v| a.send(e, v) }
23
- end
24
- r = r.header('user-agent', 'EacRest')
25
- data[:body_data].if_present(r) { |v| r.body_data(build_body_data(v)) }
26
- end
27
-
28
- def build_body_data(source)
29
- return source unless source.is_a?(::Hash)
30
-
31
- source.map { |k, v| build_body_field(k, v) }
32
- end
33
-
34
- def build_body_field(name, value)
35
- FILE_FIELD_PARSER.parse(name).if_present([name, value]) do |v|
36
- [v, file_with_value(value)]
37
- end
38
- end
39
-
40
- def file_with_value(value)
41
- r = ::EacRubyUtils::Fs::Temp.directory.join('basename')
42
- r.write(value)
43
- ::File.new(r.to_path)
44
- end
45
-
46
- def selected_api
47
- data[:auth].if_present(api) do |v|
48
- api.class.new(api.root_url, v.fetch(:username), v.fetch(:password))
49
- end
50
- end
51
- end
@@ -1,7 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/rspec/default_setup'
4
- ::EacRubyUtils::Rspec.default_setup_create(::File.expand_path('..', __dir__))
5
-
6
- require 'eac_ruby_utils/require_sub'
7
- ::EacRubyUtils.require_sub __FILE__
@@ -1,8 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- source 'https://rubygems.org'
4
-
5
- gemspec
6
-
7
- local_gemfile = ::File.join(::File.dirname(__FILE__), 'Gemfile.local')
8
- eval_gemfile local_gemfile if ::File.exist?(local_gemfile)
@@ -1,19 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- $LOAD_PATH.push File.expand_path('lib', __dir__)
4
-
5
- require 'eac_templates/version'
6
-
7
- Gem::Specification.new do |s|
8
- s.name = 'eac_templates'
9
- s.version = EacTemplates::VERSION
10
- s.authors = ['Put here the authors']
11
- s.summary = 'Put here de description.'
12
-
13
- s.files = Dir['{lib}/**/*']
14
-
15
- s.add_dependency 'eac_config', '~> 0.12'
16
- s.add_dependency 'eac_ruby_utils', '~> 0.112'
17
-
18
- s.add_development_dependency 'eac_ruby_gem_support', '~> 0.5.1'
19
- end
@@ -1,42 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/core_ext'
4
- require 'eac_templates/interface_methods'
5
- require 'eac_templates/abstract/fs_object'
6
- require 'eac_templates/variables/directory'
7
-
8
- module EacTemplates
9
- module Abstract
10
- class Directory < ::EacTemplates::Abstract::FsObject
11
- enable_abstract_methods
12
- delegate(*::EacTemplates::InterfaceMethods::DIRECTORY - %i[child chidren], to: :applier)
13
-
14
- # @param basename [Pathname]
15
- # @return [EacTemplates::Abstract::FsObject
16
- def build_child(child_basename, child_type)
17
- child_basename = child_basename.to_pathname
18
- child_type = type_list.value_validate!(child_type)
19
- category_module.const_get(child_type.to_s.camelize)
20
- .new(owner, self, child_basename, options)
21
- end
22
-
23
- # @param basename [Pathname]
24
- # @return [EacTemplates::Abstract::FsObject]
25
- def child(basename)
26
- basename = basename.to_pathname
27
- children.find { |c| c.basename == basename } ||
28
- raise_not_found("No child found with basename \"#{basename}\"")
29
- end
30
-
31
- # @return [Enumerable<EacTemplates::Abstract::FsObject>]
32
- def children
33
- children_basenames.map { |c_basename, c_type| build_child(c_basename, c_type) }
34
- end
35
-
36
- # @return [Hash<Pathname, Symbol>]
37
- def children_basenames
38
- raise_abstract_method __method__
39
- end
40
- end
41
- end
42
- end
@@ -1,25 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/core_ext'
4
- require 'eac_templates/interface_methods'
5
- require 'eac_templates/abstract/fs_object'
6
- require 'eac_templates/variables/file'
7
-
8
- module EacTemplates
9
- module Abstract
10
- class File < ::EacTemplates::Abstract::FsObject
11
- enable_abstract_methods
12
- delegate(*::EacTemplates::InterfaceMethods::FILE - %i[content path], to: :applier)
13
-
14
- # @return [String]
15
- def content
16
- path.read
17
- end
18
-
19
- # @return [Pathname]
20
- def path
21
- raise_abstract_method __method__
22
- end
23
- end
24
- end
25
- end