alki 0.8.0 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
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')