eac_tools 0.75.2 → 0.76.1

Sign up to get free protection for your applications and to get access to all the features.
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,49 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_templates/abstract/not_found_error'
4
- require 'eac_templates/abstract/directory'
5
- require 'eac_templates/variables/file'
6
- require 'eac_templates/variables/fs_object'
7
-
8
- module EacTemplates
9
- module Variables
10
- class Directory
11
- common_constructor :abstract_directory do
12
- self.abstract_directory = ::EacTemplates::Abstract::Directory.assert(abstract_directory)
13
- end
14
- delegate :path, to: :abstract_directory
15
-
16
- def apply(variables_source, directory)
17
- ::EacTemplates::Variables::FsObject.new(self, '.', directory, variables_source).apply
18
- end
19
-
20
- def child(subpath)
21
- child_path = ::File.join(path, subpath)
22
- return ::EacTemplates::Variables::File.new(child_path) if ::File.file?(child_path)
23
- return ::EacTemplates::Variables::Directory.new(child_path) if ::File.directory?(child_path)
24
-
25
- raise ::EacTemplates::Abstract::NotFoundError,
26
- "Child \"#{subpath}\" from \"#{path}\" not found"
27
- end
28
-
29
- def children
30
- path.children.map do |path_child|
31
- child(path_child.basename.to_path)
32
- end
33
- end
34
-
35
- private
36
-
37
- def apply_fs_object(source_relative, target)
38
- if ::File.directory?(source_absolute(source_relative))
39
- apply_directory(source_relative, target)
40
- elsif ::File.file?(source_absolute(source_relative))
41
- end
42
- end
43
-
44
- def source_absolute(source_relative)
45
- ::File.expand_path(source_relative, path)
46
- end
47
- end
48
- end
49
- end
@@ -1,26 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/core_ext'
4
- require 'eac_templates/abstract/file'
5
- require 'eac_templates/variables/content'
6
- require 'eac_templates/variables/providers'
7
-
8
- module EacTemplates
9
- module Variables
10
- class File
11
- enable_simple_cache
12
- common_constructor :abstract_file do
13
- self.abstract_file = ::EacTemplates::Abstract::File.assert(abstract_file)
14
- end
15
- delegate :path, to: :abstract_file
16
- delegate :apply, :apply_to_file, :content, :variables, to: :content_applier
17
-
18
- private
19
-
20
- # @return [EacTemplates::Variables::Content]
21
- def content_applier_uncached
22
- ::EacTemplates::Variables::Content.from_file(path)
23
- end
24
- end
25
- end
26
- end
@@ -1,65 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_templates/variables/file'
4
-
5
- module EacTemplates
6
- module Variables
7
- class FsObject
8
- TEMPLATE_EXTNAME = '.template'
9
-
10
- common_constructor :source_directory, :source_relative, :target_root_directory,
11
- :variables_source
12
-
13
- def apply
14
- if file?
15
- apply_file
16
- elsif directory?
17
- apply_directory
18
- else
19
- raise "Unknown filesystem type: #{source_absolute}"
20
- end
21
- end
22
-
23
- private
24
-
25
- def apply_directory
26
- ::FileUtils.mkdir_p(target_absolute)
27
- Dir.entries(source_absolute).each do |entry|
28
- child(entry).apply unless %w[. ..].include?(entry)
29
- end
30
- end
31
-
32
- def apply_file
33
- if ::File.extname(source_absolute) == TEMPLATE_EXTNAME
34
- ::EacTemplates::Variables::File.new(source_absolute).apply_to_file(
35
- variables_source, target_absolute
36
- )
37
- else
38
- ::FileUtils.cp(source_absolute, target_absolute)
39
- end
40
- end
41
-
42
- def child(entry)
43
- self.class.new(source_directory, ::File.join(source_relative, entry),
44
- target_root_directory, variables_source)
45
- end
46
-
47
- def file?
48
- ::File.file?(source_absolute)
49
- end
50
-
51
- def directory?
52
- ::File.directory?(source_absolute)
53
- end
54
-
55
- def source_absolute
56
- ::File.expand_path(source_relative, source_directory.path)
57
- end
58
-
59
- def target_absolute
60
- ::File.expand_path(source_relative, target_root_directory)
61
- .gsub(/#{::Regexp.quote(TEMPLATE_EXTNAME)}\z/, '')
62
- end
63
- end
64
- end
65
- end
@@ -1,7 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module EacTemplates
4
- module Variables
5
- class NotFoundError < StandardError; end
6
- end
7
- end
@@ -1,23 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_templates/variables/not_found_error'
4
-
5
- module EacTemplates
6
- module Variables
7
- module Providers
8
- class Base
9
- attr_reader :source
10
-
11
- def initialize(source)
12
- @source = source
13
- end
14
-
15
- def variable_value(name)
16
- return variable_fetch(name) if variable_exist?(name)
17
-
18
- raise VariableNotFoundError, "Variable \"#{name}\" not found in #{source}"
19
- end
20
- end
21
- end
22
- end
23
- end
@@ -1,29 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_config/node'
4
- require 'eac_templates/variables/providers/base'
5
-
6
- module EacTemplates
7
- module Variables
8
- module Providers
9
- class ConfigReader < ::EacTemplates::Variables::Providers::Base
10
- class << self
11
- def accept?(variables_source)
12
- return false unless variables_source.respond_to?(:entry)
13
-
14
- entry = variables_source.entry(:any_value)
15
- entry.respond_to?(:value) && entry.respond_to?(:found?)
16
- end
17
- end
18
-
19
- def variable_exist?(name)
20
- source.entry(name).found?
21
- end
22
-
23
- def variable_fetch(name)
24
- source.entry(name).value
25
- end
26
- end
27
- end
28
- end
29
- end
@@ -1,25 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_templates/variables/providers/base'
4
-
5
- module EacTemplates
6
- module Variables
7
- module Providers
8
- class EntriesReader < ::EacTemplates::Variables::Providers::Base
9
- class << self
10
- def accept?(variables_source)
11
- variables_source.respond_to?(:read_entry)
12
- end
13
- end
14
-
15
- def variable_exist?(_name)
16
- true
17
- end
18
-
19
- def variable_fetch(name)
20
- source.read_entry(name)
21
- end
22
- end
23
- end
24
- end
25
- end
@@ -1,25 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_templates/variables/providers/base'
4
-
5
- module EacTemplates
6
- module Variables
7
- module Providers
8
- class Generic < ::EacTemplates::Variables::Providers::Base
9
- class << self
10
- def accept?(variables_source)
11
- variables_source.is_a?(::Object)
12
- end
13
- end
14
-
15
- def variable_exist?(name)
16
- source.respond_to?(name)
17
- end
18
-
19
- def variable_fetch(name)
20
- source.send(name)
21
- end
22
- end
23
- end
24
- end
25
- end
@@ -1,29 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_templates/variables/providers/base'
4
-
5
- module EacTemplates
6
- module Variables
7
- module Providers
8
- class Hash < ::EacTemplates::Variables::Providers::Base
9
- class << self
10
- def accept?(variables_source)
11
- variables_source.is_a?(::Hash)
12
- end
13
- end
14
-
15
- def initialize(source)
16
- super(source.with_indifferent_access)
17
- end
18
-
19
- def variable_exist?(name)
20
- source.key?(name)
21
- end
22
-
23
- def variable_fetch(name)
24
- source.fetch(name)
25
- end
26
- end
27
- end
28
- end
29
- end
@@ -1,25 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/core_ext'
4
-
5
- module EacTemplates
6
- module Variables
7
- module Providers
8
- require_sub __FILE__
9
-
10
- PROVIDERS = %w[config_reader entries_reader hash generic].map do |name|
11
- "eac_templates/variables/providers/#{name}".camelize.constantize
12
- end
13
-
14
- class << self
15
- def build(variables_source)
16
- PROVIDERS.each do |provider|
17
- return provider.new(variables_source) if provider.accept?(variables_source)
18
- end
19
-
20
- raise "Variables provider not found for #{variables_source}"
21
- end
22
- end
23
- end
24
- end
25
- end
@@ -1,9 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/core_ext'
4
-
5
- module EacTemplates
6
- module Variables
7
- require_sub __FILE__
8
- end
9
- end
@@ -1,5 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module EacTemplates
4
- VERSION = '0.5.0'
5
- end
@@ -1,7 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/core_ext'
4
-
5
- module EacTemplates
6
- require_sub __FILE__
7
- end
@@ -1,141 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_templates/modules/base'
4
- require 'eac_templates/abstract/not_found_error'
5
- require 'eac_templates/sources/set'
6
-
7
- RSpec.describe ::EacTemplates::Modules::Base do
8
- def self.on_node_specs(node_name, &block)
9
- context "when object is \"#{node_name}\"" do # rubocop:disable RSpec/EmptyExampleGroup
10
- let(:node) { send(node_name) }
11
-
12
- instance_eval(&block)
13
- end
14
- end
15
-
16
- def self.dir_specs(node_name, expected_children)
17
- on_node_specs(node_name) do
18
- it do
19
- expect(node.children.map { |child| child.path.basename.to_path }).to(
20
- eq(expected_children)
21
- )
22
- end
23
- end
24
- end
25
-
26
- def self.file_specs_ok(node_name, expected_content, expected_apply, # rubocop:disable Metrics/AbcSize
27
- expected_variables)
28
- on_node_specs(node_name) do
29
- it { expect(node.content).to eq(expected_content) }
30
- it { expect(node.variables).to eq(::Set.new(expected_variables)) }
31
- it { expect(node.apply(variables_source)).to eq(expected_apply) }
32
-
33
- it do
34
- target_file = temp_file
35
- node.apply_to_file(variables_source, target_file)
36
- expect(target_file.read).to eq(expected_apply)
37
- end
38
- end
39
- end
40
-
41
- def self.file_specs_error(node_name)
42
- on_node_specs(node_name) do
43
- it do
44
- expect { node }.to raise_error(::EacTemplates::Abstract::NotFoundError)
45
- end
46
- end
47
- end
48
-
49
- let(:a_module) do
50
- ::Module.new do
51
- def self.name
52
- 'AModule'
53
- end
54
- end
55
- end
56
- let(:super_class) do
57
- r = ::Class.new do
58
- def self.name
59
- 'SuperClass'
60
- end
61
- end
62
- r.include a_module
63
- r
64
- end
65
- let(:prepended_module) do
66
- ::Module.new do
67
- def self.name
68
- 'PrependedModule'
69
- end
70
- end
71
- end
72
- let(:sub_class) do
73
- r = ::Class.new(super_class) do
74
- def self.name
75
- 'SuperClass'
76
- end
77
- end
78
- r.prepend(prepended_module)
79
- r
80
- end
81
- let(:files_dir) { __dir__.to_pathname.join('base_spec_files') }
82
- let(:variables_source) { { vx: '_X_', vy: '_Y_' } }
83
- let(:source_set) do
84
- r = ::EacTemplates::Sources::Set.new
85
- %w[path1 path2].each do |sub|
86
- r.included_paths << files_dir.join(sub)
87
- end
88
- r
89
- end
90
-
91
- let(:a) { instance.child('a') }
92
- let(:a_a) { a.child('a_a') }
93
- let(:a_b) { a.child('a_b') }
94
- let(:a_c) { a.child('a_c') }
95
- let(:b) { instance.child('b') }
96
- let(:c) { instance.child('c') }
97
-
98
- context 'when module is AModule' do # rubocop:disable RSpec/EmptyExampleGroup
99
- let(:instance) { described_class.new(a_module, source_set: source_set) }
100
-
101
- dir_specs(:a, %w[a_a a_b])
102
- file_specs_ok(:a_a, "A_MODULE_A_A\n", "A_MODULE_A_A\n", [])
103
- file_specs_ok(:a_b, "A_MODULE_A_B\n", "A_MODULE_A_B\n", [])
104
- file_specs_error(:a_c)
105
- file_specs_ok(:b, "A_MODULE_B%%vy%%\n", "A_MODULE_B_Y_\n", %w[vy])
106
- file_specs_ok(:c, "A_MODULE_C%%vx%%\n", "A_MODULE_C_X_\n", %w[vx])
107
- end
108
-
109
- context 'when module is SuperClass' do # rubocop:disable RSpec/EmptyExampleGroup
110
- let(:instance) { described_class.new(super_class, source_set: source_set) }
111
-
112
- dir_specs(:a, %w[a_b])
113
- file_specs_error(:a_a)
114
- file_specs_ok(:a_b, "SUPER_CLASS_A_B\n", "SUPER_CLASS_A_B\n", [])
115
- file_specs_error(:a_c)
116
- file_specs_ok(:b, "SUPER_CLASS_B\n", "SUPER_CLASS_B\n", [])
117
- file_specs_error(:c)
118
- end
119
-
120
- context 'when module is SubClass' do # rubocop:disable RSpec/EmptyExampleGroup
121
- let(:instance) { described_class.new(sub_class, source_set: source_set) }
122
-
123
- dir_specs(:a, %w[a_b])
124
- file_specs_error(:a_a)
125
- file_specs_ok(:a_b, "SUPER_CLASS_A_B\n", "SUPER_CLASS_A_B\n", [])
126
- file_specs_error(:a_c)
127
- file_specs_ok(:b, "SUPER_CLASS_B\n", "SUPER_CLASS_B\n", [])
128
- file_specs_error(:c)
129
- end
130
-
131
- context 'when module is PrependedModule' do # rubocop:disable RSpec/EmptyExampleGroup
132
- let(:instance) { described_class.new(prepended_module, source_set: source_set) }
133
-
134
- file_specs_error(:a)
135
- file_specs_error(:a_a)
136
- file_specs_error(:a_b)
137
- file_specs_error(:a_c)
138
- file_specs_error(:b)
139
- file_specs_ok(:c, "PREPENDED_MODULE_C%%vy%%%%vx%%\n", "PREPENDED_MODULE_C_Y__X_\n", %w[vy vx])
140
- end
141
- end
@@ -1,26 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_templates/interface_methods'
4
- require 'eac_templates/patches/object/template'
5
-
6
- RSpec.describe ::Object do
7
- class MyStubWithTemplate # rubocop:disable RSpec/LeakyConstantDeclaration
8
- end
9
-
10
- let(:instance) { ::MyStubWithTemplate.new }
11
- let(:templates_path) { ::File.join(__dir__, 'template_spec_files', 'path') }
12
-
13
- before do
14
- ::EacTemplates::Sources::Set.default.included_paths.add(templates_path)
15
- end
16
-
17
- after do
18
- ::EacTemplates::Sources::Set.default.included_paths.delete(templates_path)
19
- end
20
-
21
- describe '#template' do
22
- ::EacTemplates::InterfaceMethods::FILE.each do |method_name|
23
- it { expect(instance.template).to respond_to(method_name) }
24
- end
25
- end
26
- end
@@ -1,42 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_templates/interface_methods'
4
- require 'eac_templates/sources/set'
5
-
6
- RSpec.describe ::EacTemplates::Sources::Set do
7
- let(:files_dir) { ::File.join(__dir__, 'set_spec_files') }
8
- let(:instance) do
9
- r = described_class.new
10
- r.included_paths << ::File.join(files_dir, 'path1')
11
- r.included_paths << ::File.join(files_dir, 'path2')
12
- r
13
- end
14
-
15
- describe '#template' do
16
- {
17
- 'subdir1' => :directory,
18
- 'subdir1/file1.template' => :file,
19
- 'subdir1/file2' => :file,
20
- 'subdir1/file3.template' => :file,
21
- 'does_not_exist' => :nil
22
- }.each do |subpath, type|
23
- context "when subpath is \"#{subpath}\"" do
24
- let(:result) { instance.template(subpath, false) }
25
-
26
- case type
27
- when :nil
28
- it { expect(result).to be_nil }
29
- when :directory
30
- ::EacTemplates::InterfaceMethods::DIRECTORY.each do |method_name|
31
- it { expect(result).to respond_to(method_name) } # rubocop:disable RSpec/RepeatedExample
32
- end
33
- when :file
34
- ::EacTemplates::InterfaceMethods::FILE.each do |method_name|
35
- it { expect(result).to respond_to(method_name) } # rubocop:disable RSpec/RepeatedExample
36
- end
37
- else ibr
38
- end
39
- end
40
- end
41
- end
42
- end
@@ -1,35 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_config/old_configs'
4
- require 'eac_templates/variables/file'
5
-
6
- RSpec.describe ::EacTemplates::Variables::Content do
7
- let(:files_dir) { ::File.join(__dir__, 'content_spec_files').to_pathname }
8
- let(:source_path) { files_dir.join('source.template') }
9
- let(:instance) { described_class.from_file(source_path) }
10
- let(:expected_content) { ::File.read(::File.join(files_dir, 'expected_content')) }
11
-
12
- describe '#apply' do
13
- context 'when config is a hash' do
14
- let(:config) { { name: 'Fulano de Tal', age: 33 } }
15
-
16
- it { expect(instance.apply(config)).to eq(expected_content) }
17
- end
18
-
19
- context 'when config responds to read_entry' do
20
- let(:config) { ::EacConfig::OldConfigs.new('rspec_describe_eac_ruby_utils_templates_file') }
21
-
22
- before do
23
- config.clear
24
- config['name'] = 'Fulano de Tal'
25
- config['age'] = '33'
26
- end
27
-
28
- it { expect(instance.apply(config)).to eq(expected_content) }
29
- end
30
- end
31
-
32
- describe '#variables' do
33
- it { expect(instance.variables).to eq(::Set.new(%w[name age])) }
34
- end
35
- end
@@ -1,3 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- ::EacRubyUtils::Rspec.default_setup.describe_rubocop
@@ -1,4 +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__))