little_boxes 0.4.0 → 0.5.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.
- checksums.yaml +4 -4
- data/.travis.yml +7 -0
- data/README.md +4 -0
- data/lib/little_boxes.rb +2 -0
- data/lib/little_boxes/box.rb +2 -0
- data/lib/little_boxes/configurable.rb +2 -64
- data/lib/little_boxes/dependant.rb +71 -0
- data/lib/little_boxes/initializable.rb +11 -0
- data/lib/little_boxes/strategy.rb +8 -56
- data/lib/little_boxes/version.rb +1 -1
- data/spec/little_boxes/box_spec.rb +10 -0
- data/spec/little_boxes/configurable_spec.rb +28 -0
- data/spec/little_boxes/dependant_spec.rb +130 -0
- data/spec/little_boxes/initializable_spec.rb +21 -0
- data/spec/little_boxes/use_cases_spec.rb +65 -0
- data/spec/spec_helper.rb +2 -0
- data/spec/support/class_support.rb +11 -0
- data/spec/support/redis.rb +5 -0
- metadata +19 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1760a38a874d4cac46e07b4fe51c57f74ac4f0a2
|
4
|
+
data.tar.gz: bb94c00e8e67f6895eb2202a2b828647691a6c46
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6d0e22e9cb55af101a0f235e2ff6a93f8cbcae15d9595e38c9f1d0c9f605de43baa808a3a6da324e396ff8592fcb71b2c8a4b9d8cb870b6bcab07cd3289acb43
|
7
|
+
data.tar.gz: a54f0f7790d45b98ee9621ddc35c8d137a68a76858a8a54c9f0d67ffc555e057af210d3e5aac2d426a40741811903f2f4fe449cd8a3532a2c5ae362401c0ba40
|
data/.travis.yml
ADDED
data/README.md
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
# LittleBoxes
|
2
2
|
|
3
|
+
[](http://badge.fury.io/rb/little_boxes)
|
4
|
+
[](https://travis-ci.org/manuelmorales/little-boxes)
|
5
|
+
[](https://codeclimate.com/github/manuelmorales/little-boxes)
|
6
|
+
|
3
7
|
Dependency injection library in Ruby.
|
4
8
|
|
5
9
|
## Intro
|
data/lib/little_boxes.rb
CHANGED
data/lib/little_boxes/box.rb
CHANGED
@@ -1,70 +1,8 @@
|
|
1
1
|
module LittleBoxes
|
2
2
|
module Configurable
|
3
|
-
attr_accessor :config
|
4
|
-
|
5
|
-
def initialize(options = {})
|
6
|
-
@config = {}
|
7
|
-
|
8
|
-
options.keys.each do |k|
|
9
|
-
config[k] = options[k]
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
def configure(&block)
|
14
|
-
yield @config
|
15
|
-
self
|
16
|
-
end
|
17
|
-
|
18
|
-
private
|
19
|
-
|
20
3
|
def self.included(klass)
|
21
|
-
klass.
|
22
|
-
|
23
|
-
klass.class_eval do
|
24
|
-
class << self
|
25
|
-
attr_accessor :config
|
26
|
-
instance_variable_set :@config, {}
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
module ClassMethods
|
32
|
-
def dependency name, &default_block
|
33
|
-
default_block ||= Proc.new do
|
34
|
-
fail(DependencyNotFound, "Dependency #{name} not found")
|
35
|
-
end
|
36
|
-
|
37
|
-
private
|
38
|
-
|
39
|
-
define_method name do
|
40
|
-
@config[name] ||= default_block.call(@config[:box])
|
41
|
-
end
|
42
|
-
|
43
|
-
define_method "#{name}=" do |value|
|
44
|
-
@config[name] = value
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
def class_dependency name, &default_block
|
49
|
-
default_block ||= Proc.new do
|
50
|
-
fail(DependencyNotFound, "Dependency #{name} not found")
|
51
|
-
end
|
52
|
-
|
53
|
-
private
|
54
|
-
|
55
|
-
define_singleton_method name do
|
56
|
-
@config[name] ||= default_block.call(@config[:box])
|
57
|
-
end
|
58
|
-
|
59
|
-
define_method name do
|
60
|
-
self.class.config[name] ||= default_block.call(self.class.config[:box])
|
61
|
-
end
|
62
|
-
end
|
63
|
-
|
64
|
-
def configure(&block)
|
65
|
-
yield @config
|
66
|
-
self
|
67
|
-
end
|
4
|
+
klass.include Dependant
|
5
|
+
klass.include Initializable
|
68
6
|
end
|
69
7
|
end
|
70
8
|
end
|
@@ -0,0 +1,71 @@
|
|
1
|
+
module LittleBoxes
|
2
|
+
module Dependant
|
3
|
+
attr_accessor :config
|
4
|
+
|
5
|
+
def initialize(*args)
|
6
|
+
@config = {}
|
7
|
+
super
|
8
|
+
end
|
9
|
+
|
10
|
+
def configure(&block)
|
11
|
+
yield @config
|
12
|
+
self
|
13
|
+
end
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
def self.included(klass)
|
18
|
+
klass.extend ClassMethods
|
19
|
+
end
|
20
|
+
|
21
|
+
module ClassMethods
|
22
|
+
def self.extended(base)
|
23
|
+
base.class_eval do
|
24
|
+
class << self
|
25
|
+
attr_accessor :config
|
26
|
+
instance_variable_set :@config, {}
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def dependency name, &default_block
|
32
|
+
default_block ||= Proc.new do
|
33
|
+
fail(DependencyNotFound, "Dependency #{name} not found")
|
34
|
+
end
|
35
|
+
|
36
|
+
define_method name do
|
37
|
+
@config[name] ||= default_block.call(@config[:box])
|
38
|
+
end
|
39
|
+
|
40
|
+
define_method "#{name}=" do |value|
|
41
|
+
@config[name] = value
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
def class_dependency name, &default_block
|
46
|
+
default_block ||= Proc.new do
|
47
|
+
fail(DependencyNotFound, "Dependency #{name} not found")
|
48
|
+
end
|
49
|
+
|
50
|
+
@config ||= {}
|
51
|
+
|
52
|
+
define_singleton_method name do
|
53
|
+
@config[name] ||= default_block.call(@config[:box])
|
54
|
+
end
|
55
|
+
|
56
|
+
define_singleton_method "#{name}=" do |value|
|
57
|
+
@config[name] = value
|
58
|
+
end
|
59
|
+
|
60
|
+
define_method name do
|
61
|
+
self.class.config[name] ||= default_block.call(self.class.config[:box])
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
def configure(&block)
|
66
|
+
yield @config
|
67
|
+
self
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
@@ -3,65 +3,17 @@ module LittleBoxes
|
|
3
3
|
module_function
|
4
4
|
|
5
5
|
def for(block, memo: false, configure: false, then_block: nil)
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
when [true, true, false]
|
10
|
-
memo_configure(block)
|
11
|
-
when [true, false, true]
|
12
|
-
memo_then(block, then_block)
|
13
|
-
when [true, false, false]
|
14
|
-
memo(block)
|
15
|
-
when [false, true, true]
|
16
|
-
configure_then(block, then_block)
|
17
|
-
when [false, true, false]
|
18
|
-
configure(block)
|
19
|
-
when [false, false, true]
|
20
|
-
then_block(block, then_block)
|
21
|
-
else
|
22
|
-
default(block)
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
def memo_configure(block)
|
27
|
-
value = nil
|
28
|
-
-> (bx) { value ||= do_configure(block.call(bx), bx) }
|
29
|
-
end
|
30
|
-
|
31
|
-
def memo_then(block, then_block)
|
32
|
-
value = nil
|
33
|
-
-> (bx) { value ||= block.call(bx).tap { |v| then_block.call v, bx } }
|
34
|
-
end
|
35
|
-
|
36
|
-
def memo_configure_then(block, then_block)
|
37
|
-
value = nil
|
38
|
-
-> (bx) do
|
39
|
-
value ||= do_configure(block.call(bx), bx)
|
40
|
-
.tap{ |v| then_block.call v, bx }
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
|
-
def memo(block)
|
45
|
-
value = nil
|
46
|
-
-> (bx) { value ||= block.call(bx) }
|
47
|
-
end
|
48
|
-
|
49
|
-
def configure(block)
|
50
|
-
-> (bx) { do_configure(block.call(bx), bx) }
|
51
|
-
end
|
6
|
+
code = "block.call(bx)"
|
7
|
+
code = "do_configure(#{code}, bx)" if configure
|
8
|
+
code = "#{code}.tap { |v| then_block.call v, bx }" if then_block
|
52
9
|
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
def configure_then(block, then_block)
|
58
|
-
-> (bx) do
|
59
|
-
do_configure(block.call(bx), bx).tap{ |v| then_block.call v, bx }
|
10
|
+
if memo
|
11
|
+
code = "value = nil; ->(bx) { value ||= #{code} }"
|
12
|
+
else
|
13
|
+
code = "->(bx) { #{code} }"
|
60
14
|
end
|
61
|
-
end
|
62
15
|
|
63
|
-
|
64
|
-
block
|
16
|
+
eval code
|
65
17
|
end
|
66
18
|
|
67
19
|
def do_configure(subject, box)
|
data/lib/little_boxes/version.rb
CHANGED
@@ -244,6 +244,12 @@ RSpec.describe 'Box' do
|
|
244
244
|
expect(box).not_to receive(:logger)
|
245
245
|
box
|
246
246
|
end
|
247
|
+
|
248
|
+
it 'can be reconfigured' do
|
249
|
+
http_client.logger = :new_logger
|
250
|
+
|
251
|
+
expect(http_client.logger).to be :new_logger
|
252
|
+
end
|
247
253
|
end
|
248
254
|
|
249
255
|
describe 'api_client (configured eager loading)' do
|
@@ -292,6 +298,10 @@ RSpec.describe 'Box' do
|
|
292
298
|
box
|
293
299
|
expect(rest_client.logger).to be logger
|
294
300
|
end
|
301
|
+
|
302
|
+
it 'has a name' do
|
303
|
+
expect(box.files.inspect).to match(/files/)
|
304
|
+
end
|
295
305
|
end
|
296
306
|
end
|
297
307
|
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require_relative '../spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe 'Configurable' do
|
4
|
+
it 'provides the Dependant functionality' do
|
5
|
+
define_class :Server do
|
6
|
+
include Configurable
|
7
|
+
dependency :instance_dependency
|
8
|
+
class_dependency :class_dependency
|
9
|
+
end
|
10
|
+
|
11
|
+
Server.class_dependency = :class_dep
|
12
|
+
expect(Server.class_dependency).to be :class_dep
|
13
|
+
|
14
|
+
server = Server.new
|
15
|
+
server.instance_dependency = :instance_dep
|
16
|
+
expect(server.instance_dependency).to be :instance_dep
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'provides the Initializable functionality' do
|
20
|
+
define_class :Server do
|
21
|
+
include Configurable
|
22
|
+
dependency :instance_dependency
|
23
|
+
end
|
24
|
+
|
25
|
+
server = Server.new instance_dependency: :instance_dep
|
26
|
+
expect(server.instance_dependency).to be :instance_dep
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,130 @@
|
|
1
|
+
require_relative '../spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe 'Dependant' do
|
4
|
+
describe 'dependency' do
|
5
|
+
it 'provides getter and setter' do
|
6
|
+
define_class :Server do
|
7
|
+
include Dependant
|
8
|
+
dependency :logger
|
9
|
+
end
|
10
|
+
|
11
|
+
server = Server.new
|
12
|
+
server.logger = :the_logger
|
13
|
+
|
14
|
+
expect(server.logger).to be :the_logger
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'allows configuring by #configure' do
|
18
|
+
define_class :Server do
|
19
|
+
include Dependant
|
20
|
+
dependency :logger
|
21
|
+
end
|
22
|
+
|
23
|
+
server = Server.new
|
24
|
+
|
25
|
+
server.configure do |c|
|
26
|
+
c[:logger] = :the_logger
|
27
|
+
end
|
28
|
+
|
29
|
+
expect(server.logger).to be :the_logger
|
30
|
+
end
|
31
|
+
|
32
|
+
it 'accepts default values' do
|
33
|
+
define_class :Server do
|
34
|
+
include Dependant
|
35
|
+
dependency(:logger) { :the_logger }
|
36
|
+
end
|
37
|
+
|
38
|
+
server = Server.new
|
39
|
+
|
40
|
+
expect(server.logger).to be :the_logger
|
41
|
+
end
|
42
|
+
|
43
|
+
it 'passes the box to the default lambda' do
|
44
|
+
define_class :Server do
|
45
|
+
include Dependant
|
46
|
+
dependency(:logger) { |box| box }
|
47
|
+
end
|
48
|
+
|
49
|
+
server = Server.new
|
50
|
+
|
51
|
+
server.configure do |c|
|
52
|
+
c[:box] = :the_box
|
53
|
+
end
|
54
|
+
|
55
|
+
expect(server.logger).to be :the_box
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
describe 'class_dependency' do
|
60
|
+
it 'provides getter and setter' do
|
61
|
+
define_class :Server do
|
62
|
+
include Dependant
|
63
|
+
class_dependency :logger
|
64
|
+
end
|
65
|
+
|
66
|
+
Server.logger = :the_logger
|
67
|
+
|
68
|
+
expect(Server.logger).to be :the_logger
|
69
|
+
end
|
70
|
+
|
71
|
+
it 'allows configuring by #configure' do
|
72
|
+
define_class :Server do
|
73
|
+
include Dependant
|
74
|
+
class_dependency :logger
|
75
|
+
end
|
76
|
+
|
77
|
+
Server.configure do |c|
|
78
|
+
c[:logger] = :the_logger
|
79
|
+
end
|
80
|
+
|
81
|
+
expect(Server.logger).to be :the_logger
|
82
|
+
end
|
83
|
+
|
84
|
+
it 'accepts default values' do
|
85
|
+
define_class :Server do
|
86
|
+
include Dependant
|
87
|
+
class_dependency(:logger) { :the_logger }
|
88
|
+
end
|
89
|
+
|
90
|
+
expect(Server.logger).to be :the_logger
|
91
|
+
end
|
92
|
+
|
93
|
+
it 'passes the box to the default lambda' do
|
94
|
+
define_class :Server do
|
95
|
+
include Dependant
|
96
|
+
class_dependency(:logger) { |box| box }
|
97
|
+
end
|
98
|
+
|
99
|
+
Server.configure do |c|
|
100
|
+
c[:box] = :the_box
|
101
|
+
end
|
102
|
+
|
103
|
+
expect(Server.logger).to be :the_box
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
it 'respects original initializer' do
|
108
|
+
define_class :ServerBase do
|
109
|
+
attr_accessor :given_args
|
110
|
+
attr_accessor :changed_on_yield
|
111
|
+
|
112
|
+
def initialize(*args)
|
113
|
+
@given_args = args
|
114
|
+
|
115
|
+
yield self
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
119
|
+
define_class :Server, ServerBase do
|
120
|
+
include Dependant
|
121
|
+
end
|
122
|
+
|
123
|
+
server = Server.new(:some_args) do |s|
|
124
|
+
s.changed_on_yield = true
|
125
|
+
end
|
126
|
+
|
127
|
+
expect(server.given_args).to eq [:some_args]
|
128
|
+
expect(server.changed_on_yield).to be true
|
129
|
+
end
|
130
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require_relative '../spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe 'Initializable' do
|
4
|
+
before :each do
|
5
|
+
define_class :User do
|
6
|
+
include Initializable
|
7
|
+
include Configurable
|
8
|
+
|
9
|
+
dependency :age
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'allows configuring attributes in initialize' do
|
14
|
+
user = User.new age: 24
|
15
|
+
expect(user.age).to be 24
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'allows initializing with no args' do
|
19
|
+
expect { User.new }.not_to raise_error
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
require_relative '../spec_helper'
|
2
|
+
require 'redis'
|
3
|
+
|
4
|
+
RSpec.describe 'Use cases' do
|
5
|
+
it 'does memoization with #let' do
|
6
|
+
define_class :MainBox do
|
7
|
+
include LittleBoxes::Box
|
8
|
+
let(:redis) { require 'redis'; Redis.new }
|
9
|
+
end
|
10
|
+
|
11
|
+
box = MainBox.new
|
12
|
+
|
13
|
+
expect(box.redis).to be_a Redis
|
14
|
+
expect(box.redis).to be box.redis
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'does automatic configuration with letc' do
|
18
|
+
define_class :Publisher do
|
19
|
+
include LittleBoxes::Configurable
|
20
|
+
dependency :redis
|
21
|
+
end
|
22
|
+
|
23
|
+
define_class :MainBox do
|
24
|
+
include LittleBoxes::Box
|
25
|
+
let(:redis) { require 'redis'; Redis.new }
|
26
|
+
letc(:publisher) { Publisher.new }
|
27
|
+
end
|
28
|
+
|
29
|
+
box = MainBox.new
|
30
|
+
expect(box.publisher.redis).to be box.redis
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'supports default values' do
|
34
|
+
define_class :Repo do
|
35
|
+
include LittleBoxes::Configurable
|
36
|
+
dependency(:store) { Hash.new }
|
37
|
+
end
|
38
|
+
|
39
|
+
define_class :MainBox do
|
40
|
+
include LittleBoxes::Box
|
41
|
+
letc(:repo) { Repo.new }
|
42
|
+
end
|
43
|
+
|
44
|
+
box = MainBox.new
|
45
|
+
expect(box.repo.store).to be_a Hash
|
46
|
+
end
|
47
|
+
|
48
|
+
it 'supports default values that use the box' do
|
49
|
+
define_class :Repo do
|
50
|
+
include LittleBoxes::Configurable
|
51
|
+
dependency(:log) { |box| box.logger }
|
52
|
+
end
|
53
|
+
|
54
|
+
define_class(:Logger) { }
|
55
|
+
|
56
|
+
define_class :MainBox do
|
57
|
+
include LittleBoxes::Box
|
58
|
+
let(:logger) { Logger.new }
|
59
|
+
letc(:repo) { Repo.new }
|
60
|
+
end
|
61
|
+
|
62
|
+
box = MainBox.new
|
63
|
+
expect(box.repo.log).to be box.logger
|
64
|
+
end
|
65
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -6,6 +6,7 @@ $LOAD_PATH.unshift File.expand_path('lib')
|
|
6
6
|
require 'little_boxes'
|
7
7
|
|
8
8
|
$LOAD_PATH.unshift File.expand_path('spec/support')
|
9
|
+
require 'class_support'
|
9
10
|
|
10
11
|
module LittleBoxes
|
11
12
|
module SpecHelper
|
@@ -16,6 +17,7 @@ module LittleBoxes
|
|
16
17
|
c.formatter = :documentation # :documentation, :progress, :html, :textmate
|
17
18
|
c.filter_run_excluding benchmark: !benchmark_enabled?, docs: !docs?
|
18
19
|
c.include SpecHelper
|
20
|
+
c.include ClassSupport
|
19
21
|
end
|
20
22
|
end
|
21
23
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: little_boxes
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Workshare's dev team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-03-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -38,7 +38,7 @@ dependencies:
|
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
|
-
description:
|
41
|
+
description: "[](http://badge.fury.io/rb/little_boxes)"
|
42
42
|
email:
|
43
43
|
- _Development@workshare.com
|
44
44
|
executables: []
|
@@ -46,6 +46,7 @@ extensions: []
|
|
46
46
|
extra_rdoc_files: []
|
47
47
|
files:
|
48
48
|
- ".gitignore"
|
49
|
+
- ".travis.yml"
|
49
50
|
- Gemfile
|
50
51
|
- LICENSE.txt
|
51
52
|
- README.md
|
@@ -53,8 +54,10 @@ files:
|
|
53
54
|
- lib/little_boxes.rb
|
54
55
|
- lib/little_boxes/box.rb
|
55
56
|
- lib/little_boxes/configurable.rb
|
57
|
+
- lib/little_boxes/dependant.rb
|
56
58
|
- lib/little_boxes/entry.rb
|
57
59
|
- lib/little_boxes/entry_definition.rb
|
60
|
+
- lib/little_boxes/initializable.rb
|
58
61
|
- lib/little_boxes/strategy.rb
|
59
62
|
- lib/little_boxes/version.rb
|
60
63
|
- little_boxes.gemspec
|
@@ -62,9 +65,15 @@ files:
|
|
62
65
|
- spec/docs/readme_spec.rb
|
63
66
|
- spec/integration/thread_safety_spec.rb
|
64
67
|
- spec/little_boxes/box_spec.rb
|
68
|
+
- spec/little_boxes/configurable_spec.rb
|
69
|
+
- spec/little_boxes/dependant_spec.rb
|
70
|
+
- spec/little_boxes/initializable_spec.rb
|
71
|
+
- spec/little_boxes/use_cases_spec.rb
|
65
72
|
- spec/little_boxes_spec.rb
|
66
73
|
- spec/real_benchmarks_spec.rb
|
67
74
|
- spec/spec_helper.rb
|
75
|
+
- spec/support/class_support.rb
|
76
|
+
- spec/support/redis.rb
|
68
77
|
- tmp/.gitkeep
|
69
78
|
homepage: https://github.com/worshare/little-boxes
|
70
79
|
licenses:
|
@@ -89,13 +98,19 @@ rubyforge_project:
|
|
89
98
|
rubygems_version: 2.2.2
|
90
99
|
signing_key:
|
91
100
|
specification_version: 4
|
92
|
-
summary:
|
101
|
+
summary: "[](http://badge.fury.io/rb/little_boxes)"
|
93
102
|
test_files:
|
94
103
|
- spec/benchmarks_spec.rb
|
95
104
|
- spec/docs/readme_spec.rb
|
96
105
|
- spec/integration/thread_safety_spec.rb
|
97
106
|
- spec/little_boxes/box_spec.rb
|
107
|
+
- spec/little_boxes/configurable_spec.rb
|
108
|
+
- spec/little_boxes/dependant_spec.rb
|
109
|
+
- spec/little_boxes/initializable_spec.rb
|
110
|
+
- spec/little_boxes/use_cases_spec.rb
|
98
111
|
- spec/little_boxes_spec.rb
|
99
112
|
- spec/real_benchmarks_spec.rb
|
100
113
|
- spec/spec_helper.rb
|
114
|
+
- spec/support/class_support.rb
|
115
|
+
- spec/support/redis.rb
|
101
116
|
has_rdoc:
|