alki 0.8.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. checksums.yaml +4 -4
  2. data/README.adoc +108 -6
  3. data/alki.gemspec +2 -2
  4. data/bin/alki +17 -0
  5. data/config/dsls.rb +2 -2
  6. data/doc/assembly_dsl.adoc +6 -6
  7. data/exe/alki +275 -0
  8. data/lib/alki/assembly/builder.rb +113 -0
  9. data/lib/alki/assembly/executor.rb +127 -0
  10. data/lib/alki/assembly/handler_base.rb +21 -0
  11. data/lib/alki/assembly/instance.rb +21 -0
  12. data/lib/alki/assembly/types/assembly.rb +92 -0
  13. data/lib/alki/assembly/types/factory.rb +29 -0
  14. data/lib/alki/assembly/types/func.rb +12 -0
  15. data/lib/alki/assembly/types/group.rb +39 -0
  16. data/lib/alki/assembly/types/override.rb +40 -0
  17. data/lib/alki/assembly/types/proc_value.rb +18 -0
  18. data/lib/alki/assembly/types/service.rb +27 -0
  19. data/lib/alki/assembly/types/value.rb +9 -0
  20. data/lib/alki/assembly.rb +21 -40
  21. data/lib/alki/dsls/assembly.rb +10 -12
  22. data/lib/alki/dsls/assembly_group.rb +92 -0
  23. data/lib/alki/dsls/assembly_type.rb +5 -15
  24. data/lib/alki/execution/cache_entry.rb +16 -0
  25. data/lib/alki/execution/context.rb +29 -0
  26. data/lib/alki/execution/context_class_builder.rb +36 -0
  27. data/lib/alki/execution/value_context.rb +14 -0
  28. data/lib/alki/overlay_delegator.rb +8 -20
  29. data/lib/alki/overlay_info.rb +3 -0
  30. data/lib/alki/override_builder.rb +6 -4
  31. data/lib/alki/service_delegator.rb +3 -3
  32. data/lib/alki/version.rb +1 -1
  33. data/lib/alki.rb +4 -4
  34. data/test/feature/alki_test.rb +1 -2
  35. data/test/feature/example_test.rb +2 -3
  36. data/test/feature/factories_test.rb +48 -0
  37. data/test/feature/overlays_test.rb +225 -0
  38. data/test/feature/overrides_test.rb +1 -2
  39. data/test/feature/pseudo_elements_test.rb +67 -0
  40. data/test/feature_test_helper.rb +1 -0
  41. data/test/fixtures/example/config/assembly.rb +11 -2
  42. data/test/fixtures/example/config/handlers.rb +2 -7
  43. data/test/fixtures/example/lib/log_overlay.rb +3 -3
  44. data/test/integration/dsls/assembly_test.rb +3 -8
  45. data/test/integration/dsls/assembly_type_test.rb +2 -2
  46. data/test/integration/dsls/service_dsl_test.rb +2 -2
  47. metadata +36 -18
  48. data/lib/alki/assembly_builder.rb +0 -109
  49. data/lib/alki/assembly_executor.rb +0 -129
  50. data/lib/alki/assembly_handler_base.rb +0 -19
  51. data/lib/alki/dsls/assembly_type_dsl.rb +0 -21
  52. data/lib/alki/dsls/assembly_types/assembly.rb +0 -101
  53. data/lib/alki/dsls/assembly_types/group.rb +0 -41
  54. data/lib/alki/dsls/assembly_types/load.rb +0 -31
  55. data/lib/alki/dsls/assembly_types/overlay.rb +0 -9
  56. data/lib/alki/dsls/assembly_types/value.rb +0 -100
  57. data/test/test_helper.rb +0 -1
@@ -1,100 +0,0 @@
1
- Alki do
2
- dsl_method :set do |name,value=nil,&blk|
3
- if blk
4
- add_proc_value name, blk
5
- else
6
- add_value name, value
7
- end
8
- end
9
-
10
- dsl_method :service do |name,&blk|
11
- add_service name, blk
12
- end
13
-
14
- dsl_method :factory do |name,&blk|
15
- add_factory name, blk
16
- end
17
-
18
- dsl_method :func do |name,&blk|
19
- add_func name, blk
20
- end
21
-
22
- element_type :value do
23
- attr :value
24
-
25
- output do
26
- {
27
- type: :value,
28
- block: ->(_) {
29
- val = value
30
- ->{ val }
31
- },
32
- scope: {}
33
- }
34
- end
35
- end
36
-
37
- element_type :proc_value do
38
- attr :proc
39
-
40
- output do
41
- {
42
- type: :value,
43
- block: ->(e) {
44
- val = e.call proc
45
- ->{ val }
46
- },
47
- scope: data[:scope]
48
- }
49
- end
50
- end
51
-
52
- element_type :service do
53
- attr :block
54
- output do
55
- last_clear = data[:overlays].rindex(:clear)
56
- overlays = last_clear ? data[:overlays][(last_clear + 1)..-1] : data[:overlays]
57
- {
58
- type: :value,
59
- block: -> (evaluator) {
60
- svc = evaluator.call block
61
- -> { svc }
62
- },
63
- scope: data[:scope],
64
- overlays: overlays
65
- }
66
- end
67
- end
68
-
69
- element_type :factory do
70
- attr :block
71
- output do
72
- {
73
- type: :value,
74
- block: -> (evaluator) {
75
- factory = evaluator.call block
76
- -> (*args,&blk) {
77
- factory.call *args, &blk
78
- }
79
- },
80
- scope: data[:scope]
81
- }
82
- end
83
- end
84
-
85
- element_type :func do
86
- attr :block
87
- output do
88
- {
89
- type: :value,
90
- block: ->(evaluator) {
91
- value_blk = block
92
- -> (*args,&blk) {
93
- evaluator.call(value_blk,*args,&blk)
94
- }
95
- },
96
- scope: data[:scope]
97
- }
98
- end
99
- end
100
- end
data/test/test_helper.rb DELETED
@@ -1 +0,0 @@
1
- require_relative('../lib/alki/test')