nasty 0.0.1388166944 → 0.0.1388167257
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/nasty.rb +2 -0
- data/lib/nasty/key.rb +27 -0
- data/lib/nasty/lazy.rb +1 -1
- data/lib/nasty/simple_context.rb +23 -0
- data/spec/unit/simple_context_spec.rb +63 -0
- metadata +5 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 561d541ea6858383d1bd1c5d0bb3506442466d6a
|
4
|
+
data.tar.gz: 7095e04b44b7166922564b6fa16518a2330c5104
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a8beedef9e079841f366a6510116aa62875371f20d21de1b9dd8496d39202a767ffdde6f50d35a5ed8cbc0b6da38244211a9eeeb6e893f9fe03e65b4c5e0bd2f
|
7
|
+
data.tar.gz: 66ef31ef012d5f9dfa7d0f79f4ae948598388cf8ae48ad6bbf805ac5075a0d8630b4143acccc420aa8ac1cc8c17169d7a35166d561b1b556fc1d67940ab2d6fa
|
data/lib/nasty.rb
CHANGED
@@ -5,10 +5,12 @@ require "nasty/composite_command"
|
|
5
5
|
require "nasty/expose_binding"
|
6
6
|
require "nasty/identity_map"
|
7
7
|
require "nasty/kernel"
|
8
|
+
require "nasty/key"
|
8
9
|
require "nasty/lambda_behaviours"
|
9
10
|
require "nasty/lazy"
|
10
11
|
require "nasty/log"
|
11
12
|
require "nasty/object"
|
13
|
+
require "nasty/simple_context"
|
12
14
|
require "nasty/version"
|
13
15
|
|
14
16
|
module Nasty
|
data/lib/nasty/key.rb
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
module Nasty
|
2
|
+
class Key
|
3
|
+
def initialize(key)
|
4
|
+
@key = key
|
5
|
+
end
|
6
|
+
|
7
|
+
def add_to(store, value)
|
8
|
+
store[to_sym] = value
|
9
|
+
end
|
10
|
+
|
11
|
+
def remove_from(store)
|
12
|
+
store[to_sym] = nil
|
13
|
+
end
|
14
|
+
|
15
|
+
def contained_in?(store)
|
16
|
+
item_from(store)
|
17
|
+
end
|
18
|
+
|
19
|
+
def item_from(store)
|
20
|
+
store[to_sym]
|
21
|
+
end
|
22
|
+
|
23
|
+
def to_sym
|
24
|
+
@key.to_sym
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
data/lib/nasty/lazy.rb
CHANGED
@@ -0,0 +1,23 @@
|
|
1
|
+
module Nasty
|
2
|
+
class SimpleContext
|
3
|
+
def initialize(store = {})
|
4
|
+
@store = store
|
5
|
+
end
|
6
|
+
|
7
|
+
def add(key, value)
|
8
|
+
key.add_to(@store, value)
|
9
|
+
end
|
10
|
+
|
11
|
+
def remove(key)
|
12
|
+
key.remove_from(@store)
|
13
|
+
end
|
14
|
+
|
15
|
+
def contains?(key)
|
16
|
+
key.contained_in?(@store)
|
17
|
+
end
|
18
|
+
|
19
|
+
def item_for(key)
|
20
|
+
key.item_from(@store)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,63 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
module Nasty
|
4
|
+
describe SimpleContext do
|
5
|
+
let(:sut) { SimpleContext.new(store) }
|
6
|
+
let(:store) { Hash.new }
|
7
|
+
|
8
|
+
context "when adding an item" do
|
9
|
+
let(:key) { Key.new("artist") }
|
10
|
+
let(:item) { "bobby digital" }
|
11
|
+
|
12
|
+
before { sut.add(key, item) }
|
13
|
+
|
14
|
+
it "should add the item to the context" do
|
15
|
+
store[key.to_sym].should == item
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
context "when removing an item" do
|
20
|
+
let(:key) { Key.new("artist") }
|
21
|
+
let(:item) { "bobby digital" }
|
22
|
+
|
23
|
+
before :each do
|
24
|
+
sut.add(key, item)
|
25
|
+
sut.remove(key)
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should remove the item from the store" do
|
29
|
+
store[key.to_sym].should be_nil
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
context "when checking if a key is in the context" do
|
34
|
+
context "when it is" do
|
35
|
+
let(:key) { Key.new("blah") }
|
36
|
+
before { sut.add(key, 'blah') }
|
37
|
+
let(:result) { sut.contains?(key) }
|
38
|
+
|
39
|
+
it "should return true" do
|
40
|
+
result.should be_true
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
context "when it is not" do
|
45
|
+
let(:key) { Key.new("blah") }
|
46
|
+
let(:result) { sut.contains?(key) }
|
47
|
+
|
48
|
+
it "should return false" do
|
49
|
+
result.should be_false
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
context "when retrieving an item" do
|
54
|
+
let(:key) { Key.new("name") }
|
55
|
+
before { sut.add(key, 'mo') }
|
56
|
+
let(:result) { sut.item_for(key) }
|
57
|
+
|
58
|
+
it "should return the correct item" do
|
59
|
+
result.should == 'mo'
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nasty
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.1388167257
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- mo khan
|
@@ -87,10 +87,12 @@ files:
|
|
87
87
|
- lib/nasty/expose_binding.rb
|
88
88
|
- lib/nasty/identity_map.rb
|
89
89
|
- lib/nasty/kernel.rb
|
90
|
+
- lib/nasty/key.rb
|
90
91
|
- lib/nasty/lambda_behaviours.rb
|
91
92
|
- lib/nasty/lazy.rb
|
92
93
|
- lib/nasty/log.rb
|
93
94
|
- lib/nasty/object.rb
|
95
|
+
- lib/nasty/simple_context.rb
|
94
96
|
- lib/nasty/version.rb
|
95
97
|
- nasty.gemspec
|
96
98
|
- spec/spec_helper.rb
|
@@ -101,6 +103,7 @@ files:
|
|
101
103
|
- spec/unit/lambda_behaviours_spec.rb
|
102
104
|
- spec/unit/lazy_spec.rb
|
103
105
|
- spec/unit/log_spec.rb
|
106
|
+
- spec/unit/simple_context_spec.rb
|
104
107
|
- spec/unit/using_spec.rb
|
105
108
|
homepage: http://github.com/mokhan/nasty
|
106
109
|
licenses:
|
@@ -135,4 +138,5 @@ test_files:
|
|
135
138
|
- spec/unit/lambda_behaviours_spec.rb
|
136
139
|
- spec/unit/lazy_spec.rb
|
137
140
|
- spec/unit/log_spec.rb
|
141
|
+
- spec/unit/simple_context_spec.rb
|
138
142
|
- spec/unit/using_spec.rb
|