autoattr 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/lib/autoattr.rb +11 -0
  2. data/test/autoattr_test.rb +17 -0
  3. metadata +63 -0
@@ -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