smart_env 1.0.0 → 1.0.1

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.
@@ -1,3 +1,3 @@
1
1
  module SmartEnv
2
- VERSION = "1.0.0"
2
+ VERSION = "1.0.1"
3
3
  end
data/lib/smart_env.rb CHANGED
@@ -4,29 +4,12 @@ require "smart_env/uri_proxy"
4
4
  module SmartEnv
5
5
  attr_accessor :registry
6
6
 
7
- def self.extended(base)
8
- raise RuntimeError.new("#{base.inspect} doesn't respond to #[]") \
9
- unless base.respond_to? :[]
10
-
11
- class << base
12
- alias_method :__get, :[]
13
- alias_method :__set, :[]=
14
-
15
- def []=(key, value)
16
- memoized[key] = nil
17
- __set(key, value)
18
- end
7
+ def clear_registry
8
+ @registry = empty_registry
9
+ end
19
10
 
20
- def [](key)
21
- return memoized[key] if memoized[key]
22
- value = __get(key)
23
- registry.each do |klass, condition|
24
- result = condition.call(key, value) rescue false
25
- value = klass.new(key, value) if value && result
26
- end
27
- memoized[key] = value
28
- end
29
- end
11
+ def empty_registry
12
+ []
30
13
  end
31
14
 
32
15
  def use(klass)
@@ -43,22 +26,26 @@ module SmartEnv
43
26
  self
44
27
  end
45
28
 
46
- def clear_registry
47
- @registry = empty_registry
48
- @memoized = {}
49
- end
50
-
51
- private
52
- def empty_registry
53
- []
54
- end
55
-
56
29
  def registry
57
30
  @registry ||= empty_registry
58
31
  end
59
32
 
60
- def memoized
61
- @memoized ||= {}
33
+ def self.extended(base)
34
+ raise RuntimeError.new("#{base.inspect} doesn't respond to #[]") \
35
+ unless base.respond_to? :[]
36
+
37
+ class << base
38
+ alias_method :__get, :[]
39
+
40
+ def [](key)
41
+ value = __get(key)
42
+ registry.each do |klass, condition|
43
+ result = condition.call(key, value) rescue false
44
+ value = klass.new(key, value) if value && result
45
+ end
46
+ value
47
+ end
48
+ end
62
49
  end
63
50
  end
64
51
 
@@ -42,12 +42,5 @@ describe SmartEnv, 'load/unload' do
42
42
  @env.clear_registry
43
43
  @env['FOO'].should_not respond_to :one
44
44
  end
45
-
46
- it "should clear memoized values" do
47
- @env['FOO'] = 'test'
48
- memoized = @env['FOO']
49
- @env.clear_registry
50
- @env['FOO'].object_id.should_not == memoized.object_id
51
- end
52
45
  end
53
46
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: smart_env
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -14,7 +14,7 @@ default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rspec
17
- requirement: &2157658940 !ruby/object:Gem::Requirement
17
+ requirement: &2168469180 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ~>
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: '2.0'
23
23
  type: :development
24
24
  prerelease: false
25
- version_requirements: *2157658940
25
+ version_requirements: *2168469180
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: rcov
28
- requirement: &2157658400 !ruby/object:Gem::Requirement
28
+ requirement: &2168468540 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ! '>='
@@ -33,7 +33,7 @@ dependencies:
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
- version_requirements: *2157658400
36
+ version_requirements: *2168468540
37
37
  description: Allows you to register Proxy classes for ENV vars by using blocks to
38
38
  match keys and values
39
39
  email:
@@ -53,7 +53,6 @@ files:
53
53
  - smart_env.gemspec
54
54
  - spec/decoration_spec.rb
55
55
  - spec/load_unload_spec.rb
56
- - spec/memoize_spec.rb
57
56
  - spec/registry_spec.rb
58
57
  - spec/spec_helper.rb
59
58
  - spec/uri_spec.rb
@@ -72,7 +71,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
72
71
  version: '0'
73
72
  segments:
74
73
  - 0
75
- hash: -1074412802027231897
74
+ hash: -2010000766017814403
76
75
  required_rubygems_version: !ruby/object:Gem::Requirement
77
76
  none: false
78
77
  requirements:
@@ -81,7 +80,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
81
80
  version: '0'
82
81
  segments:
83
82
  - 0
84
- hash: -1074412802027231897
83
+ hash: -2010000766017814403
85
84
  requirements: []
86
85
  rubyforge_project: smart_env
87
86
  rubygems_version: 1.6.2
@@ -91,7 +90,6 @@ summary: Lazily proxy ENV values
91
90
  test_files:
92
91
  - spec/decoration_spec.rb
93
92
  - spec/load_unload_spec.rb
94
- - spec/memoize_spec.rb
95
93
  - spec/registry_spec.rb
96
94
  - spec/spec_helper.rb
97
95
  - spec/uri_spec.rb
data/spec/memoize_spec.rb DELETED
@@ -1,14 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe SmartEnv, 'memoizing values' do
4
- before do
5
- @env = {}
6
- @env.extend SmartEnv
7
- @env.use(SmartEnv::UriProxy)
8
- @env['TEST'] = 'http://service.com'
9
- end
10
-
11
- it "should return the same object after calling" do
12
- ENV['TEST'].object_id.should == ENV['TEST'].object_id
13
- end
14
- end