eac_tools 0.60.2 → 0.60.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (77) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +29 -24
  3. data/lib/eac_tools/version.rb +1 -1
  4. data/sub/avm/avm.gemspec +1 -1
  5. data/sub/avm/lib/avm/version.rb +1 -1
  6. data/sub/avm-eac_ruby_base1/avm-eac_ruby_base1.gemspec +2 -2
  7. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/source_generators/base.rb +2 -2
  8. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/version.rb +1 -1
  9. data/sub/avm-eac_ubuntu_base0/Gemfile +3 -0
  10. data/sub/avm-eac_ubuntu_base0/avm-eac_ubuntu_base0.gemspec +1 -1
  11. data/sub/avm-eac_ubuntu_base0/lib/avm/eac_ubuntu_base0/docker_image.rb +1 -1
  12. data/sub/avm-eac_ubuntu_base0/lib/avm/eac_ubuntu_base0/version.rb +1 -1
  13. data/sub/avm-files/avm-files.gemspec +5 -5
  14. data/sub/avm-files/lib/avm/files/appendable/templatized_directory.rb +2 -2
  15. data/sub/avm-files/lib/avm/files/version.rb +1 -1
  16. data/sub/eac_templates/Gemfile +8 -0
  17. data/sub/eac_templates/eac_templates.gemspec +19 -0
  18. data/sub/eac_templates/lib/eac_templates/core_ext.rb +4 -0
  19. data/sub/eac_templates/lib/eac_templates/interface_methods.rb +12 -0
  20. data/sub/eac_templates/lib/eac_templates/modules/ancestor/directory.rb +15 -0
  21. data/sub/eac_templates/lib/eac_templates/modules/ancestor/file.rb +15 -0
  22. data/sub/eac_templates/lib/eac_templates/modules/ancestor/fs_object.rb +32 -0
  23. data/sub/eac_templates/lib/eac_templates/modules/ancestor.rb +48 -0
  24. data/sub/eac_templates/lib/eac_templates/modules/base.rb +35 -0
  25. data/sub/eac_templates/lib/eac_templates/modules.rb +9 -0
  26. data/sub/eac_templates/lib/eac_templates/patches/module/erb_template.rb +9 -0
  27. data/sub/eac_templates/lib/eac_templates/patches/module/template.rb +9 -0
  28. data/sub/eac_templates/lib/eac_templates/patches/module.rb +4 -0
  29. data/sub/eac_templates/lib/eac_templates/patches/object/erb_template.rb +9 -0
  30. data/sub/eac_templates/lib/eac_templates/patches/object/template.rb +9 -0
  31. data/sub/eac_templates/lib/eac_templates/patches/object.rb +4 -0
  32. data/sub/eac_templates/lib/eac_templates/patches.rb +4 -0
  33. data/sub/eac_templates/lib/eac_templates/sources/directory.rb +24 -0
  34. data/sub/eac_templates/lib/eac_templates/sources/file.rb +24 -0
  35. data/sub/eac_templates/lib/eac_templates/sources/from_all_gems.rb +4 -0
  36. data/sub/eac_templates/lib/eac_templates/sources/from_gem.rb +37 -0
  37. data/sub/eac_templates/lib/eac_templates/sources/fs_object.rb +53 -0
  38. data/sub/eac_templates/lib/eac_templates/sources/internal_set.rb +22 -0
  39. data/sub/eac_templates/lib/eac_templates/sources/set.rb +54 -0
  40. data/sub/eac_templates/lib/eac_templates/sources/single.rb +29 -0
  41. data/sub/eac_templates/lib/eac_templates/sources.rb +9 -0
  42. data/sub/eac_templates/lib/eac_templates/variables/directory.rb +47 -0
  43. data/sub/eac_templates/lib/eac_templates/variables/file.rb +50 -0
  44. data/sub/eac_templates/lib/eac_templates/variables/fs_object.rb +65 -0
  45. data/sub/eac_templates/lib/eac_templates/variables/not_found_error.rb +7 -0
  46. data/sub/eac_templates/lib/eac_templates/variables/providers/base.rb +23 -0
  47. data/sub/eac_templates/lib/eac_templates/variables/providers/config_reader.rb +29 -0
  48. data/sub/eac_templates/lib/eac_templates/variables/providers/entries_reader.rb +25 -0
  49. data/sub/eac_templates/lib/eac_templates/variables/providers/generic.rb +25 -0
  50. data/sub/eac_templates/lib/eac_templates/variables/providers/hash.rb +29 -0
  51. data/sub/eac_templates/lib/eac_templates/variables/providers.rb +25 -0
  52. data/sub/eac_templates/lib/eac_templates/variables.rb +9 -0
  53. data/sub/eac_templates/lib/eac_templates/version.rb +5 -0
  54. data/sub/eac_templates/lib/eac_templates.rb +7 -0
  55. data/sub/eac_templates/spec/lib/eac_templates/patches/module/template_spec.rb +120 -0
  56. data/sub/eac_templates/spec/lib/eac_templates/patches/module/template_spec_files/path1/a_module/a/a_a +1 -0
  57. data/sub/eac_templates/spec/lib/eac_templates/patches/module/template_spec_files/path1/a_module/b +1 -0
  58. data/sub/eac_templates/spec/lib/eac_templates/patches/module/template_spec_files/path1/super_class/a/a_b +1 -0
  59. data/sub/eac_templates/spec/lib/eac_templates/patches/module/template_spec_files/path1/super_class/b +1 -0
  60. data/sub/eac_templates/spec/lib/eac_templates/patches/module/template_spec_files/path2/a_module/a/a_b +1 -0
  61. data/sub/eac_templates/spec/lib/eac_templates/patches/module/template_spec_files/path2/a_module/b +1 -0
  62. data/sub/eac_templates/spec/lib/eac_templates/patches/module/template_spec_files/path2/a_module/c +1 -0
  63. data/sub/eac_templates/spec/lib/eac_templates/patches/module/template_spec_files/path2/sub_class/b +1 -0
  64. data/sub/eac_templates/spec/lib/eac_templates/patches/module/template_spec_files/path2/super_class/a/a_b +1 -0
  65. data/sub/eac_templates/spec/lib/eac_templates/patches/module/template_spec_files/path2/super_class/b +1 -0
  66. data/sub/eac_templates/spec/lib/eac_templates/patches/object/template_spec.rb +26 -0
  67. data/sub/eac_templates/spec/lib/eac_templates/patches/object/template_spec_files/path/my_stub_with_template +1 -0
  68. data/sub/eac_templates/spec/lib/eac_templates/sources/set_spec.rb +42 -0
  69. data/sub/eac_templates/spec/lib/eac_templates/sources/set_spec_files/path1/subdir1/file1.template +1 -0
  70. data/sub/eac_templates/spec/lib/eac_templates/sources/set_spec_files/path1/subdir1/file2 +1 -0
  71. data/sub/eac_templates/spec/lib/eac_templates/sources/set_spec_files/path2/subdir1/file3.template +1 -0
  72. data/sub/eac_templates/spec/lib/eac_templates/variables/file_spec.rb +35 -0
  73. data/sub/eac_templates/spec/lib/eac_templates/variables/file_spec_files/expected_content +2 -0
  74. data/sub/eac_templates/spec/lib/eac_templates/variables/file_spec_files/source.template +2 -0
  75. data/sub/eac_templates/spec/rubocop_spec.rb +3 -0
  76. data/sub/eac_templates/spec/spec_helper.rb +4 -0
  77. metadata +71 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cea9f60c673884523dc9facce73368d7f9de5308a57e31da5a50a343a58fbeaa
4
- data.tar.gz: 799fbec7b964b8453d66c77c75181d20f24149b38e2dc9bc6a8e007f62b8e474
3
+ metadata.gz: 45d93cbf1d3d3ff2f5b76c8fffeae344c0025b822fcfd9fac2a2f4aabffd92cf
4
+ data.tar.gz: c1a141d90c59c987c7f2f08a1aed69561782042a04ff42cf238b5c78baa996dc
5
5
  SHA512:
6
- metadata.gz: 46f50888ff1612d6636f6e68d3132c202b40f01334638ef2ea1aa921425c530ae677f365bedad0b09178094e2033c4844ec8489bc83eeaf92622dc69dbe5533b
7
- data.tar.gz: db1a4bc114d5870ed7ad1f3034d79d6c069e8c72b44e6915a71198675cd7ee9435fe3851d294130426b3c4c215854809930f6b288bd8e9ed6b059de23b7e05b5
6
+ metadata.gz: 201e612bf01ed05f4c1e2f7478591cb6aecfbdc526af61931cc05aebaf916e4ed00592ffb7d66e86d90e48074d264f96d18b91d17f4cc49aad5db6450a9ec3a6
7
+ data.tar.gz: 1372d4f44f77b4ea330e6233509faee81f6ac75e0316f6e18517fbafebe270c475826272edc28b62663667cb13ac0edb4ad5c220290a9f5650974e31224174ea
data/Gemfile.lock CHANGED
@@ -1,8 +1,8 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- eac_tools (0.60.2)
5
- avm (~> 0.67)
4
+ eac_tools (0.60.3)
5
+ avm (~> 0.67, >= 0.67.1)
6
6
  avm-eac_asciidoctor_base0 (~> 0.18, >= 0.18.1)
7
7
  avm-eac_generic_base0 (~> 0.12)
8
8
  avm-eac_latex_base0 (~> 0.3, >= 0.3.1)
@@ -13,7 +13,7 @@ PATH
13
13
  avm-eac_rails_base1 (~> 0.8, >= 0.8.3)
14
14
  avm-eac_redmine_base0 (~> 0.19, >= 0.19.2)
15
15
  avm-eac_redmine_plugin_base0 (~> 0.4)
16
- avm-eac_ruby_base1 (~> 0.30, >= 0.30.1)
16
+ avm-eac_ruby_base1 (~> 0.30, >= 0.30.2)
17
17
  avm-eac_webapp_base0 (~> 0.15)
18
18
  avm-eac_wordpress_base0 (~> 0.3, >= 0.3.1)
19
19
  avm-git (~> 0.13, >= 0.13.1)
@@ -117,17 +117,17 @@ PATH
117
117
  PATH
118
118
  remote: sub/avm-eac_ruby_base1
119
119
  specs:
120
- avm-eac_ruby_base1 (0.30.1)
121
- aranha-parsers (~> 0.17)
122
- avm (~> 0.66, >= 0.66.1)
120
+ avm-eac_ruby_base1 (0.30.2)
121
+ aranha-parsers (~> 0.17, >= 0.17.1)
122
+ avm (~> 0.67, >= 0.67.1)
123
123
  avm-eac_generic_base0 (~> 0.12)
124
124
  eac_ruby_utils (~> 0.112)
125
125
 
126
126
  PATH
127
127
  remote: sub/avm-eac_ubuntu_base0
128
128
  specs:
129
- avm-eac_ubuntu_base0 (0.4.1)
130
- avm (~> 0.64)
129
+ avm-eac_ubuntu_base0 (0.4.2)
130
+ avm (~> 0.67, >= 0.67.1)
131
131
  eac_ruby_utils (~> 0.112)
132
132
  eac_templates (~> 0.3, >= 0.3.2)
133
133
 
@@ -153,12 +153,12 @@ PATH
153
153
  PATH
154
154
  remote: sub/avm-files
155
155
  specs:
156
- avm-files (0.6.0)
157
- avm (~> 0.52)
158
- eac_cli (~> 0.28)
159
- eac_fs (~> 0.12, >= 0.12.3)
160
- eac_ruby_utils (~> 0.106)
161
- eac_templates (~> 0.3, >= 0.3.2)
156
+ avm-files (0.6.1)
157
+ avm (~> 0.67, >= 0.67.1)
158
+ eac_cli (~> 0.30, >= 0.30.1)
159
+ eac_fs (~> 0.16)
160
+ eac_ruby_utils (~> 0.112)
161
+ eac_templates (~> 0.4)
162
162
 
163
163
  PATH
164
164
  remote: sub/avm-git
@@ -191,7 +191,7 @@ PATH
191
191
  PATH
192
192
  remote: sub/avm
193
193
  specs:
194
- avm (0.67.0)
194
+ avm (0.67.1)
195
195
  aranha-parsers (~> 0.17, >= 0.17.1)
196
196
  eac_cli (~> 0.30, >= 0.30.1)
197
197
  eac_config (~> 0.12)
@@ -199,7 +199,7 @@ PATH
199
199
  eac_fs (~> 0.16)
200
200
  eac_git (~> 0.14, >= 0.14.1)
201
201
  eac_ruby_utils (~> 0.112)
202
- eac_templates (~> 0.3, >= 0.3.2)
202
+ eac_templates (~> 0.4)
203
203
  filesize (~> 0.2)
204
204
  htmlbeautifier (~> 1.4, >= 1.4.2)
205
205
  minitar (~> 0.9)
@@ -260,6 +260,13 @@ PATH
260
260
  filesize (~> 0.2)
261
261
  net-ssh (~> 4.2)
262
262
 
263
+ PATH
264
+ remote: sub/eac_templates
265
+ specs:
266
+ eac_templates (0.4.0)
267
+ eac_config (~> 0.12)
268
+ eac_ruby_utils (~> 0.112)
269
+
263
270
  GEM
264
271
  remote: https://rubygems.org/
265
272
  specs:
@@ -298,9 +305,6 @@ GEM
298
305
  rubocop (~> 0.80.1)
299
306
  rubocop-rails (~> 2.4.2)
300
307
  rubocop-rspec (~> 1.38.1)
301
- eac_templates (0.3.2)
302
- eac_config (~> 0.11, >= 0.11.1)
303
- eac_ruby_utils (~> 0.102, >= 0.102.1)
304
308
  faraday (2.7.4)
305
309
  faraday-net_http (>= 2.0, < 3.1)
306
310
  ruby2_keywords (>= 0.0.4)
@@ -320,7 +324,7 @@ GEM
320
324
  rchardet (~> 1.8)
321
325
  hpricot (0.8.6)
322
326
  htmlbeautifier (1.4.2)
323
- i18n (1.12.0)
327
+ i18n (1.13.0)
324
328
  concurrent-ruby (~> 1.0)
325
329
  jaro_winkler (1.5.4)
326
330
  minitar (0.9)
@@ -334,7 +338,7 @@ GEM
334
338
  os (1.1.4)
335
339
  parallel (1.23.0)
336
340
  parseconfig (1.1.2)
337
- parser (3.2.2.0)
341
+ parser (3.2.2.1)
338
342
  ast (~> 2.4.1)
339
343
  parslet (2.0.0)
340
344
  public_suffix (5.0.1)
@@ -348,9 +352,9 @@ GEM
348
352
  rspec-core (~> 3.12.0)
349
353
  rspec-expectations (~> 3.12.0)
350
354
  rspec-mocks (~> 3.12.0)
351
- rspec-core (3.12.1)
355
+ rspec-core (3.12.2)
352
356
  rspec-support (~> 3.12.0)
353
- rspec-expectations (3.12.2)
357
+ rspec-expectations (3.12.3)
354
358
  diff-lcs (>= 1.2.0, < 2.0)
355
359
  rspec-support (~> 3.12.0)
356
360
  rspec-mocks (3.12.5)
@@ -376,7 +380,7 @@ GEM
376
380
  tzinfo (2.0.6)
377
381
  concurrent-ruby (~> 1.0)
378
382
  unicode-display_width (1.6.1)
379
- zeitwerk (2.6.7)
383
+ zeitwerk (2.6.8)
380
384
  zlib (2.1.1)
381
385
 
382
386
  PLATFORMS
@@ -410,6 +414,7 @@ DEPENDENCIES
410
414
  eac_ruby_base0!
411
415
  eac_ruby_gem_support (~> 0.5.1)
412
416
  eac_ruby_utils!
417
+ eac_templates!
413
418
  eac_tools!
414
419
 
415
420
  BUNDLED WITH
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module EacTools
4
- VERSION = '0.60.2'
4
+ VERSION = '0.60.3'
5
5
  end
data/sub/avm/avm.gemspec CHANGED
@@ -19,7 +19,7 @@ Gem::Specification.new do |s|
19
19
  s.add_dependency 'eac_fs', '~> 0.16'
20
20
  s.add_dependency 'eac_git', '~> 0.14', '>= 0.14.1'
21
21
  s.add_dependency 'eac_ruby_utils', '~> 0.112'
22
- s.add_dependency 'eac_templates', '~> 0.3', '>= 0.3.2'
22
+ s.add_dependency 'eac_templates', '~> 0.4'
23
23
  s.add_dependency 'filesize', '~> 0.2'
24
24
  s.add_dependency 'htmlbeautifier', '~> 1.4', '>= 1.4.2'
25
25
  s.add_dependency 'minitar', '~> 0.9'
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Avm
4
- VERSION = '0.67.0'
4
+ VERSION = '0.67.1'
5
5
  end
@@ -12,8 +12,8 @@ Gem::Specification.new do |s|
12
12
 
13
13
  s.files = Dir['{lib,locale,template}/**/*']
14
14
 
15
- s.add_dependency 'aranha-parsers', '~> 0.17'
16
- s.add_dependency 'avm', '~> 0.66', '>= 0.66.1'
15
+ s.add_dependency 'aranha-parsers', '~> 0.17', '>= 0.17.1'
16
+ s.add_dependency 'avm', '~> 0.67', '>= 0.67.1'
17
17
  s.add_dependency 'avm-eac_generic_base0', '~> 0.12'
18
18
  s.add_dependency 'eac_ruby_utils', '~> 0.112'
19
19
 
@@ -65,11 +65,11 @@ module Avm
65
65
  protected
66
66
 
67
67
  def apply_to_root_directory(template, subpath)
68
- if template.is_a?(::EacTemplates::Directory)
68
+ if template.is_a?(::EacTemplates::Variables::Directory)
69
69
  template.children.each do |child|
70
70
  apply_to_root_directory(child, subpath.join(child.basename))
71
71
  end
72
- elsif template.is_a?(::EacTemplates::File)
72
+ elsif template.is_a?(::EacTemplates::Variables::File)
73
73
  template.apply_to_file(template_variables, root_directory.join(subpath))
74
74
  else
75
75
  raise "Unknown template object: #{template}"
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Avm
4
4
  module EacRubyBase1
5
- VERSION = '0.30.1'
5
+ VERSION = '0.30.2'
6
6
  end
7
7
  end
@@ -3,3 +3,6 @@
3
3
  source 'https://rubygems.org'
4
4
 
5
5
  gemspec
6
+
7
+ local_gemfile = ::File.join(::File.dirname(__FILE__), 'Gemfile.local')
8
+ eval_gemfile local_gemfile if ::File.exist?(local_gemfile)
@@ -12,7 +12,7 @@ Gem::Specification.new do |s|
12
12
 
13
13
  s.files = Dir['{lib,template}/**/*']
14
14
 
15
- s.add_dependency 'avm', '~> 0.64'
15
+ s.add_dependency 'avm', '~> 0.67', '>= 0.67.1'
16
16
  s.add_dependency 'eac_ruby_utils', '~> 0.112'
17
17
  s.add_dependency 'eac_templates', '~> 0.3', '>= 0.3.2'
18
18
 
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'avm/docker/image'
4
- require 'eac_templates/from_all_gems'
4
+ require 'eac_templates/sources/from_all_gems'
5
5
  require 'eac_ruby_utils/core_ext'
6
6
 
7
7
  module Avm
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Avm
4
4
  module EacUbuntuBase0
5
- VERSION = '0.4.1'
5
+ VERSION = '0.4.2'
6
6
  end
7
7
  end
@@ -12,11 +12,11 @@ Gem::Specification.new do |s|
12
12
 
13
13
  s.files = Dir['{lib}/**/*']
14
14
 
15
- s.add_dependency 'avm', '~> 0.52'
16
- s.add_dependency 'eac_cli', '~> 0.28'
17
- s.add_dependency 'eac_fs', '~> 0.12', '>= 0.12.3'
18
- s.add_dependency 'eac_ruby_utils', '~> 0.106'
19
- s.add_dependency 'eac_templates', '~> 0.3', '>= 0.3.2'
15
+ s.add_dependency 'avm', '~> 0.67', '>= 0.67.1'
16
+ s.add_dependency 'eac_cli', '~> 0.30', '>= 0.30.1'
17
+ s.add_dependency 'eac_fs', '~> 0.16'
18
+ s.add_dependency 'eac_ruby_utils', '~> 0.112'
19
+ s.add_dependency 'eac_templates', '~> 0.4'
20
20
 
21
21
  s.add_development_dependency 'eac_ruby_gem_support', '~> 0.5.1'
22
22
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  require 'eac_ruby_utils/core_ext'
4
4
  require 'avm/files/appendable/resource_base'
5
- require 'eac_templates/directory'
5
+ require 'eac_templates/variables/directory'
6
6
 
7
7
  module Avm
8
8
  module Files
@@ -18,7 +18,7 @@ module Avm
18
18
  def write_on(target_dir)
19
19
  raise 'Variables source not set' if appender.variables_source.blank?
20
20
 
21
- ::EacTemplates::Directory.new(source_path).apply(
21
+ ::EacTemplates::Variables::Directory.new(source_path).apply(
22
22
  appender.variables_source,
23
23
  target_dir
24
24
  )
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Avm
4
4
  module Files
5
- VERSION = '0.6.0'
5
+ VERSION = '0.6.1'
6
6
  end
7
7
  end
@@ -0,0 +1,8 @@
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)
@@ -0,0 +1,19 @@
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
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_templates/patches'
4
+ require 'eac_templates/sources/from_all_gems'
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module EacTemplates
4
+ module InterfaceMethods
5
+ COMMON = %w[apply path].freeze
6
+ ONLY_DIRECTORY = %w[child children].freeze
7
+ DIRECTORY = COMMON + ONLY_DIRECTORY
8
+ ONLY_FILE = %w[apply_to_file content variables].freeze
9
+ FILE = COMMON + ONLY_FILE
10
+ ALL = COMMON + ONLY_DIRECTORY + ONLY_FILE
11
+ end
12
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+ require 'eac_templates/interface_methods'
5
+ require 'eac_templates/modules/ancestor/fs_object'
6
+
7
+ module EacTemplates
8
+ module Modules
9
+ class Ancestor
10
+ class Directory < ::EacTemplates::Modules::Ancestor::FsObject
11
+ delegate(*::EacTemplates::InterfaceMethods::ONLY_DIRECTORY, to: :source_object)
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+ require 'eac_templates/interface_methods'
5
+ require 'eac_templates/modules/ancestor/fs_object'
6
+
7
+ module EacTemplates
8
+ module Modules
9
+ class Ancestor
10
+ class File < ::EacTemplates::Modules::Ancestor::FsObject
11
+ delegate(*::EacTemplates::InterfaceMethods::ONLY_FILE, to: :source_object)
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+ require 'eac_templates/interface_methods'
5
+
6
+ module EacTemplates
7
+ module Modules
8
+ class Ancestor
9
+ class FsObject
10
+ enable_simple_cache
11
+ common_constructor :base
12
+ delegate(*::EacTemplates::InterfaceMethods::COMMON, :found?, to: :source_object)
13
+
14
+ # @return [Symbol]
15
+ def object_type
16
+ self.class.name.demodulize.underscore.to_sym
17
+ end
18
+
19
+ # @return [Pathname, nil]
20
+ def path
21
+ source_object.found? ? source_object.send(:real_paths).first : nil
22
+ end
23
+
24
+ private
25
+
26
+ def source_object_uncached
27
+ base.source_set.send(object_type, base.path_for_search)
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+ require 'eac_templates/interface_methods'
5
+
6
+ module EacTemplates
7
+ module Modules
8
+ class Ancestor
9
+ class << self
10
+ # @param a_module [Module]
11
+ # @return [Pathname]
12
+ def path_for_search(a_module)
13
+ a_module.name.underscore.to_pathname
14
+ end
15
+ end
16
+
17
+ common_constructor :base, :ancestor
18
+ delegate :subpath, :source_set, to: :base
19
+ delegate(*::EacTemplates::InterfaceMethods::ALL, to: :source_object)
20
+
21
+ # @return [EacTemplates::Modules::Directory]
22
+ def directory
23
+ ::EacTemplates::Modules::Ancestor::Directory.new(self)
24
+ end
25
+
26
+ # @return [EacTemplates::Modules::File]
27
+ def file
28
+ @file ||= ::EacTemplates::Modules::Ancestor::File.new(self)
29
+ end
30
+
31
+ # @return [Pathname]
32
+ def path_for_search
33
+ r = self.class.path_for_search(ancestor)
34
+ subpath.if_present(r) { |v| r.join(v) }
35
+ end
36
+
37
+ # @return [EacTemplates::Modules::Ancestor::FsObject]
38
+ def source_object
39
+ return file if file.found?
40
+ return directory if directory.found?
41
+
42
+ raise "No template found: #{path_for_search}"
43
+ end
44
+
45
+ require_sub __FILE__
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+ require 'eac_templates/interface_methods'
5
+ require 'eac_templates/modules/ancestor'
6
+ require 'eac_templates/sources/set'
7
+
8
+ module EacTemplates
9
+ module Modules
10
+ class Base
11
+ enable_listable
12
+ lists.add_symbol :option, :source_set, :subpath
13
+ common_constructor :the_module, :options, default: [{}] do
14
+ self.options = self.class.lists.option.hash_keys_validate!(options)
15
+ end
16
+ delegate(*::EacTemplates::InterfaceMethods::ALL, :path_for_search, :source_object,
17
+ to: :self_ancestor)
18
+
19
+ # @return [EacTemplates::Modules::Ancestor]
20
+ def self_ancestor
21
+ @self_ancestor ||= ::EacTemplates::Modules::Ancestor.new(self, the_module)
22
+ end
23
+
24
+ # @return [EacTemplates::SourceSet]
25
+ def source_set
26
+ options[OPTION_SOURCE_SET] || ::EacTemplates::Sources::Set.default
27
+ end
28
+
29
+ # @return [Pathname, nil]
30
+ def subpath
31
+ options[OPTION_SUBPATH].if_present(&:to_pathname)
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+
5
+ module EacTemplates
6
+ module Modules
7
+ require_sub __FILE__
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'erb'
4
+
5
+ class Module
6
+ def erb_template(subpath, binding_obj)
7
+ ::ERB.new(template.child(subpath).path.read).result(binding_obj)
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_templates/modules/base'
4
+
5
+ class Module
6
+ def template
7
+ @template ||= ::EacTemplates::Modules::Base.new(self)
8
+ end
9
+ end
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/require_sub'
4
+ ::EacRubyUtils.require_sub __FILE__
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_templates/patches/module/erb_template'
4
+
5
+ class Object
6
+ def erb_template(subpath, binding_obj = nil)
7
+ self.class.erb_template(subpath, binding_obj || binding)
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_templates/patches/module/template'
4
+
5
+ class Object
6
+ def template
7
+ self.class.template
8
+ end
9
+ end
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/require_sub'
4
+ ::EacRubyUtils.require_sub __FILE__
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/require_sub'
4
+ ::EacRubyUtils.require_sub __FILE__
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+ require 'eac_templates/sources/fs_object'
5
+ require 'eac_templates/variables/directory'
6
+
7
+ module EacTemplates
8
+ module Sources
9
+ class Directory < ::EacTemplates::Sources::FsObject
10
+ delegate :apply, :child, :children, :path, to: :applier
11
+
12
+ # @return [Class]
13
+ def applier_class
14
+ ::EacTemplates::Variables::Directory
15
+ end
16
+
17
+ # @param path [Pathname]
18
+ # @return [Boolean]
19
+ def select_path?(path)
20
+ super && path.directory?
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+ require 'eac_templates/sources/fs_object'
5
+ require 'eac_templates/variables/file'
6
+
7
+ module EacTemplates
8
+ module Sources
9
+ class File < ::EacTemplates::Sources::FsObject
10
+ delegate :apply, :apply_to_file, :content, :path, :variables, to: :applier
11
+
12
+ # @return [Class]
13
+ def applier_class
14
+ ::EacTemplates::Variables::File
15
+ end
16
+
17
+ # @param path [Pathname]
18
+ # @return [Boolean]
19
+ def select_path?(path)
20
+ super && path.file?
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_templates/sources/from_gem'
4
+ ::EacTemplates::Sources::FromGem.include_all