arbs 0.0.3 → 0.1.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.
@@ -15,4 +15,21 @@ class BehaviorAppender #:nodoc:
15
15
  end
16
16
  end
17
17
  end
18
+
19
+ [:string, :text, :integer, :datetime, :boolean].each do |column_type|
20
+ define_method column_type do |*args|
21
+ args.pop if args.last.is_a?(Hash)
22
+ args.each do |arg|
23
+ klass.class_eval do
24
+ attr_reader arg.to_sym unless instance_methods.include?(arg.to_s)
25
+ attr_writer arg.to_sym unless instance_methods.include?("#{arg}=")
26
+ if column_type == :boolean
27
+ define_method "#{arg}?".to_sym do
28
+ self.send name
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
18
35
  end
@@ -33,7 +33,7 @@ Gem::manage_gems
33
33
  specification = Gem::Specification.new do |s|
34
34
  s.name = "arbs"
35
35
  s.summary = "A duck that acts like ActiveRecord::Base, but doesn't have any of the AR::B functionality."
36
- s.version = "0.0.3"
36
+ s.version = "0.1.0"
37
37
  s.author = 'Jay Fields'
38
38
  s.description = "A duck that acts like ActiveRecord::Base, but doesn't have any of the AR::B functionality."
39
39
  s.homepage = 'http://arbs.rubyforge.org'
@@ -42,5 +42,52 @@ unit_tests do
42
42
  BehaviorAppender.new(klass).column("foo", "boolean")
43
43
  assert_equal true, klass.instance_methods.include?("foo?")
44
44
  end
45
+
46
+ test "string columns are created" do
47
+ klass = Class.new
48
+ BehaviorAppender.new(klass).string("foo")
49
+ assert_equal true, klass.instance_methods.include?("foo")
50
+ end
51
+
52
+ test "datetime columns are created" do
53
+ klass = Class.new
54
+ BehaviorAppender.new(klass).datetime("foo")
55
+ assert_equal true, klass.instance_methods.include?("foo")
56
+ end
57
+
58
+ test "boolean columns are created" do
59
+ klass = Class.new
60
+ BehaviorAppender.new(klass).boolean("foo")
61
+ assert_equal true, klass.instance_methods.include?("foo")
62
+ end
63
+
64
+ test "boolean columns are created with writer" do
65
+ klass = Class.new
66
+ BehaviorAppender.new(klass).boolean("foo")
67
+ assert_equal true, klass.instance_methods.include?("foo=")
68
+ end
69
+
70
+ test "boolean columns are created with ?" do
71
+ klass = Class.new
72
+ BehaviorAppender.new(klass).boolean("foo")
73
+ assert_equal true, klass.instance_methods.include?("foo?")
74
+ end
45
75
 
76
+ test "integer columns are created" do
77
+ klass = Class.new
78
+ BehaviorAppender.new(klass).integer("foo")
79
+ assert_equal true, klass.instance_methods.include?("foo")
80
+ end
81
+
82
+ test "text columns are created" do
83
+ klass = Class.new
84
+ BehaviorAppender.new(klass).text("foo")
85
+ assert_equal true, klass.instance_methods.include?("foo")
86
+ end
87
+
88
+ test "string options are ignored" do
89
+ klass = Class.new
90
+ BehaviorAppender.new(klass).string("foo" => "bar")
91
+ assert_equal true, klass.instance_methods(false).empty?
92
+ end
46
93
  end
metadata CHANGED
@@ -1,33 +1,26 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.9.2
3
- specification_version: 1
4
2
  name: arbs
5
3
  version: !ruby/object:Gem::Version
6
- version: 0.0.3
7
- date: 2007-11-28 00:00:00 -05:00
8
- summary: A duck that acts like ActiveRecord::Base, but doesn't have any of the AR::B functionality.
9
- require_paths:
10
- - lib
11
- email:
12
- homepage: http://arbs.rubyforge.org
13
- rubyforge_project: arbs
14
- description: A duck that acts like ActiveRecord::Base, but doesn't have any of the AR::B functionality.
15
- autorequire: arbs
16
- default_executable:
17
- bindir: bin
18
- has_rdoc: true
19
- required_ruby_version: !ruby/object:Gem::Version::Requirement
20
- requirements:
21
- - - ">"
22
- - !ruby/object:Gem::Version
23
- version: 0.0.0
24
- version:
25
- platform: ruby
26
- signing_key:
27
- cert_chain:
28
- post_install_message:
4
+ version: 0.1.0
5
+ platform: ""
29
6
  authors:
30
7
  - Jay Fields
8
+ autorequire: arbs
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2007-12-21 00:00:00 -08:00
13
+ default_executable:
14
+ dependencies: []
15
+
16
+ description: A duck that acts like ActiveRecord::Base, but doesn't have any of the AR::B functionality.
17
+ email:
18
+ executables: []
19
+
20
+ extensions: []
21
+
22
+ extra_rdoc_files:
23
+ - README
31
24
  files:
32
25
  - lib/active_record/base.rb
33
26
  - lib/active_record/schema.rb
@@ -42,21 +35,35 @@ files:
42
35
  - test/test_helper.rb
43
36
  - rakefile.rb
44
37
  - README
45
- test_files:
46
- - test/all_tests.rb
38
+ has_rdoc: true
39
+ homepage: http://arbs.rubyforge.org
40
+ post_install_message:
47
41
  rdoc_options:
48
42
  - --title
49
43
  - arbs
50
44
  - --main
51
45
  - README
52
46
  - --line-numbers
53
- extra_rdoc_files:
54
- - README
55
- executables: []
56
-
57
- extensions: []
58
-
47
+ require_paths:
48
+ - lib
49
+ required_ruby_version: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: "0"
54
+ version:
55
+ required_rubygems_version: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: "0"
60
+ version:
59
61
  requirements: []
60
62
 
61
- dependencies: []
62
-
63
+ rubyforge_project: arbs
64
+ rubygems_version: 0.9.5
65
+ signing_key:
66
+ specification_version: 2
67
+ summary: A duck that acts like ActiveRecord::Base, but doesn't have any of the AR::B functionality.
68
+ test_files:
69
+ - test/all_tests.rb