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,28 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/core_ext'
4
- module EacEnvs
5
- module Http
6
- class Response < ::StandardError
7
- module Links
8
- # https://www.w3.org/wiki/LinkHeader
9
- LINKS_HEADER_NAME = 'Link'
10
-
11
- # https://www.w3.org/wiki/LinkHeader
12
- LINK_PARSER = /\A\<(.+)\>\s*;\s*rel\s*=\s*\"(.*)\"\z/.to_parser do |m|
13
- [m[2], m[1]]
14
- end
15
-
16
- def link(rel)
17
- hash_search(links, rel)
18
- end
19
-
20
- def links
21
- header(LINKS_HEADER_NAME).if_present({}) do |v|
22
- v.split(',').map { |w| LINK_PARSER.parse!(w.strip) }.to_h
23
- end
24
- end
25
- end
26
- end
27
- end
28
- end
@@ -1,21 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/core_ext'
4
-
5
- module EacEnvs
6
- module Http
7
- class Response < ::StandardError
8
- module Statuses
9
- def raise_unless_200
10
- return nil if status >= 200 && status < 300
11
-
12
- raise self
13
- end
14
-
15
- def status
16
- performed.status.to_i
17
- end
18
- end
19
- end
20
- end
21
- end
@@ -1,30 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'active_support/core_ext/hash/conversions'
4
- require 'eac_envs/http/error'
5
- require 'eac_ruby_utils/core_ext'
6
- require 'faraday'
7
- require 'json'
8
-
9
- module EacEnvs
10
- module Http
11
- class Response < ::StandardError
12
- common_constructor :request
13
- delegate :url, to: :request
14
-
15
- def to_s
16
- "URL: #{url}\nStatus: #{status}\nBody:\n\n#{body_str}"
17
- end
18
-
19
- private
20
-
21
- def performed
22
- @performed ||= request.faraday_response
23
- rescue ::Faraday::Error
24
- raise ::EacEnvs::Http::Error
25
- end
26
-
27
- require_sub __FILE__, include_modules: true
28
- end
29
- end
30
- end
@@ -1,42 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_envs/http/request'
4
- require 'eac_ruby_utils/core_ext'
5
- require 'webrick'
6
-
7
- module EacEnvs
8
- module Http
9
- module Rspec
10
- class EchoServer
11
- class RequestProcessor
12
- REQUEST_TO_DATA = {
13
- ssl: :ssl?,
14
- method: :request_method,
15
- uri: :unparsed_uri,
16
- body: :body
17
- }.freeze
18
-
19
- common_constructor :request, :response
20
-
21
- def perform
22
- response.body = response_body
23
- response.header['Content-type'] = 'application/json'
24
- response.status = 200
25
- end
26
-
27
- def request_data
28
- REQUEST_TO_DATA.map { |k, v| [k, request.send(v)] }.to_h.merge(headers: request_headers)
29
- end
30
-
31
- def request_headers
32
- request.header.map { |k, v| [k, v.first] }.to_h
33
- end
34
-
35
- def response_body
36
- ::JSON.generate(request_data)
37
- end
38
- end
39
- end
40
- end
41
- end
42
- end
@@ -1,22 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_envs/http/request'
4
- require 'eac_envs/http/rspec/echo_server/request_processor'
5
- require 'eac_ruby_utils/core_ext'
6
- require 'webrick'
7
-
8
- module EacEnvs
9
- module Http
10
- module Rspec
11
- class EchoServer
12
- class WebrickServlet < WEBrick::HTTPServlet::AbstractServlet
13
- ::EacEnvs::Http::Request.lists.verb.each_value do |verb|
14
- define_method "do_#{verb.to_s.upcase}" do |request, response|
15
- ::EacEnvs::Http::Rspec::EchoServer::RequestProcessor.new(request, response).perform
16
- end
17
- end
18
- end
19
- end
20
- end
21
- end
22
- end
@@ -1,63 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'addressable'
4
- require 'eac_ruby_utils/core_ext'
5
- require 'webrick'
6
- require 'webrick/https'
7
-
8
- module EacEnvs
9
- module Http
10
- module Rspec
11
- class EchoServer
12
- HOSTNAME = 'localhost'
13
- SCHEMES = {
14
- http: { Port: 8080 },
15
- https: { Port: 8443, SSLEnable: true, SSLCertName: [['CN', HOSTNAME]] }
16
- }.freeze
17
-
18
- class << self
19
- SCHEMES.each do |scheme, webrick_options|
20
- # @return [::EacEnvs::Http::Rspec::EchoServer]
21
- define_method scheme do
22
- new(scheme, webrick_options)
23
- end
24
- end
25
- end
26
-
27
- common_constructor :scheme, :webrick_options
28
-
29
- def on_active(&block)
30
- servlet = webrick_servlet
31
- ::Thread.abort_on_exception = true
32
- servlet_thread = ::Thread.new { servlet.start }
33
- begin
34
- sleep 0.001 while servlet.status != :Running
35
- block.call
36
- ensure
37
- servlet.shutdown
38
- servlet_thread.join
39
- end
40
- end
41
-
42
- def root_url
43
- ::Addressable::URI.new(
44
- scheme: scheme.to_s,
45
- host: ::EacEnvs::Http::Rspec::EchoServer::HOSTNAME,
46
- port: webrick_options.fetch(:Port)
47
- )
48
- end
49
-
50
- private
51
-
52
- # @return [EacEnvs::Http::Rspec::EchoServer::WebrickServlet]
53
- def webrick_servlet
54
- r = ::WEBrick::HTTPServer.new(webrick_options)
55
- r.mount '/', ::EacEnvs::Http::Rspec::EchoServer::WebrickServlet
56
- r
57
- end
58
-
59
- require_sub __FILE__
60
- end
61
- end
62
- end
63
- end
@@ -1,11 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/core_ext'
4
-
5
- module EacEnvs
6
- module Http
7
- module Rspec
8
- require_sub __FILE__
9
- end
10
- end
11
- end
@@ -1,7 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module EacEnvs
4
- module Http
5
- VERSION = '0.4.1'
6
- end
7
- end
@@ -1,9 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/core_ext'
4
-
5
- module EacEnvs
6
- module Http
7
- require_sub __FILE__
8
- end
9
- end
@@ -1,47 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_envs/http/request/body_fields'
4
-
5
- ::RSpec.describe ::EacEnvs::Http::Request::BodyFields do
6
- describe '#to_h' do
7
- [
8
- [
9
- { field1: 'value1', field2: %w[value2 value3] },
10
- { 'field1' => ['value1'], 'field2' => %w[value2 value3] }
11
- ], [
12
- 'field1=value1&field2=value2',
13
- nil
14
- ], [
15
- [%w[field1 value1], %w[field2 value2], %w[field2 value3]],
16
- { 'field1' => ['value1'], 'field2' => %w[value2 value3] }
17
- ]
18
- ].each do |d|
19
- source_body = d[0]
20
- expected_result = d[1]
21
- context "when source_body is #{source_body}" do
22
- let(:instance) { described_class.new(source_body) }
23
-
24
- it do
25
- expect(instance.to_h).to eq(expected_result)
26
- end
27
- end
28
- end
29
-
30
- context 'when source_body has a file' do
31
- let(:file) do
32
- temp = ::EacRubyUtils::Fs::Temp.file
33
- temp.write('TEMPORARY')
34
- ::File.new(temp.to_path)
35
- end
36
- let(:source_body) { { file1: file } }
37
- let(:instance) { described_class.new(source_body) }
38
- let(:expected_file) { ::Faraday::Multipart::FilePart.new(file.path, 'text/plain') }
39
-
40
- %w[class original_filename local_path content_type].each do |attr|
41
- it do
42
- expect(instance.to_h.fetch('file1').first.send(attr)).to eq(expected_file.send(attr))
43
- end
44
- end
45
- end
46
- end
47
- end
@@ -1,68 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_envs/http/error'
4
- require 'eac_envs/http/request'
5
- require 'eac_envs/http/rspec/echo_server'
6
-
7
- ::RSpec.describe ::EacEnvs::Http::Request do
8
- let(:http_server) { ::EacEnvs::Http::Rspec::EchoServer.http }
9
-
10
- around { |example| http_server.on_active(&example) }
11
-
12
- before do
13
- allow_any_instance_of(::Faraday::Multipart::Middleware).to( # rubocop:disable RSpec/AnyInstance
14
- receive(:unique_boundary)
15
- .and_return('-----------RubyMultipartPost-0123456789abcdef0123456789abcdef')
16
- )
17
- end
18
-
19
- include_examples 'source_target_fixtures', __FILE__
20
-
21
- def source_data(source_file)
22
- remove_variable_values(
23
- ::JSON.parse(
24
- ::RequestBuilder.from_file(http_server.root_url, source_file).result.response.body_str
25
- )
26
- )
27
- end
28
-
29
- def remove_variable_values(obj)
30
- if obj.is_a?(::Hash)
31
- remove_variable_values_from_hash(obj)
32
- elsif obj.is_a?(::Enumerable)
33
- remove_variable_values_from_enumerable(obj)
34
- end
35
- obj
36
- end
37
-
38
- def remove_variable_values_from_hash(hash)
39
- %w[host hostname ip].each { |key| hash.delete(key) }
40
- hash.each_value { |value| remove_variable_values(value) }
41
- end
42
-
43
- def remove_variable_values_from_enumerable(enumerable)
44
- enumerable.each { |value| remove_variable_values(value) }
45
- end
46
-
47
- context 'with self signed https server' do
48
- let(:http_server) { ::EacEnvs::Http::Rspec::EchoServer.https }
49
- let(:instance) { described_class.new.url(http_server.root_url + '/any/path') }
50
- let(:response_body) { request.response.body_str }
51
-
52
- context 'when no additional flag' do
53
- let(:request) { instance }
54
-
55
- it do
56
- expect { response_body }.to(raise_error(::EacEnvs::Http::Error))
57
- end
58
- end
59
-
60
- context 'when ssl_verify disabled' do
61
- let(:request) { instance.ssl_verify(false) }
62
-
63
- it do
64
- expect { response_body }.not_to raise_error
65
- end
66
- end
67
- end
68
- 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: EacEnvs::Http
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: EacEnvs::Http
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: EacEnvs::Http
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: EacEnvs::Http
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: EacEnvs::Http
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: EacEnvs::Http
10
- content-type: multipart/form-data; boundary=-----------RubyMultipartPost-0123456789abcdef0123456789abcdef
11
- content-length: '290'
12
- accept-encoding: gzip,deflate
13
- accept: "*/*"
@@ -1,9 +0,0 @@
1
- ---
2
- ssl: false
3
- method: GET
4
- uri: "/"
5
- body:
6
- headers:
7
- user-agent: EacEnvs::Http
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,62 +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(root_url, path)
10
- new(root_url, ::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 :root_url, :data do
17
- self.root_url = root_url.to_uri
18
- self.data = data.with_indifferent_access
19
- end
20
-
21
- def new_request
22
- ::EacEnvs::Http::Request.new.url(root_url + data.fetch(:url_suffix))
23
- end
24
-
25
- def result
26
- r = %i[verb headers].inject(new_request) do |a, e|
27
- data[e].if_present(a) { |v| a.send(e, v) }
28
- end
29
- r = r.header('user-agent', 'EacEnvs::Http')
30
- result_body_data(result_auth(r))
31
- end
32
-
33
- def build_body_data(source)
34
- return source unless source.is_a?(::Hash)
35
-
36
- source.map { |k, v| build_body_field(k, v) }
37
- end
38
-
39
- def build_body_field(name, value)
40
- FILE_FIELD_PARSER.parse(name).if_present([name, value]) do |v|
41
- [v, file_with_value(value)]
42
- end
43
- end
44
-
45
- def file_with_value(value)
46
- r = ::EacRubyUtils::Fs::Temp.directory.join('basename')
47
- r.write(value)
48
- ::File.new(r.to_path)
49
- end
50
-
51
- private
52
-
53
- def result_auth(request)
54
- request = data[:auth].if_present(request) do |v|
55
- request.basic_auth(v.fetch(:username), v.fetch(:password))
56
- end
57
- end
58
-
59
- def result_body_data(request)
60
- data[:body_data].if_present(request) { |v| request.body_data(build_body_data(v)) }
61
- end
62
- 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__
data/sub/eac_fs/Gemfile DELETED
@@ -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,20 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- $LOAD_PATH.push File.expand_path('lib', __dir__)
4
-
5
- require 'eac_fs/version'
6
-
7
- Gem::Specification.new do |s|
8
- s.name = 'eac_fs'
9
- s.version = EacFs::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 'content-type', '~> 0.0', '>= 0.0.2'
16
- s.add_dependency 'eac_ruby_utils', '~> 0.107', '>= 0.107.1'
17
- s.add_dependency 'ruby-filemagic', '~> 0.7', '>= 0.7.3'
18
-
19
- s.add_development_dependency 'eac_ruby_gem_support', '~> 0.5.1'
20
- end
@@ -1,40 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_fs/patches'
4
- require 'eac_ruby_utils/fs/temp'
5
- require 'open-uri'
6
-
7
- module EacFs
8
- class CachedDownload
9
- attr_reader :url, :fs_cache
10
-
11
- def initialize(url, parent_fs_cache = nil)
12
- @url = url
13
- @fs_cache = (parent_fs_cache || fs_cache).child(url.to_s.parameterize)
14
- end
15
-
16
- def assert
17
- download unless fs_cache.stored?
18
- end
19
-
20
- def download
21
- ::EacRubyUtils::Fs::Temp.on_file do |temp|
22
- download_to(temp)
23
- fs_cache.content_path.to_pathname.dirname.mkpath
24
- ::FileUtils.mv(temp.to_path, fs_cache.content_path)
25
- end
26
- end
27
-
28
- def path
29
- fs_cache.content_path.to_pathname
30
- end
31
-
32
- private
33
-
34
- def download_to(local_file)
35
- ::URI.parse(url).open do |remote|
36
- local_file.open('wb') { |handle| handle.write(remote.read) }
37
- end
38
- end
39
- end
40
- end