attributes 4.0.0 → 4.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README +37 -1
- data/README.tmpl +4 -0
- data/lib/{attributes-4.0.0.rb → attributes-4.1.0.rb} +8 -2
- data/lib/attributes.rb +8 -2
- data/samples/f.rb +21 -0
- metadata +4 -3
data/README
CHANGED
@@ -45,6 +45,10 @@ SYNOPSIS
|
|
45
45
|
all this in < 100 lines of code
|
46
46
|
|
47
47
|
HISTORY
|
48
|
+
4.1.0
|
49
|
+
- 4.0.0 introduced a bug where a query (foo?) would not initialize a var -
|
50
|
+
4.1.0 fixes that
|
51
|
+
|
48
52
|
4.0.0
|
49
53
|
- removed dependancy on, and bundle of, pervasives
|
50
54
|
- faster. as fast as normal method definition.
|
@@ -226,5 +230,37 @@ SAMPLES
|
|
226
230
|
|
227
231
|
~ > ruby samples/e.rb
|
228
232
|
|
229
|
-
#<Config:
|
233
|
+
#<Config:0x1ffb8 @port=80, @host="codeforpeople.org">
|
234
|
+
|
235
|
+
|
236
|
+
<========< samples/f.rb >========>
|
237
|
+
|
238
|
+
~ > cat samples/f.rb
|
239
|
+
|
240
|
+
#
|
241
|
+
# of course attributes works as well at class/module level as at instance
|
242
|
+
# level
|
243
|
+
#
|
244
|
+
require 'attributes'
|
245
|
+
|
246
|
+
module Logging
|
247
|
+
Level_names = {
|
248
|
+
0 => 'INFO',
|
249
|
+
# ...
|
250
|
+
42 => 'DEBUG',
|
251
|
+
}
|
252
|
+
|
253
|
+
class << self
|
254
|
+
attribute 'level' => 42
|
255
|
+
attribute('level_name'){ Level_names[level] }
|
256
|
+
end
|
257
|
+
end
|
258
|
+
|
259
|
+
p Logging.level
|
260
|
+
p Logging.level_name
|
261
|
+
|
262
|
+
~ > ruby samples/f.rb
|
263
|
+
|
264
|
+
42
|
265
|
+
"DEBUG"
|
230
266
|
|
data/README.tmpl
CHANGED
@@ -45,6 +45,10 @@ SYNOPSIS
|
|
45
45
|
all this in < 100 lines of code
|
46
46
|
|
47
47
|
HISTORY
|
48
|
+
4.1.0
|
49
|
+
- 4.0.0 introduced a bug where a query (foo?) would not initialize a var -
|
50
|
+
4.1.0 fixes that
|
51
|
+
|
48
52
|
4.0.0
|
49
53
|
- removed dependancy on, and bundle of, pervasives
|
50
54
|
- faster. as fast as normal method definition.
|
@@ -1,5 +1,5 @@
|
|
1
1
|
module Attributes
|
2
|
-
Attributes::VERSION = '4.
|
2
|
+
Attributes::VERSION = '4.1.0' unless defined? Attributes::VERSION
|
3
3
|
def self.version() Attributes::VERSION end
|
4
4
|
|
5
5
|
class List < ::Array
|
@@ -49,21 +49,27 @@ module Attributes
|
|
49
49
|
def #{ name }=(value)
|
50
50
|
@#{ name } = value
|
51
51
|
end
|
52
|
+
code
|
52
53
|
|
54
|
+
module_eval <<-code
|
53
55
|
def #{ name }(*value)
|
54
56
|
return self.#{ name } = value.first unless value.empty?
|
55
57
|
#{ name }! unless defined? @#{ name }
|
56
58
|
@#{ name }
|
57
59
|
end
|
60
|
+
code
|
58
61
|
|
62
|
+
module_eval <<-code
|
59
63
|
def #{ name }!
|
60
64
|
initializer = ObjectSpace._id2ref #{ initializer_id }
|
61
65
|
self.#{ name } = initializer.call(self)
|
62
66
|
@#{ name }
|
63
67
|
end
|
68
|
+
code
|
64
69
|
|
70
|
+
module_eval <<-code
|
65
71
|
def #{ name }?
|
66
|
-
|
72
|
+
#{ name }
|
67
73
|
end
|
68
74
|
code
|
69
75
|
|
data/lib/attributes.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
module Attributes
|
2
|
-
Attributes::VERSION = '4.
|
2
|
+
Attributes::VERSION = '4.1.0' unless defined? Attributes::VERSION
|
3
3
|
def self.version() Attributes::VERSION end
|
4
4
|
|
5
5
|
class List < ::Array
|
@@ -49,21 +49,27 @@ module Attributes
|
|
49
49
|
def #{ name }=(value)
|
50
50
|
@#{ name } = value
|
51
51
|
end
|
52
|
+
code
|
52
53
|
|
54
|
+
module_eval <<-code
|
53
55
|
def #{ name }(*value)
|
54
56
|
return self.#{ name } = value.first unless value.empty?
|
55
57
|
#{ name }! unless defined? @#{ name }
|
56
58
|
@#{ name }
|
57
59
|
end
|
60
|
+
code
|
58
61
|
|
62
|
+
module_eval <<-code
|
59
63
|
def #{ name }!
|
60
64
|
initializer = ObjectSpace._id2ref #{ initializer_id }
|
61
65
|
self.#{ name } = initializer.call(self)
|
62
66
|
@#{ name }
|
63
67
|
end
|
68
|
+
code
|
64
69
|
|
70
|
+
module_eval <<-code
|
65
71
|
def #{ name }?
|
66
|
-
|
72
|
+
#{ name }
|
67
73
|
end
|
68
74
|
code
|
69
75
|
|
data/samples/f.rb
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
#
|
2
|
+
# of course attributes works as well at class/module level as at instance
|
3
|
+
# level
|
4
|
+
#
|
5
|
+
require 'attributes'
|
6
|
+
|
7
|
+
module Logging
|
8
|
+
Level_names = {
|
9
|
+
0 => 'INFO',
|
10
|
+
# ...
|
11
|
+
42 => 'DEBUG',
|
12
|
+
}
|
13
|
+
|
14
|
+
class << self
|
15
|
+
attribute 'level' => 42
|
16
|
+
attribute('level_name'){ Level_names[level] }
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
p Logging.level
|
21
|
+
p Logging.level_name
|
metadata
CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.2
|
|
3
3
|
specification_version: 1
|
4
4
|
name: attributes
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 4.
|
7
|
-
date: 2007-10-
|
6
|
+
version: 4.1.0
|
7
|
+
date: 2007-10-18 00:00:00 -06:00
|
8
8
|
summary: attributes
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -34,7 +34,7 @@ files:
|
|
34
34
|
- gen_readme.rb
|
35
35
|
- install.rb
|
36
36
|
- lib
|
37
|
-
- lib/attributes-4.
|
37
|
+
- lib/attributes-4.1.0.rb
|
38
38
|
- lib/attributes.rb
|
39
39
|
- README
|
40
40
|
- README.tmpl
|
@@ -44,6 +44,7 @@ files:
|
|
44
44
|
- samples/c.rb
|
45
45
|
- samples/d.rb
|
46
46
|
- samples/e.rb
|
47
|
+
- samples/f.rb
|
47
48
|
test_files: []
|
48
49
|
|
49
50
|
rdoc_options: []
|