alki 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/alki/overlay_delegator.rb +1 -1
- data/lib/alki/version.rb +1 -1
- data/test/fixtures/example/config/handlers.rb +6 -5
- data/test/fixtures/example/lib/log_overlay.rb +10 -0
- metadata +4 -6
- data/test/unit/application_settings_test.rb +0 -56
- data/test/unit/application_test.rb +0 -159
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bab3b631c216a5a4ca029904251c38faec707269
|
4
|
+
data.tar.gz: 3e495653eb662df01c8e5b3e0e65a0a07bc88d34
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 50dec6b5e5a8dfa767d1b21e05041a95033f8a2e5e76282d6f4a1306b9d7169364d83a252d9e83a96012047ac1ff31d9d02ca6e21a4a2b27077bf42340d5d7e2
|
7
|
+
data.tar.gz: e8b4b00970c0baea4f6486dbcc2d9e34f810dc38ec48288ac856851433b5727670e3174e47bdabf60770de2fae96d95b9acc1f0ac521f67e45812fc41fa0f8d1
|
data/lib/alki/version.rb
CHANGED
@@ -5,25 +5,26 @@ Alki do
|
|
5
5
|
NumHandler.new num, str, output
|
6
6
|
}
|
7
7
|
end
|
8
|
+
|
8
9
|
service :fizz do
|
9
10
|
num_handler 3, settings.fizz
|
10
11
|
end
|
12
|
+
|
11
13
|
service :buzz do
|
12
14
|
num_handler 5, settings.buzz
|
13
15
|
end
|
16
|
+
|
14
17
|
service :fizzbuzz do
|
15
18
|
num_handler 15, settings.fizzbuzz
|
16
19
|
end
|
20
|
+
|
17
21
|
service :echo do
|
18
22
|
require 'echo_handler'
|
19
23
|
EchoHandler.new output
|
20
24
|
end
|
21
25
|
|
22
26
|
overlay do
|
23
|
-
|
24
|
-
|
25
|
-
log_obj << "Calling #{name}##{method} #{args.join(", ")}\n"
|
26
|
-
obj.public_send method, *args, &blk
|
27
|
-
}
|
27
|
+
require 'log_overlay'
|
28
|
+
LogOverlay.new log
|
28
29
|
end
|
29
30
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: alki
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt Edlefsen
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-10-
|
11
|
+
date: 2016-10-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -76,14 +76,13 @@ files:
|
|
76
76
|
- test/fixtures/example/lib/array_output.rb
|
77
77
|
- test/fixtures/example/lib/echo_handler.rb
|
78
78
|
- test/fixtures/example/lib/example.rb
|
79
|
+
- test/fixtures/example/lib/log_overlay.rb
|
79
80
|
- test/fixtures/example/lib/num_handler.rb
|
80
81
|
- test/fixtures/example/lib/range_handler.rb
|
81
82
|
- test/fixtures/example/lib/switch_handler.rb
|
82
83
|
- test/integration/class_builder_test.rb
|
83
84
|
- test/integration/loader_test.rb
|
84
85
|
- test/test_helper.rb
|
85
|
-
- test/unit/application_settings_test.rb
|
86
|
-
- test/unit/application_test.rb
|
87
86
|
- test/unit/package_processor_test.rb
|
88
87
|
homepage: https://gitlab.xforty.com/matt/base-alki
|
89
88
|
licenses:
|
@@ -118,12 +117,11 @@ test_files:
|
|
118
117
|
- test/fixtures/example/lib/array_output.rb
|
119
118
|
- test/fixtures/example/lib/echo_handler.rb
|
120
119
|
- test/fixtures/example/lib/example.rb
|
120
|
+
- test/fixtures/example/lib/log_overlay.rb
|
121
121
|
- test/fixtures/example/lib/num_handler.rb
|
122
122
|
- test/fixtures/example/lib/range_handler.rb
|
123
123
|
- test/fixtures/example/lib/switch_handler.rb
|
124
124
|
- test/integration/class_builder_test.rb
|
125
125
|
- test/integration/loader_test.rb
|
126
126
|
- test/test_helper.rb
|
127
|
-
- test/unit/application_settings_test.rb
|
128
|
-
- test/unit/application_test.rb
|
129
127
|
- test/unit/package_processor_test.rb
|
@@ -1,56 +0,0 @@
|
|
1
|
-
require_relative '../test_helper'
|
2
|
-
|
3
|
-
require 'alki/application_settings'
|
4
|
-
|
5
|
-
describe Alki::ApplicationSettings do
|
6
|
-
before do
|
7
|
-
@settings = Alki::ApplicationSettings.new
|
8
|
-
end
|
9
|
-
|
10
|
-
describe :initialize do
|
11
|
-
it 'should set environment to development by default' do
|
12
|
-
@settings.environment.must_equal :development
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
describe :set do
|
17
|
-
it 'should add setting as method and make it available as an index' do
|
18
|
-
@settings.respond_to?(:test).must_equal false
|
19
|
-
@settings.set :test, :test_value
|
20
|
-
@settings.test.must_equal :test_value
|
21
|
-
end
|
22
|
-
|
23
|
-
it 'should make setting available as an index' do
|
24
|
-
@settings[:test].must_equal nil
|
25
|
-
@settings.set :test, :test_value
|
26
|
-
@settings[:test].must_equal :test_value
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
describe :environment? do
|
31
|
-
it 'should return whether environment is one of the arguments' do
|
32
|
-
@settings.environment?(:development).must_equal true
|
33
|
-
@settings.environment?(:production,:development).must_equal true
|
34
|
-
@settings.environment?(:production,:test).must_equal false
|
35
|
-
end
|
36
|
-
|
37
|
-
it 'should run provided block if true' do
|
38
|
-
test = false
|
39
|
-
@settings.environment?(:test) { test = true }
|
40
|
-
test.must_equal false
|
41
|
-
@settings.environment?(:development) { test = true }
|
42
|
-
test.must_equal true
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
describe :configure do
|
47
|
-
it 'should run provided block in object context' do
|
48
|
-
@settings.respond_to?(:test).must_equal false
|
49
|
-
@settings.configure do
|
50
|
-
set :test, :test_value
|
51
|
-
test.must_equal :test_value
|
52
|
-
end
|
53
|
-
@settings.test.must_equal :test_value
|
54
|
-
end
|
55
|
-
end
|
56
|
-
end
|
@@ -1,159 +0,0 @@
|
|
1
|
-
require_relative '../test_helper'
|
2
|
-
|
3
|
-
require 'alki/application'
|
4
|
-
|
5
|
-
describe Alki::Application do
|
6
|
-
before do
|
7
|
-
@settings = {test: 1}
|
8
|
-
@app = Alki::Application.new @settings
|
9
|
-
end
|
10
|
-
|
11
|
-
describe :settings do
|
12
|
-
it 'should return settings passed into new' do
|
13
|
-
@app.settings.must_be_same_as @settings
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
describe :configure do
|
18
|
-
it 'should allow calling methods as a DSL' do
|
19
|
-
@app.configure do
|
20
|
-
service :test_m do
|
21
|
-
:test
|
22
|
-
end
|
23
|
-
end
|
24
|
-
@app.test_m.must_equal :test
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
describe :root do
|
29
|
-
it 'should allow extracting the root group from the application' do
|
30
|
-
@app.service(:test_m) { :test }
|
31
|
-
@app.root.test_m.must_equal :test
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
describe :service do
|
36
|
-
it 'should create method that gets result of block' do
|
37
|
-
@app.service(:test_m) { :test }
|
38
|
-
@app.respond_to?(:test_m).must_equal true
|
39
|
-
@app.test_m.must_equal :test
|
40
|
-
end
|
41
|
-
|
42
|
-
it 'generated method should run on demand' do
|
43
|
-
count = 0
|
44
|
-
@app.service(:test_m){ count += 1; :test }
|
45
|
-
count.must_equal 0
|
46
|
-
@app.test_m
|
47
|
-
count.must_equal 1
|
48
|
-
end
|
49
|
-
|
50
|
-
it 'generated method should run only once' do
|
51
|
-
count = 0
|
52
|
-
@app.service(:test_m){ count += 1; :test }
|
53
|
-
@app.test_m
|
54
|
-
@app.test_m
|
55
|
-
count.must_equal 1
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
describe :group do
|
60
|
-
it 'should create group with block' do
|
61
|
-
@app.configure do
|
62
|
-
group :g1 do
|
63
|
-
end
|
64
|
-
end
|
65
|
-
@app.g1.wont_be_nil
|
66
|
-
end
|
67
|
-
|
68
|
-
it 'should add services to group' do
|
69
|
-
@app.configure do
|
70
|
-
group :g1 do
|
71
|
-
service(:testm1) { :test1 }
|
72
|
-
end
|
73
|
-
group :g1 do
|
74
|
-
service(:testm2) { :test2 }
|
75
|
-
end
|
76
|
-
end
|
77
|
-
@app.g1.testm1.must_equal :test1
|
78
|
-
@app.g1.testm2.must_equal :test2
|
79
|
-
end
|
80
|
-
|
81
|
-
it 'should allow creation of subgroups' do
|
82
|
-
@app.configure do
|
83
|
-
group :g1 do
|
84
|
-
group :g2 do
|
85
|
-
service(:test_m) { :test }
|
86
|
-
end
|
87
|
-
end
|
88
|
-
end
|
89
|
-
@app.g1.g2.test_m.must_equal :test
|
90
|
-
end
|
91
|
-
|
92
|
-
it 'should allow calling services of parent groups' do
|
93
|
-
@app.configure do
|
94
|
-
service(:test1) { :test1 }
|
95
|
-
group :g1 do
|
96
|
-
service(:test2) { :test2 }
|
97
|
-
group :g2 do
|
98
|
-
service(:test3) { [test1,test2] }
|
99
|
-
end
|
100
|
-
end
|
101
|
-
end
|
102
|
-
@app.g1.g2.test3.must_equal [:test1,:test2]
|
103
|
-
end
|
104
|
-
|
105
|
-
it 'should allow aliasing groups' do
|
106
|
-
@app.configure do
|
107
|
-
group :g1 do
|
108
|
-
service(:test_m) { :test }
|
109
|
-
end
|
110
|
-
end
|
111
|
-
@app.group(:g2,@app.g1)
|
112
|
-
@app[:g2].test_m.must_equal :test
|
113
|
-
end
|
114
|
-
|
115
|
-
it 'should allow moving groups to other applications' do
|
116
|
-
app2 = Alki::Application.new
|
117
|
-
app2.service(:test_m) { :test }
|
118
|
-
@app.group(:other,app2.root)
|
119
|
-
@app.other.test_m.must_equal :test
|
120
|
-
end
|
121
|
-
|
122
|
-
it 'should raise ArgumentError if non-group is provided' do
|
123
|
-
assert_raises ArgumentError do
|
124
|
-
@app.group(:test, {})
|
125
|
-
end
|
126
|
-
end
|
127
|
-
end
|
128
|
-
|
129
|
-
describe :lookup do
|
130
|
-
it 'should allow lookups of services by string' do
|
131
|
-
@app.service(:test_m) { :test }
|
132
|
-
@app.lookup('test_m').must_equal :test
|
133
|
-
end
|
134
|
-
|
135
|
-
it 'should allow looking up services in groups using dot separators' do
|
136
|
-
@app.configure do
|
137
|
-
group :g1 do
|
138
|
-
service(:test_m) { :test1 }
|
139
|
-
group :g2 do
|
140
|
-
service(:test_m) { :test2 }
|
141
|
-
end
|
142
|
-
end
|
143
|
-
end
|
144
|
-
@app.lookup('g1.test_m').must_equal :test1
|
145
|
-
@app.lookup('g1.g2.test_m').must_equal :test2
|
146
|
-
end
|
147
|
-
end
|
148
|
-
|
149
|
-
describe :delegate do
|
150
|
-
it 'should allow service reference cycles' do
|
151
|
-
@app.configure do
|
152
|
-
service(:all) { {print_all: delegate(:print_all)} }
|
153
|
-
service(:print_all) { list = all.keys; ->{ p list } }
|
154
|
-
end
|
155
|
-
|
156
|
-
@app.print_all.call.must_equal [:print_all]
|
157
|
-
end
|
158
|
-
end
|
159
|
-
end
|