maiha-record_dumper 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.
Files changed (2) hide show
  1. data/README +123 -0
  2. metadata +53 -0
data/README ADDED
@@ -0,0 +1,123 @@
1
+ RecordDumper
2
+ ============
3
+
4
+ Dumps ActiveRecord data with various formats.
5
+
6
+
7
+ Syntax
8
+ ======
9
+
10
+ ActiveRecord::Base#record_dumper(options = {})
11
+
12
+
13
+ Usage
14
+ =====
15
+
16
+ 1. default format
17
+
18
+ The default format is 'create!'. Just call 'record_dumper' method.
19
+
20
+ user = User.new(:name => 'maiha', :age => 14)
21
+ puts user.record_dumper.to_s
22
+
23
+ # =>
24
+ User.create!(
25
+ :id => nil,
26
+ :name => "maiha",
27
+ :age => 14
28
+ )
29
+
30
+
31
+ 2. other formats (create, save, save!)
32
+
33
+ Send the method directly to record_dumper object.
34
+
35
+ user = User.new(:name => 'maiha', :age => 14)
36
+ puts user.record_dumper.save.to_s
37
+
38
+ # =>
39
+ record = User.new
40
+ record[:id] = nil
41
+ record[:name] = "maiha"
42
+ record[:age] = 14
43
+ record.save
44
+
45
+
46
+ 3. SQL format
47
+
48
+ user = User.new(:name => 'maiha', :age => 14)
49
+ puts user.record_dumper.sql.to_s
50
+
51
+ # =>
52
+ INSERT INTO users VALUES (
53
+ NULL,
54
+ 'maiha',
55
+ 14
56
+ );
57
+
58
+
59
+ 4. with :delimiter option
60
+
61
+ Use :delimiter option as you like if you don't want line breaks.
62
+
63
+ user = User.new(:name => 'maiha', :age => 14)
64
+ puts user.record_dumper(:delimiter=>'').sql.to_s
65
+
66
+ # =>
67
+ INSERT INTO users VALUES (NULL, 'maiha',14);
68
+
69
+
70
+ 5. with :dependent option
71
+
72
+ You can get all associated records by using :dependent option.
73
+
74
+ class User < ActiveRecord::Base
75
+ has_one :address
76
+ end
77
+
78
+ user = User.create!(:name=>"maiha", :age=>14)
79
+ user.create_address(:city=>"Tokyo", :address=>"Akihabara")
80
+ puts user.record_dumper(:dependent=>true).sql.to_s
81
+
82
+ # =>
83
+ User.create!(
84
+ :id => nil,
85
+ :name => "maiha",
86
+ :age => 14
87
+ )
88
+
89
+ Address.create!(
90
+ :id => 1,
91
+ :city => "Tokyo",
92
+ :address => "Akihabara",
93
+ :user_id => 1
94
+ )
95
+
96
+
97
+
98
+ Enhancement
99
+ ===========
100
+
101
+ If you want your own format, create subclass of RecordDumper::Base
102
+ and define 'record' method in it.
103
+
104
+ class TableTr < ActiveRecord::RecordDumper::Base
105
+ def column(col, val)
106
+ "<td>#{val}</td>"
107
+ end
108
+
109
+ def record
110
+ "<tr>%s</tr>" % columns.join
111
+ end
112
+ end
113
+ ActiveRecord::RecordDumper.reload # don't forget this to enable new classes
114
+
115
+ user = User.new(:name => 'maiha', :age => 14)
116
+ puts user.record_dumper.table_tr.to_s
117
+
118
+ # =>
119
+ <tr><td></td><td>maiha</td><td>14</td></tr>
120
+
121
+
122
+ Copyright (c) 2008 maiha@wota.jp, released under the MIT license
123
+
metadata ADDED
@@ -0,0 +1,53 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: maiha-record_dumper
3
+ version: !ruby/object:Gem::Version
4
+ version: "0.1"
5
+ platform: ruby
6
+ authors:
7
+ - maiha
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2008-11-10 00:00:00 -08:00
13
+ default_executable:
14
+ dependencies: []
15
+
16
+ description: ""
17
+ email: maiha@wota.jp
18
+ executables: []
19
+
20
+ extensions: []
21
+
22
+ extra_rdoc_files: []
23
+
24
+ files:
25
+ - README
26
+ has_rdoc: true
27
+ homepage: http://github.com/maiha/record_dumper
28
+ post_install_message:
29
+ rdoc_options: []
30
+
31
+ require_paths:
32
+ - lib
33
+ required_ruby_version: !ruby/object:Gem::Requirement
34
+ requirements:
35
+ - - ">="
36
+ - !ruby/object:Gem::Version
37
+ version: "0"
38
+ version:
39
+ required_rubygems_version: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: "0"
44
+ version:
45
+ requirements: []
46
+
47
+ rubyforge_project:
48
+ rubygems_version: 1.2.0
49
+ signing_key:
50
+ specification_version: 2
51
+ summary: ""
52
+ test_files: []
53
+