autoattr 0.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.
- data/lib/autoattr.rb +11 -0
- data/test/autoattr_test.rb +17 -0
- metadata +63 -0
data/lib/autoattr.rb
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
module AutoAttr
|
2
|
+
def method_missing(method, *args, &block)
|
3
|
+
if method.to_s.include? "="
|
4
|
+
attr = method.to_s.sub('=','')
|
5
|
+
self.class.class_eval { attr_accessor attr.to_sym }
|
6
|
+
instance_variable_set "@#{attr.to_s}", args[0]
|
7
|
+
else
|
8
|
+
super(method, *args, &block)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require './lib/autoattr'
|
3
|
+
|
4
|
+
class AutoAttrTest < Test::Unit::TestCase
|
5
|
+
include AutoAttr
|
6
|
+
|
7
|
+
def test_attr_accessor
|
8
|
+
self.hello_guys = 'hello guys!'
|
9
|
+
assert self.hello_guys == 'hello guys!', "Testing attr_writer uses method_missing to attr attr_accessor to class."
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_retrieves_nil
|
13
|
+
assert_raise NoMethodError do
|
14
|
+
self.should_raise_nomethoderror
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
metadata
ADDED
@@ -0,0 +1,63 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: autoattr
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Jamil Bou Kheir
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2012-11-13 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: test
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :development
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0'
|
30
|
+
description: Override Ruby's method_missing? to dynamically add attr_accessible
|
31
|
+
email: j@kokohub.com
|
32
|
+
executables: []
|
33
|
+
extensions: []
|
34
|
+
extra_rdoc_files: []
|
35
|
+
files:
|
36
|
+
- lib/autoattr.rb
|
37
|
+
- test/autoattr_test.rb
|
38
|
+
homepage: https://github.com/jamillion/autoattr
|
39
|
+
licenses: []
|
40
|
+
post_install_message:
|
41
|
+
rdoc_options: []
|
42
|
+
require_paths:
|
43
|
+
- lib
|
44
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
45
|
+
none: false
|
46
|
+
requirements:
|
47
|
+
- - ! '>='
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: 1.8.7
|
50
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
51
|
+
none: false
|
52
|
+
requirements:
|
53
|
+
- - ! '>='
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '0'
|
56
|
+
requirements: []
|
57
|
+
rubyforge_project:
|
58
|
+
rubygems_version: 1.8.24
|
59
|
+
signing_key:
|
60
|
+
specification_version: 3
|
61
|
+
summary: Automagic Attributes
|
62
|
+
test_files:
|
63
|
+
- test/autoattr_test.rb
|