chendo-pretty_activerecord 1.0.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.
@@ -0,0 +1,7 @@
1
+ require 'test/unit'
2
+ require File.dirname(__FILE__) + '/../lib/pretty_activerecord'
3
+ require 'rubygems'
4
+ gem 'Shoulda'
5
+ require 'Shoulda'
6
+ gem 'mocha'
7
+ require 'mocha'
@@ -0,0 +1,59 @@
1
+ require File.dirname(__FILE__) + '/test_helper.rb'
2
+
3
+ class TestPrettyActiverecord < Test::Unit::TestCase
4
+ context "ActiveRecord with columns" do
5
+ setup do
6
+ @klass = Class.new
7
+ ::Person = @klass
8
+ @klass.send(:include, PrettyActiveRecord)
9
+ column_names = %w[id first_name last_name bio age height date_of_birth human]
10
+ @klass.stubs(:column_names).returns(column_names)
11
+ @klass.stubs(:columns_hash).returns({
12
+ 'id' => stub(:type => :integer, :limit => 4),
13
+ 'first_name' => stub(:type => :string, :limit => 255),
14
+ 'last_name' => stub(:type => :string, :limit => 255),
15
+ 'bio' => stub(:type => :text, :limit => nil),
16
+ 'age' => stub(:type => :integer, :limit => nil),
17
+ 'height' => stub(:type => :decimal, :limit => 8),
18
+ 'date_of_birth' => stub(:type => :datetime, :limit => nil),
19
+ 'human' => stub(:type => :boolean, :limit => nil)
20
+ })
21
+ @klass.any_instance.stubs(:has_attribute?).returns(true)
22
+ @klass.send(:define_method, :attribute_for_inspect) do |name|
23
+ self.send(name.to_sym).inspect
24
+ end
25
+ @klass.send(:attr_accessor, * column_names.map { |e| e.to_sym })
26
+ end
27
+
28
+ context "with populated instance" do
29
+ setup do
30
+ @person = @klass.new
31
+ @person.first_name = 'Jack'
32
+ @person.last_name = 'Chen'
33
+ @person.bio = 'I work at Mocra'
34
+ @person.age = 19
35
+ @person.height = 169.4
36
+ @person.date_of_birth = DateTime.new(1988,10,29)
37
+ @person.human = true
38
+ @person.date_of_birth.stubs(:inspect).returns("1988-10-29 00:00:00".inspect)
39
+
40
+ end
41
+
42
+ should "pretty print object" do
43
+ expected = <<-EOS.gsub(/^ /, '')
44
+ Person:
45
+ int(4) id : nil
46
+ str(255) first_name : "Jack"
47
+ str(255) last_name : "Chen"
48
+ text bio : "I work at Mocra"
49
+ int age : 19
50
+ decimal(8) height : 169.4
51
+ datetime date_of_birth: "1988-10-29 00:00:00"
52
+ boolean human : true
53
+ EOS
54
+ assert_equal(expected, @person.inspect)
55
+ end
56
+ end
57
+ end
58
+
59
+ end
metadata ADDED
@@ -0,0 +1,76 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: chendo-pretty_activerecord
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Jack Chen
8
+ - Dr Nic Williams
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+
13
+ date: 2008-10-28 00:00:00 -07:00
14
+ default_executable:
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: newgem
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 1.0.1
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: hoe
27
+ version_requirement:
28
+ version_requirements: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 1.8.2
33
+ version:
34
+ description: "Makes printing ActiveRecord objects pretty (via #inspect method)."
35
+ email:
36
+ - chendo@chendo.net
37
+ - drnicwilliams@gmail.com
38
+ executables: []
39
+
40
+ extensions: []
41
+
42
+ extra_rdoc_files: []
43
+
44
+ files:
45
+ - test/test_helper.rb
46
+ - test/test_pretty_activerecord.rb
47
+ has_rdoc: true
48
+ homepage: http://github.com/chendo/pretty_activerecord
49
+ post_install_message:
50
+ rdoc_options:
51
+ - --main
52
+ - README.txt
53
+ require_paths:
54
+ - lib
55
+ required_ruby_version: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: "0"
60
+ version:
61
+ required_rubygems_version: !ruby/object:Gem::Requirement
62
+ requirements:
63
+ - - ">="
64
+ - !ruby/object:Gem::Version
65
+ version: "0"
66
+ version:
67
+ requirements: []
68
+
69
+ rubyforge_project: pretty_activerecord
70
+ rubygems_version: 1.2.0
71
+ signing_key:
72
+ specification_version: 2
73
+ summary: "Makes printing ActiveRecord objects pretty (via #inspect method)."
74
+ test_files:
75
+ - test/test_helper.rb
76
+ - test/test_pretty_activerecord.rb