elliottcable-refinery 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.
- data/.manifest +12 -0
- data/LICENSE.text +674 -0
- data/README.markdown +126 -0
- data/Rakefile.rb +134 -0
- data/ext/sing/extconf.rb +3 -0
- data/ext/sing/sing.c +13 -0
- data/lib/refinery.rb +10 -0
- data/lib/refinery/core_ext/class.rb +12 -0
- data/lib/refinery/core_ext/object.rb +7 -0
- data/refinery.gemspec +128 -0
- data/spec/refinery/core_ext/class_spec.rb +18 -0
- data/spec/refinery_spec.rb +167 -0
- data/spec/spec_helper.rb +6 -0
- metadata +126 -0
@@ -0,0 +1,167 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/spec_helper'
|
2
|
+
|
3
|
+
describe Refinery do
|
4
|
+
before :each do
|
5
|
+
# Kind of hackish, but I'd rather refer to it by it's name as a class.
|
6
|
+
Object.send :remove_const, :Something if defined? Something
|
7
|
+
end
|
8
|
+
|
9
|
+
describe '#refine_method' do
|
10
|
+
describe '- instance method' do
|
11
|
+
|
12
|
+
it 'should still work ordinarily when defined before refining' do
|
13
|
+
class Something
|
14
|
+
attr_reader :abc
|
15
|
+
extend Refinery
|
16
|
+
|
17
|
+
def foobar
|
18
|
+
@abc = 123
|
19
|
+
end
|
20
|
+
refine_method :foobar
|
21
|
+
end
|
22
|
+
|
23
|
+
something = Something.new
|
24
|
+
something.foobar
|
25
|
+
something.abc.should == 123
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'should still work ordinarily when not defined before refining' do
|
29
|
+
class Something
|
30
|
+
attr_reader :abc
|
31
|
+
extend Refinery
|
32
|
+
|
33
|
+
refine_method :foobar
|
34
|
+
def foobar
|
35
|
+
@abc = 123
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
something = Something.new
|
40
|
+
something.foobar
|
41
|
+
something.abc.should == 123
|
42
|
+
end
|
43
|
+
|
44
|
+
it 'should stack when defined multiple times after refining' do; pending do
|
45
|
+
class Something
|
46
|
+
attr_reader :abc
|
47
|
+
extend Refinery
|
48
|
+
|
49
|
+
refine_method :foobar
|
50
|
+
def foobar
|
51
|
+
@abc = 123
|
52
|
+
end
|
53
|
+
|
54
|
+
def foobar
|
55
|
+
@abc += 111
|
56
|
+
end
|
57
|
+
|
58
|
+
def foobar
|
59
|
+
@abc += 111
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
something = Something.new
|
64
|
+
something.foobar
|
65
|
+
something.abc.should == 345
|
66
|
+
end; end
|
67
|
+
|
68
|
+
it 'should stack when defined before and after refining' do; pending do
|
69
|
+
class Something
|
70
|
+
attr_reader :abc
|
71
|
+
extend Refinery
|
72
|
+
|
73
|
+
def foobar
|
74
|
+
@abc = 123
|
75
|
+
end
|
76
|
+
refine_method :foobar
|
77
|
+
|
78
|
+
def foobar
|
79
|
+
@abc += 111
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
something = Something.new
|
84
|
+
something.foobar
|
85
|
+
something.abc.should == 234
|
86
|
+
end; end
|
87
|
+
|
88
|
+
end
|
89
|
+
|
90
|
+
describe '- singleton method' do
|
91
|
+
|
92
|
+
it 'should still work ordinarily when defined before refining' do
|
93
|
+
class Something; class << self
|
94
|
+
attr_reader :abc
|
95
|
+
extend Refinery
|
96
|
+
|
97
|
+
def foobar
|
98
|
+
@abc = 123
|
99
|
+
end
|
100
|
+
refine_method :foobar
|
101
|
+
end; end
|
102
|
+
|
103
|
+
Something.foobar
|
104
|
+
Something.abc.should == 123
|
105
|
+
end
|
106
|
+
|
107
|
+
it 'should still work ordinarily when not defined before refining' do
|
108
|
+
class Something; class << self
|
109
|
+
attr_reader :abc
|
110
|
+
extend Refinery
|
111
|
+
|
112
|
+
refine_method :foobar
|
113
|
+
def foobar
|
114
|
+
@abc = 123
|
115
|
+
end
|
116
|
+
end; end
|
117
|
+
|
118
|
+
Something.foobar
|
119
|
+
Something.abc.should == 123
|
120
|
+
end
|
121
|
+
|
122
|
+
it 'should stack when defined multiple times after refining' do; pending do
|
123
|
+
class Something; class << self
|
124
|
+
attr_reader :abc
|
125
|
+
extend Refinery
|
126
|
+
|
127
|
+
refine_method :foobar
|
128
|
+
def foobar
|
129
|
+
@abc = 123
|
130
|
+
end
|
131
|
+
|
132
|
+
def foobar
|
133
|
+
@abc += 111
|
134
|
+
end
|
135
|
+
|
136
|
+
def foobar
|
137
|
+
@abc += 111
|
138
|
+
end
|
139
|
+
end; end
|
140
|
+
|
141
|
+
Something.foobar
|
142
|
+
Something.abc.should == 345
|
143
|
+
end; end
|
144
|
+
|
145
|
+
it 'should stack when defined before and after refining' do; pending do
|
146
|
+
class Something; class << self
|
147
|
+
attr_reader :abc
|
148
|
+
extend Refinery
|
149
|
+
|
150
|
+
def foobar
|
151
|
+
@abc = 123
|
152
|
+
end
|
153
|
+
refine_method :foobar
|
154
|
+
|
155
|
+
def foobar
|
156
|
+
@abc += 111
|
157
|
+
end
|
158
|
+
end; end
|
159
|
+
|
160
|
+
Something.foobar
|
161
|
+
Something.abc.should == 234
|
162
|
+
end; end
|
163
|
+
|
164
|
+
end
|
165
|
+
end
|
166
|
+
|
167
|
+
end
|
data/spec/spec_helper.rb
ADDED
metadata
ADDED
@@ -0,0 +1,126 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: elliottcable-refinery
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: "0"
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- elliottcable
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain:
|
11
|
+
date: 2008-10-12 01:00:00 -07:00
|
12
|
+
default_executable:
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: echoe
|
16
|
+
type: :development
|
17
|
+
version_requirement:
|
18
|
+
version_requirements: !ruby/object:Gem::Requirement
|
19
|
+
requirements:
|
20
|
+
- - ">="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 3.0.1
|
23
|
+
version:
|
24
|
+
- !ruby/object:Gem::Dependency
|
25
|
+
name: rspec
|
26
|
+
type: :development
|
27
|
+
version_requirement:
|
28
|
+
version_requirements: !ruby/object:Gem::Requirement
|
29
|
+
requirements:
|
30
|
+
- - ">="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: "0"
|
33
|
+
version:
|
34
|
+
- !ruby/object:Gem::Dependency
|
35
|
+
name: rcov
|
36
|
+
type: :development
|
37
|
+
version_requirement:
|
38
|
+
version_requirements: !ruby/object:Gem::Requirement
|
39
|
+
requirements:
|
40
|
+
- - ">="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: "0"
|
43
|
+
version:
|
44
|
+
- !ruby/object:Gem::Dependency
|
45
|
+
name: yard
|
46
|
+
type: :development
|
47
|
+
version_requirement:
|
48
|
+
version_requirements: !ruby/object:Gem::Requirement
|
49
|
+
requirements:
|
50
|
+
- - ">="
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: "0"
|
53
|
+
version:
|
54
|
+
- !ruby/object:Gem::Dependency
|
55
|
+
name: stringray
|
56
|
+
type: :development
|
57
|
+
version_requirement:
|
58
|
+
version_requirements: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - ">="
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: "0"
|
63
|
+
version:
|
64
|
+
description: Mmmmagic
|
65
|
+
email:
|
66
|
+
- Refinery@elliottcable.com
|
67
|
+
executables: []
|
68
|
+
|
69
|
+
extensions:
|
70
|
+
- ext/sing/extconf.rb
|
71
|
+
extra_rdoc_files:
|
72
|
+
- ext/sing/extconf.rb
|
73
|
+
- ext/sing/sing.c
|
74
|
+
- lib/refinery/core_ext/class.rb
|
75
|
+
- lib/refinery/core_ext/object.rb
|
76
|
+
- lib/refinery.rb
|
77
|
+
- LICENSE.text
|
78
|
+
- README.markdown
|
79
|
+
files:
|
80
|
+
- ext/sing/extconf.rb
|
81
|
+
- ext/sing/sing.c
|
82
|
+
- lib/refinery/core_ext/class.rb
|
83
|
+
- lib/refinery/core_ext/object.rb
|
84
|
+
- lib/refinery.rb
|
85
|
+
- LICENSE.text
|
86
|
+
- Rakefile.rb
|
87
|
+
- README.markdown
|
88
|
+
- spec/refinery/core_ext/class_spec.rb
|
89
|
+
- spec/refinery_spec.rb
|
90
|
+
- spec/spec_helper.rb
|
91
|
+
- .manifest
|
92
|
+
- refinery.gemspec
|
93
|
+
has_rdoc: true
|
94
|
+
homepage: http://github.com/elliottcable/refinery
|
95
|
+
post_install_message:
|
96
|
+
rdoc_options:
|
97
|
+
- --line-numbers
|
98
|
+
- --inline-source
|
99
|
+
- --title
|
100
|
+
- Refinery
|
101
|
+
- --main
|
102
|
+
- README.markdown
|
103
|
+
require_paths:
|
104
|
+
- lib
|
105
|
+
- ext
|
106
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: "0"
|
111
|
+
version:
|
112
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
113
|
+
requirements:
|
114
|
+
- - ">="
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
version: "1.2"
|
117
|
+
version:
|
118
|
+
requirements: []
|
119
|
+
|
120
|
+
rubyforge_project: refinery
|
121
|
+
rubygems_version: 1.2.0
|
122
|
+
signing_key:
|
123
|
+
specification_version: 2
|
124
|
+
summary: Mmmmagic
|
125
|
+
test_files: []
|
126
|
+
|