verning 0.0.2 → 0.0.3
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/Gemfile.lock +12 -1
- data/README.md +17 -2
- data/lib/verning/core_ext/object.rb +1 -0
- data/lib/verning/core_ext/object/versioned_module.rb +25 -0
- data/lib/verning/version.rb +1 -1
- data/spec/core_ext/object/versioned_module_spec.rb +54 -0
- data/verning.gemspec +1 -0
- metadata +19 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4b2344c1e86b035196cf8e5c9ad6c157e52ad989
|
4
|
+
data.tar.gz: 70f9d690637f5b606e0d516045fbc1e78b504152
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8c6ce07a19201245cb4fa21988d260c09969768f1c8eb906390d954f5e71db208cab09a2c7d647d67cc35b736a3164e846a4706379c9701757952ecc3b397f90
|
7
|
+
data.tar.gz: 53aa9cbdc0eb878893e161d316bd3220ac28b0eeee950fb45e82b763529324c131895736d116c96646ea666235cfc69980f381803c94a8bd05337581c75fba02
|
data/Gemfile.lock
CHANGED
@@ -1,18 +1,28 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
verning (0.0.
|
4
|
+
verning (0.0.3)
|
5
5
|
|
6
6
|
GEM
|
7
7
|
remote: https://rubygems.org/
|
8
8
|
specs:
|
9
9
|
coderay (1.1.0)
|
10
|
+
columnize (0.3.6)
|
11
|
+
debugger (1.6.6)
|
12
|
+
columnize (>= 0.3.1)
|
13
|
+
debugger-linecache (~> 1.2.0)
|
14
|
+
debugger-ruby_core_source (~> 1.3.2)
|
15
|
+
debugger-linecache (1.2.0)
|
16
|
+
debugger-ruby_core_source (1.3.2)
|
10
17
|
diff-lcs (1.2.5)
|
11
18
|
method_source (0.8.2)
|
12
19
|
pry (0.9.12.6)
|
13
20
|
coderay (~> 1.0)
|
14
21
|
method_source (~> 0.8)
|
15
22
|
slop (~> 3.4)
|
23
|
+
pry-debugger (0.2.2)
|
24
|
+
debugger (~> 1.3)
|
25
|
+
pry (~> 0.9.10)
|
16
26
|
rake (0.9.6)
|
17
27
|
rspec (2.14.1)
|
18
28
|
rspec-core (~> 2.14.0)
|
@@ -30,6 +40,7 @@ PLATFORMS
|
|
30
40
|
DEPENDENCIES
|
31
41
|
bundler (~> 1.3)
|
32
42
|
pry (~> 0.9)
|
43
|
+
pry-debugger (~> 0.2)
|
33
44
|
rake (~> 0.9)
|
34
45
|
rspec (~> 2.14)
|
35
46
|
verning!
|
data/README.md
CHANGED
@@ -2,11 +2,11 @@ Verning
|
|
2
2
|
=========
|
3
3
|
Versioning for methods, modules or classes
|
4
4
|
|
5
|
-
[](https://travis-ci.org/eccyan/verning)
|
6
6
|
|
7
7
|
## Install
|
8
8
|
```sh
|
9
|
-
gem install
|
9
|
+
gem install verning
|
10
10
|
```
|
11
11
|
|
12
12
|
## Reference
|
@@ -32,6 +32,21 @@ class Klass
|
|
32
32
|
end
|
33
33
|
```
|
34
34
|
|
35
|
+
### versioned_module/versioned_class
|
36
|
+
Select a module/class that matches the conditions given with block.
|
37
|
+
```ruby
|
38
|
+
require "verning"
|
39
|
+
|
40
|
+
RELEASE_DATE = Date.parse("2014-3-26")
|
41
|
+
|
42
|
+
class Foo; end
|
43
|
+
class FooFeature; end
|
44
|
+
|
45
|
+
versioned_method Foo, FooFeature do
|
46
|
+
Date.today >= RELEASE_DATE
|
47
|
+
end
|
48
|
+
```
|
49
|
+
|
35
50
|
# License
|
36
51
|
Verning is released under the MIT license:
|
37
52
|
|
@@ -0,0 +1 @@
|
|
1
|
+
require "verning/core_ext/object/versioned_module"
|
@@ -0,0 +1,25 @@
|
|
1
|
+
|
2
|
+
class Object
|
3
|
+
# Select a module that matches the conditions given with block.
|
4
|
+
#
|
5
|
+
# versioned_module :downed, :upped do
|
6
|
+
# Time.now > "2013-04-01"
|
7
|
+
# end
|
8
|
+
#
|
9
|
+
def versioned_module(downed, upped, key = nil)
|
10
|
+
return if block_given? && yield.!
|
11
|
+
|
12
|
+
Object.send :remove_const, downed.to_s
|
13
|
+
const_set downed.to_s, Object.const_get(upped.to_s)
|
14
|
+
end
|
15
|
+
|
16
|
+
# Select a class that matches the conditions given with block.
|
17
|
+
#
|
18
|
+
# versioned_module :downed, :upped do
|
19
|
+
# Time.now > "2013-04-01"
|
20
|
+
# end
|
21
|
+
#
|
22
|
+
def versioned_class(downed, upped, key = nil, &block)
|
23
|
+
versioned_module(downed, upped, key, &block)
|
24
|
+
end
|
25
|
+
end
|
data/lib/verning/version.rb
CHANGED
@@ -0,0 +1,54 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Object do
|
4
|
+
let(:condition) { nil }
|
5
|
+
let(:method_name) { nil }
|
6
|
+
|
7
|
+
before do
|
8
|
+
Object.send :remove_const, "Upped" if Object.const_defined? "Upped"
|
9
|
+
Object.const_set("Upped", Class.new(Object))
|
10
|
+
Object.send :remove_const, "Downed" if Object.const_defined? "Downed"
|
11
|
+
Object.const_set("Downed", Class.new(Object))
|
12
|
+
|
13
|
+
Object.send(method_name, Downed, Upped) do condition end
|
14
|
+
end
|
15
|
+
|
16
|
+
describe "versioned_module" do
|
17
|
+
let(:method_name) { :versioned_module }
|
18
|
+
|
19
|
+
describe "when not matches the conditions"do
|
20
|
+
let(:condition) { false }
|
21
|
+
|
22
|
+
it "not aliased target method" do
|
23
|
+
expect(Downed.new).to be_kind_of(Downed)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
describe "when matches the conditions"do
|
28
|
+
let(:condition) { true }
|
29
|
+
|
30
|
+
it "aliased target method" do
|
31
|
+
expect(Downed.new).to be_kind_of(Upped)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
describe "versioned_class" do
|
36
|
+
let(:method_name) { :versioned_class }
|
37
|
+
|
38
|
+
describe "when not matches the conditions"do
|
39
|
+
let(:condition) { false }
|
40
|
+
|
41
|
+
it "not aliased target method" do
|
42
|
+
expect(Downed.new).to be_kind_of(Downed)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
describe "when matches the conditions"do
|
47
|
+
let(:condition) { true }
|
48
|
+
|
49
|
+
it "aliased target method" do
|
50
|
+
expect(Downed.new).to be_kind_of(Upped)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
data/verning.gemspec
CHANGED
@@ -21,5 +21,6 @@ Gem::Specification.new do |spec|
|
|
21
21
|
spec.add_development_dependency "bundler", "~> 1.3"
|
22
22
|
spec.add_development_dependency "rake", "~> 0.9"
|
23
23
|
spec.add_development_dependency "pry", "~> 0.9"
|
24
|
+
spec.add_development_dependency "pry-debugger", "~> 0.2"
|
24
25
|
spec.add_development_dependency "rspec", "~> 2.14"
|
25
26
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: verning
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- eccyan
|
@@ -52,6 +52,20 @@ dependencies:
|
|
52
52
|
- - ~>
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0.9'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: pry-debugger
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0.2'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ~>
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0.2'
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: rspec
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -85,8 +99,11 @@ files:
|
|
85
99
|
- lib/verning/core_ext.rb
|
86
100
|
- lib/verning/core_ext/module.rb
|
87
101
|
- lib/verning/core_ext/module/versioned_method.rb
|
102
|
+
- lib/verning/core_ext/object.rb
|
103
|
+
- lib/verning/core_ext/object/versioned_module.rb
|
88
104
|
- lib/verning/version.rb
|
89
105
|
- spec/core_ext/module/versioned_method_spec.rb
|
106
|
+
- spec/core_ext/object/versioned_module_spec.rb
|
90
107
|
- spec/spec_helper.rb
|
91
108
|
- verning.gemspec
|
92
109
|
homepage: https://github.com/eccyan/verning
|
@@ -115,4 +132,5 @@ specification_version: 4
|
|
115
132
|
summary: versioning helper
|
116
133
|
test_files:
|
117
134
|
- spec/core_ext/module/versioned_method_spec.rb
|
135
|
+
- spec/core_ext/object/versioned_module_spec.rb
|
118
136
|
- spec/spec_helper.rb
|