attributes 3.5.0 → 3.6.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/{attributes-3.5.0.gem → attributes-3.6.0.gem} +0 -0
- data/gemspec.rb +1 -1
- data/lib/{attributes-3.5.0.rb → attributes-3.6.0.rb} +47 -3
- data/lib/attributes.rb +47 -3
- metadata +5 -6
- data/a.rb +0 -14
File without changes
|
data/gemspec.rb
CHANGED
@@ -18,7 +18,7 @@ Gem::Specification::new do |spec|
|
|
18
18
|
|
19
19
|
spec.has_rdoc = File::exist? "doc"
|
20
20
|
spec.test_suite_file = "test/#{ lib }.rb" if File::directory? "test"
|
21
|
-
spec.add_dependency 'pervasives', '>= 0'
|
21
|
+
spec.add_dependency 'pervasives', '>= 1.0'
|
22
22
|
|
23
23
|
spec.extensions << "extconf.rb" if File::exists? "extconf.rb"
|
24
24
|
|
@@ -1,7 +1,5 @@
|
|
1
|
-
require 'pervasives'
|
2
|
-
|
3
1
|
module Attributes
|
4
|
-
VERSION = '3.
|
2
|
+
VERSION = '3.6.0'
|
5
3
|
def self.version() VERSION end
|
6
4
|
|
7
5
|
def attributes *a, &b
|
@@ -17,6 +15,8 @@ module Attributes
|
|
17
15
|
ivar, getter, setter, query, banger =
|
18
16
|
"@#{ name }", "#{ name }", "#{ name }=", "#{ name }?", "#{ name }!"
|
19
17
|
|
18
|
+
raise NameError, "bad instance variable name '#{ ivar }'" if ivar =~ %r/[!?=]$/o
|
19
|
+
|
20
20
|
define_method(setter) do |value|
|
21
21
|
__pervasive__('instance_variable_set', ivar, value)
|
22
22
|
end
|
@@ -77,3 +77,47 @@ end
|
|
77
77
|
class Module
|
78
78
|
include Attributes
|
79
79
|
end
|
80
|
+
|
81
|
+
BEGIN {
|
82
|
+
unless defined? Pervasives
|
83
|
+
begin
|
84
|
+
require 'pervasives'
|
85
|
+
rescue LoadError
|
86
|
+
module Pervasives
|
87
|
+
VERSION = "1.0.0"
|
88
|
+
def self.version() VERSION end
|
89
|
+
class ::Class
|
90
|
+
def __pervasive__ m, *a, &b
|
91
|
+
(( Class.instance_method(m) rescue
|
92
|
+
Module.instance_method(m) rescue
|
93
|
+
Object.instance_method(m) )).bind(self).call(*a, &b)
|
94
|
+
end
|
95
|
+
end
|
96
|
+
class ::Module
|
97
|
+
def __pervasive__ m, *a, &b
|
98
|
+
(( Module.instance_method(m) rescue
|
99
|
+
Object.instance_method(m) )).bind(self).call(*a, &b)
|
100
|
+
end
|
101
|
+
end
|
102
|
+
class ::Object
|
103
|
+
def __pervasive__ m, *a, &b
|
104
|
+
(( Object.instance_method(m) )).bind(self).call(*a, &b)
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
class Proxy
|
109
|
+
instance_methods.each{|m| undef_method m unless m[%r/__/]}
|
110
|
+
def initialize obj
|
111
|
+
@obj = obj
|
112
|
+
end
|
113
|
+
def method_missing m, *a, &b
|
114
|
+
@obj.__pervasive__ m, *a, &b
|
115
|
+
end
|
116
|
+
def __obj__
|
117
|
+
@obj
|
118
|
+
end
|
119
|
+
end
|
120
|
+
end
|
121
|
+
end
|
122
|
+
end
|
123
|
+
}
|
data/lib/attributes.rb
CHANGED
@@ -1,7 +1,5 @@
|
|
1
|
-
require 'pervasives'
|
2
|
-
|
3
1
|
module Attributes
|
4
|
-
VERSION = '3.
|
2
|
+
VERSION = '3.6.0'
|
5
3
|
def self.version() VERSION end
|
6
4
|
|
7
5
|
def attributes *a, &b
|
@@ -17,6 +15,8 @@ module Attributes
|
|
17
15
|
ivar, getter, setter, query, banger =
|
18
16
|
"@#{ name }", "#{ name }", "#{ name }=", "#{ name }?", "#{ name }!"
|
19
17
|
|
18
|
+
raise NameError, "bad instance variable name '#{ ivar }'" if ivar =~ %r/[!?=]$/o
|
19
|
+
|
20
20
|
define_method(setter) do |value|
|
21
21
|
__pervasive__('instance_variable_set', ivar, value)
|
22
22
|
end
|
@@ -77,3 +77,47 @@ end
|
|
77
77
|
class Module
|
78
78
|
include Attributes
|
79
79
|
end
|
80
|
+
|
81
|
+
BEGIN {
|
82
|
+
unless defined? Pervasives
|
83
|
+
begin
|
84
|
+
require 'pervasives'
|
85
|
+
rescue LoadError
|
86
|
+
module Pervasives
|
87
|
+
VERSION = "1.0.0"
|
88
|
+
def self.version() VERSION end
|
89
|
+
class ::Class
|
90
|
+
def __pervasive__ m, *a, &b
|
91
|
+
(( Class.instance_method(m) rescue
|
92
|
+
Module.instance_method(m) rescue
|
93
|
+
Object.instance_method(m) )).bind(self).call(*a, &b)
|
94
|
+
end
|
95
|
+
end
|
96
|
+
class ::Module
|
97
|
+
def __pervasive__ m, *a, &b
|
98
|
+
(( Module.instance_method(m) rescue
|
99
|
+
Object.instance_method(m) )).bind(self).call(*a, &b)
|
100
|
+
end
|
101
|
+
end
|
102
|
+
class ::Object
|
103
|
+
def __pervasive__ m, *a, &b
|
104
|
+
(( Object.instance_method(m) )).bind(self).call(*a, &b)
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
class Proxy
|
109
|
+
instance_methods.each{|m| undef_method m unless m[%r/__/]}
|
110
|
+
def initialize obj
|
111
|
+
@obj = obj
|
112
|
+
end
|
113
|
+
def method_missing m, *a, &b
|
114
|
+
@obj.__pervasive__ m, *a, &b
|
115
|
+
end
|
116
|
+
def __obj__
|
117
|
+
@obj
|
118
|
+
end
|
119
|
+
end
|
120
|
+
end
|
121
|
+
end
|
122
|
+
end
|
123
|
+
}
|
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: 3.
|
7
|
-
date: 2007-
|
6
|
+
version: 3.6.0
|
7
|
+
date: 2007-09-08 00:00:00 -06:00
|
8
8
|
summary: attributes
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -29,13 +29,12 @@ post_install_message:
|
|
29
29
|
authors:
|
30
30
|
- Ara T. Howard
|
31
31
|
files:
|
32
|
-
-
|
33
|
-
- attributes-3.5.0.gem
|
32
|
+
- attributes-3.6.0.gem
|
34
33
|
- gemspec.rb
|
35
34
|
- gen_readme.rb
|
36
35
|
- install.rb
|
37
36
|
- lib
|
38
|
-
- lib/attributes-3.
|
37
|
+
- lib/attributes-3.6.0.rb
|
39
38
|
- lib/attributes.rb
|
40
39
|
- README
|
41
40
|
- README.tmpl
|
@@ -65,5 +64,5 @@ dependencies:
|
|
65
64
|
requirements:
|
66
65
|
- - ">="
|
67
66
|
- !ruby/object:Gem::Version
|
68
|
-
version: "0"
|
67
|
+
version: "1.0"
|
69
68
|
version:
|