better_delegation 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,5 @@
1
+ README.rdoc
2
+ lib/**/*.rb
3
+ bin/*
4
+ features/**/*.feature
5
+ LICENSE
@@ -0,0 +1,5 @@
1
+ *.sw?
2
+ .DS_Store
3
+ coverage
4
+ rdoc
5
+ pkg
data/LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2009 Josh N. Abbott
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,22 @@
1
+ = better_delegation
2
+
3
+ Better method delegation for ActiveRecord. Specifically when it comes to handling 'nil' objects.
4
+
5
+ While Rails does support method delegation to a nil object, it will always return 'nil' if the object delegated to is nil.
6
+
7
+ This gem will return whatever the object delegated to would return. It's especially useful for example when you have a method that would typically return 'false' (because that's what the database column default is set to). For example an `is_active` method might return false by default. When the delegating object calls `is_active` on a nil object, the nil object would return 'false', not nil.
8
+
9
+ == Note on Patches/Pull Requests
10
+
11
+ * Fork the project.
12
+ * Make your feature addition or bug fix.
13
+ * Add tests for it. This is important so I don't break it in a
14
+ future version unintentionally.
15
+ * Commit, do not mess with rakefile, version, or history.
16
+ (if you want to have your own version, that is fine but
17
+ bump version in a commit by itself I can ignore when I pull)
18
+ * Send me a pull request. Bonus points for topic branches.
19
+
20
+ == Copyright
21
+
22
+ Copyright (c) 2009 Josh N. Abbott. See LICENSE for details.
@@ -0,0 +1,48 @@
1
+ require 'rubygems'
2
+ require 'rake'
3
+
4
+ begin
5
+ require 'jeweler'
6
+ Jeweler::Tasks.new do |gem|
7
+ gem.name = "better_delegation"
8
+ gem.summary = %Q{Extends the Object#delegate method to work better with `nil` objects.}
9
+ gem.description = %Q{Calling a delegated method on a nil object with better_delegation won't just return nil, it will return the default column value as specified by object being delegated to.}
10
+ gem.email = "joshnabbott@gmail.com"
11
+ gem.homepage = "http://github.com/joshnabbott/better_delegation"
12
+ gem.authors = ["Josh N. Abbott"]
13
+ gem.add_development_dependency "rspec", '>= 1.0'
14
+ # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
15
+ end
16
+ rescue LoadError
17
+ puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
18
+ end
19
+
20
+ require 'spec/rake/spectask'
21
+ Spec::Rake::SpecTask.new(:spec) do |spec|
22
+ spec.libs << 'lib' << 'spec'
23
+ spec.spec_files = FileList['spec/**/*_spec.rb']
24
+ end
25
+
26
+ Spec::Rake::SpecTask.new(:rcov) do |spec|
27
+ spec.libs << 'lib' << 'spec'
28
+ spec.pattern = 'spec/**/*_spec.rb'
29
+ spec.rcov = true
30
+ end
31
+
32
+ task :spec => :check_dependencies
33
+
34
+ task :default => :spec
35
+
36
+ require 'rake/rdoctask'
37
+ Rake::RDocTask.new do |rdoc|
38
+ if File.exist?('VERSION')
39
+ version = File.read('VERSION')
40
+ else
41
+ version = ""
42
+ end
43
+
44
+ rdoc.rdoc_dir = 'rdoc'
45
+ rdoc.title = "better_delegation #{version}"
46
+ rdoc.rdoc_files.include('README*')
47
+ rdoc.rdoc_files.include('lib/**/*.rb')
48
+ end
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 1.0.0
@@ -0,0 +1,60 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run `rake gemspec`
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{better_delegation}
8
+ s.version = "1.0.0"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Josh N. Abbott"]
12
+ s.date = %q{2009-11-11}
13
+ s.description = %q{Calling a delegated method on a nil object with better_delegation won't just return nil, it will return the default column value as specified by object being delegated to.}
14
+ s.email = %q{joshnabbott@gmail.com}
15
+ s.extra_rdoc_files = [
16
+ "LICENSE",
17
+ "README.rdoc"
18
+ ]
19
+ s.files = [
20
+ ".document",
21
+ ".gitignore",
22
+ "LICENSE",
23
+ "README.rdoc",
24
+ "Rakefile",
25
+ "VERSION",
26
+ "better_delegation.gemspec",
27
+ "init.rb",
28
+ "lib/active_support/core_ext/module/better_delegation.rb",
29
+ "lib/better_delegation.rb",
30
+ "rails/init.rb",
31
+ "spec/better_delegation_spec.rb",
32
+ "spec/db/database.yml",
33
+ "spec/db/schema.rb",
34
+ "spec/debug.log",
35
+ "spec/spec_helper.rb"
36
+ ]
37
+ s.homepage = %q{http://github.com/joshnabbott/better_delegation}
38
+ s.rdoc_options = ["--charset=UTF-8"]
39
+ s.require_paths = ["lib"]
40
+ s.rubygems_version = %q{1.3.5}
41
+ s.summary = %q{Extends the Object#delegate method to work better with `nil` objects.}
42
+ s.test_files = [
43
+ "spec/better_delegation_spec.rb",
44
+ "spec/db/schema.rb",
45
+ "spec/spec_helper.rb"
46
+ ]
47
+
48
+ if s.respond_to? :specification_version then
49
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
50
+ s.specification_version = 3
51
+
52
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
53
+ s.add_development_dependency(%q<rspec>, [">= 1.0"])
54
+ else
55
+ s.add_dependency(%q<rspec>, [">= 1.0"])
56
+ end
57
+ else
58
+ s.add_dependency(%q<rspec>, [">= 1.0"])
59
+ end
60
+ end
data/init.rb ADDED
@@ -0,0 +1 @@
1
+ require File.join(File.dirname(__FILE__), 'rails', 'init')
@@ -0,0 +1,33 @@
1
+ module ActiveRecord
2
+ class Base
3
+ class << self
4
+ def delegate(*methods)
5
+ options = methods.pop
6
+ unless options.is_a?(Hash) && to = options[:to]
7
+ raise ArgumentError, "Delegation needs a target. Supply an options hash with a :to key as the last argument (e.g. delegate :hello, :to => :greeter)."
8
+ end
9
+
10
+ if options[:prefix] == true && options[:to].to_s =~ /^[^a-z_]/
11
+ raise ArgumentError, "Can only automatically set the delegation prefix when delegating to a method."
12
+ end
13
+
14
+ prefix = options[:prefix] && "#{options[:prefix] == true ? to : options[:prefix]}_"
15
+
16
+ methods.each do |method|
17
+ define_method method do
18
+ send(:delegator_for, to).send(method)
19
+ end
20
+ define_method "#{method}=" do |value|
21
+ send(:delegator_for, to).send("#{method}=", value)
22
+ end
23
+ end
24
+ end
25
+ end
26
+
27
+ protected
28
+ def delegator_for(association)
29
+ send("#{association}=", self.class.reflect_on_association(association).klass.new) if send(association).nil?
30
+ send(association)
31
+ end
32
+ end
33
+ end
@@ -0,0 +1 @@
1
+ require File.join(File.dirname(__FILE__), 'active_support', 'core_ext', 'module', 'better_delegation')
@@ -0,0 +1 @@
1
+ require File.join(File.dirname(__FILE__), '..', 'lib', 'better_delegation')
@@ -0,0 +1,44 @@
1
+ require File.dirname(__FILE__) + '/spec_helper'
2
+
3
+ class BillingAddress < ActiveRecord::Base
4
+ belongs_to :person
5
+ end
6
+
7
+ class Person < ActiveRecord::Base
8
+ has_one :billing_address
9
+ delegate :address_one, :is_primary_address, :to => :billing_address
10
+ end
11
+
12
+ describe "delegate" do
13
+ before(:each) do
14
+ @josh = Person.new(:name => 'Josh')
15
+ end
16
+
17
+ describe "Delegator" do
18
+ it "should respond_to delegate" do
19
+ ActiveRecord::Base.should respond_to('delegate')
20
+ end
21
+ end
22
+
23
+ it "should not raise an error with a nil assocation" do
24
+ lambda { @josh.address_one }.should_not raise_error(NoMethodError)
25
+ end
26
+
27
+ it "should create an empty instance of association when there's a nil association" do
28
+ @josh.address_one
29
+ @josh.billing_address.should_not be_nil
30
+ end
31
+
32
+ it "should return associations default value for method delegated to" do
33
+ @josh.address_one.should be_nil
34
+ end
35
+
36
+ it "should return associations default value for method delegated to" do
37
+ @josh.is_primary_address.should eql(false)
38
+ end
39
+
40
+ it "should return the value of the method delegated to" do
41
+ @billing_address = @josh.build_billing_address(:address_one => '123 Happy Lane')
42
+ @josh.address_one.should eql('123 Happy Lane')
43
+ end
44
+ end
@@ -0,0 +1,3 @@
1
+ sqlite3:
2
+ :adapter: sqlite3
3
+ :database: ':memory:'
@@ -0,0 +1,11 @@
1
+ ActiveRecord::Schema.define(:version => 0) do
2
+ create_table :people, :force => true do |t|
3
+ t.string :name
4
+ end
5
+
6
+ create_table :billing_addresses, :force => true do |t|
7
+ t.belongs_to :person
8
+ t.string :address_one
9
+ t.boolean :is_primary_address, :null => false, :default => false
10
+ end
11
+ end
@@ -0,0 +1,869 @@
1
+ # Logfile created on Wed Nov 11 10:32:35 -0800 2009 by /
2
+ SQL (0.2ms) select sqlite_version(*)
3
+ SQL (0.1ms)  SELECT name
4
+ FROM sqlite_master
5
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
6
+ 
7
+ SQL (0.2ms) CREATE TABLE "people" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255)) 
8
+ SQL (0.1ms)  SELECT name
9
+ FROM sqlite_master
10
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
11
+ 
12
+ SQL (0.1ms) CREATE TABLE "billing_addresses" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "person_id" integer, "address_one" varchar(255)) 
13
+ SQL (0.1ms)  SELECT name
14
+ FROM sqlite_master
15
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
16
+ 
17
+ SQL (0.1ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL) 
18
+ SQL (0.1ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
19
+ SQL (0.1ms)  SELECT name
20
+ FROM sqlite_master
21
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
22
+ 
23
+ SQL (0.0ms) SELECT version FROM "schema_migrations"
24
+ SQL (0.1ms) INSERT INTO "schema_migrations" (version) VALUES ('0')
25
+ SQL (0.2ms) select sqlite_version(*)
26
+ SQL (0.1ms)  SELECT name
27
+ FROM sqlite_master
28
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
29
+ 
30
+ SQL (0.2ms) CREATE TABLE "people" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255)) 
31
+ SQL (0.1ms)  SELECT name
32
+ FROM sqlite_master
33
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
34
+ 
35
+ SQL (0.1ms) CREATE TABLE "billing_addresses" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "person_id" integer, "address_one" varchar(255)) 
36
+ SQL (0.1ms)  SELECT name
37
+ FROM sqlite_master
38
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
39
+ 
40
+ SQL (0.1ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL) 
41
+ SQL (0.1ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
42
+ SQL (0.2ms)  SELECT name
43
+ FROM sqlite_master
44
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
45
+ 
46
+ SQL (0.0ms) SELECT version FROM "schema_migrations"
47
+ SQL (0.1ms) INSERT INTO "schema_migrations" (version) VALUES ('0')
48
+ SQL (0.2ms) select sqlite_version(*)
49
+ SQL (0.1ms)  SELECT name
50
+ FROM sqlite_master
51
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
52
+ 
53
+ SQL (0.2ms) CREATE TABLE "people" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255)) 
54
+ SQL (0.1ms)  SELECT name
55
+ FROM sqlite_master
56
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
57
+ 
58
+ SQL (0.1ms) CREATE TABLE "billing_addresses" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "person_id" integer, "address_one" varchar(255)) 
59
+ SQL (0.1ms)  SELECT name
60
+ FROM sqlite_master
61
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
62
+ 
63
+ SQL (0.1ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL) 
64
+ SQL (0.1ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
65
+ SQL (0.1ms)  SELECT name
66
+ FROM sqlite_master
67
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
68
+ 
69
+ SQL (0.0ms) SELECT version FROM "schema_migrations"
70
+ SQL (0.1ms) INSERT INTO "schema_migrations" (version) VALUES ('0')
71
+ SQL (0.2ms) select sqlite_version(*)
72
+ SQL (0.1ms)  SELECT name
73
+ FROM sqlite_master
74
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
75
+ 
76
+ SQL (0.2ms) CREATE TABLE "people" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255)) 
77
+ SQL (0.1ms)  SELECT name
78
+ FROM sqlite_master
79
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
80
+ 
81
+ SQL (0.1ms) CREATE TABLE "billing_addresses" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "person_id" integer, "address_one" varchar(255)) 
82
+ SQL (0.1ms)  SELECT name
83
+ FROM sqlite_master
84
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
85
+ 
86
+ SQL (0.1ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL) 
87
+ SQL (0.1ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
88
+ SQL (0.1ms)  SELECT name
89
+ FROM sqlite_master
90
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
91
+ 
92
+ SQL (0.0ms) SELECT version FROM "schema_migrations"
93
+ SQL (0.1ms) INSERT INTO "schema_migrations" (version) VALUES ('0')
94
+ SQL (0.2ms) select sqlite_version(*)
95
+ SQL (0.1ms)  SELECT name
96
+ FROM sqlite_master
97
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
98
+ 
99
+ SQL (0.2ms) CREATE TABLE "people" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255)) 
100
+ SQL (0.1ms)  SELECT name
101
+ FROM sqlite_master
102
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
103
+ 
104
+ SQL (0.1ms) CREATE TABLE "billing_addresses" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "person_id" integer, "address_one" varchar(255)) 
105
+ SQL (0.1ms)  SELECT name
106
+ FROM sqlite_master
107
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
108
+ 
109
+ SQL (0.1ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL) 
110
+ SQL (0.1ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
111
+ SQL (0.1ms)  SELECT name
112
+ FROM sqlite_master
113
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
114
+ 
115
+ SQL (0.0ms) SELECT version FROM "schema_migrations"
116
+ SQL (0.1ms) INSERT INTO "schema_migrations" (version) VALUES ('0')
117
+ SQL (0.2ms) select sqlite_version(*)
118
+ SQL (0.1ms)  SELECT name
119
+ FROM sqlite_master
120
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
121
+ 
122
+ SQL (0.2ms) CREATE TABLE "people" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255)) 
123
+ SQL (0.1ms)  SELECT name
124
+ FROM sqlite_master
125
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
126
+ 
127
+ SQL (0.1ms) CREATE TABLE "billing_addresses" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "person_id" integer, "address_one" varchar(255)) 
128
+ SQL (0.1ms)  SELECT name
129
+ FROM sqlite_master
130
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
131
+ 
132
+ SQL (0.1ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL) 
133
+ SQL (0.1ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
134
+ SQL (0.1ms)  SELECT name
135
+ FROM sqlite_master
136
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
137
+ 
138
+ SQL (0.0ms) SELECT version FROM "schema_migrations"
139
+ SQL (0.1ms) INSERT INTO "schema_migrations" (version) VALUES ('0')
140
+ SQL (0.2ms) select sqlite_version(*)
141
+ SQL (0.1ms)  SELECT name
142
+ FROM sqlite_master
143
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
144
+ 
145
+ SQL (0.2ms) CREATE TABLE "people" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255)) 
146
+ SQL (0.1ms)  SELECT name
147
+ FROM sqlite_master
148
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
149
+ 
150
+ SQL (0.1ms) CREATE TABLE "billing_addresses" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "person_id" integer, "address_one" varchar(255)) 
151
+ SQL (0.1ms)  SELECT name
152
+ FROM sqlite_master
153
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
154
+ 
155
+ SQL (0.1ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL) 
156
+ SQL (0.1ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
157
+ SQL (0.1ms)  SELECT name
158
+ FROM sqlite_master
159
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
160
+ 
161
+ SQL (0.0ms) SELECT version FROM "schema_migrations"
162
+ SQL (0.1ms) INSERT INTO "schema_migrations" (version) VALUES ('0')
163
+ SQL (0.2ms) select sqlite_version(*)
164
+ SQL (0.1ms)  SELECT name
165
+ FROM sqlite_master
166
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
167
+ 
168
+ SQL (0.2ms) CREATE TABLE "people" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255)) 
169
+ SQL (0.1ms)  SELECT name
170
+ FROM sqlite_master
171
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
172
+ 
173
+ SQL (0.1ms) CREATE TABLE "billing_addresses" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "person_id" integer, "address_one" varchar(255)) 
174
+ SQL (0.1ms)  SELECT name
175
+ FROM sqlite_master
176
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
177
+ 
178
+ SQL (0.1ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL) 
179
+ SQL (0.1ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
180
+ SQL (0.1ms)  SELECT name
181
+ FROM sqlite_master
182
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
183
+ 
184
+ SQL (0.0ms) SELECT version FROM "schema_migrations"
185
+ SQL (0.1ms) INSERT INTO "schema_migrations" (version) VALUES ('0')
186
+ SQL (0.2ms)  SELECT name
187
+ FROM sqlite_master
188
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
189
+ 
190
+ SQL (0.2ms) select sqlite_version(*)
191
+ SQL (0.1ms)  SELECT name
192
+ FROM sqlite_master
193
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
194
+ 
195
+ SQL (0.2ms) CREATE TABLE "people" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255)) 
196
+ SQL (0.1ms)  SELECT name
197
+ FROM sqlite_master
198
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
199
+ 
200
+ SQL (0.1ms) CREATE TABLE "billing_addresses" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "person_id" integer, "address_one" varchar(255)) 
201
+ SQL (0.1ms)  SELECT name
202
+ FROM sqlite_master
203
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
204
+ 
205
+ SQL (0.1ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL) 
206
+ SQL (0.1ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
207
+ SQL (0.1ms)  SELECT name
208
+ FROM sqlite_master
209
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
210
+ 
211
+ SQL (0.0ms) SELECT version FROM "schema_migrations"
212
+ SQL (0.1ms) INSERT INTO "schema_migrations" (version) VALUES ('0')
213
+ SQL (0.1ms)  SELECT name
214
+ FROM sqlite_master
215
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
216
+ 
217
+ SQL (0.2ms) select sqlite_version(*)
218
+ SQL (0.1ms)  SELECT name
219
+ FROM sqlite_master
220
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
221
+ 
222
+ SQL (0.2ms) CREATE TABLE "people" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255)) 
223
+ SQL (0.1ms)  SELECT name
224
+ FROM sqlite_master
225
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
226
+ 
227
+ SQL (0.1ms) CREATE TABLE "billing_addresses" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "person_id" integer, "address_one" varchar(255)) 
228
+ SQL (0.1ms)  SELECT name
229
+ FROM sqlite_master
230
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
231
+ 
232
+ SQL (0.1ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL) 
233
+ SQL (0.1ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
234
+ SQL (0.1ms)  SELECT name
235
+ FROM sqlite_master
236
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
237
+ 
238
+ SQL (0.0ms) SELECT version FROM "schema_migrations"
239
+ SQL (0.1ms) INSERT INTO "schema_migrations" (version) VALUES ('0')
240
+ SQL (0.1ms)  SELECT name
241
+ FROM sqlite_master
242
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
243
+ 
244
+ SQL (0.2ms) select sqlite_version(*)
245
+ SQL (0.1ms)  SELECT name
246
+ FROM sqlite_master
247
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
248
+ 
249
+ SQL (0.2ms) CREATE TABLE "people" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255)) 
250
+ SQL (0.1ms)  SELECT name
251
+ FROM sqlite_master
252
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
253
+ 
254
+ SQL (0.1ms) CREATE TABLE "billing_addresses" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "person_id" integer, "address_one" varchar(255)) 
255
+ SQL (0.1ms)  SELECT name
256
+ FROM sqlite_master
257
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
258
+ 
259
+ SQL (0.1ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL) 
260
+ SQL (0.1ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
261
+ SQL (0.1ms)  SELECT name
262
+ FROM sqlite_master
263
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
264
+ 
265
+ SQL (0.0ms) SELECT version FROM "schema_migrations"
266
+ SQL (0.1ms) INSERT INTO "schema_migrations" (version) VALUES ('0')
267
+ SQL (0.1ms)  SELECT name
268
+ FROM sqlite_master
269
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
270
+ 
271
+ SQL (0.2ms) select sqlite_version(*)
272
+ SQL (0.1ms)  SELECT name
273
+ FROM sqlite_master
274
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
275
+ 
276
+ SQL (0.2ms) CREATE TABLE "people" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255)) 
277
+ SQL (0.1ms)  SELECT name
278
+ FROM sqlite_master
279
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
280
+ 
281
+ SQL (0.1ms) CREATE TABLE "billing_addresses" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "person_id" integer, "address_one" varchar(255)) 
282
+ SQL (0.1ms)  SELECT name
283
+ FROM sqlite_master
284
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
285
+ 
286
+ SQL (0.1ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL) 
287
+ SQL (0.1ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
288
+ SQL (0.1ms)  SELECT name
289
+ FROM sqlite_master
290
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
291
+ 
292
+ SQL (0.0ms) SELECT version FROM "schema_migrations"
293
+ SQL (0.1ms) INSERT INTO "schema_migrations" (version) VALUES ('0')
294
+ SQL (0.1ms)  SELECT name
295
+ FROM sqlite_master
296
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
297
+ 
298
+ SQL (0.2ms) select sqlite_version(*)
299
+ SQL (0.1ms)  SELECT name
300
+ FROM sqlite_master
301
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
302
+ 
303
+ SQL (0.2ms) CREATE TABLE "people" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255)) 
304
+ SQL (0.1ms)  SELECT name
305
+ FROM sqlite_master
306
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
307
+ 
308
+ SQL (0.1ms) CREATE TABLE "billing_addresses" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "person_id" integer, "address_one" varchar(255)) 
309
+ SQL (0.1ms)  SELECT name
310
+ FROM sqlite_master
311
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
312
+ 
313
+ SQL (0.1ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL) 
314
+ SQL (0.1ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
315
+ SQL (0.1ms)  SELECT name
316
+ FROM sqlite_master
317
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
318
+ 
319
+ SQL (0.0ms) SELECT version FROM "schema_migrations"
320
+ SQL (0.1ms) INSERT INTO "schema_migrations" (version) VALUES ('0')
321
+ SQL (0.1ms)  SELECT name
322
+ FROM sqlite_master
323
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
324
+ 
325
+ SQL (0.2ms) select sqlite_version(*)
326
+ SQL (0.1ms)  SELECT name
327
+ FROM sqlite_master
328
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
329
+ 
330
+ SQL (0.2ms) CREATE TABLE "people" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255)) 
331
+ SQL (0.1ms)  SELECT name
332
+ FROM sqlite_master
333
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
334
+ 
335
+ SQL (0.1ms) CREATE TABLE "billing_addresses" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "person_id" integer, "address_one" varchar(255)) 
336
+ SQL (0.1ms)  SELECT name
337
+ FROM sqlite_master
338
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
339
+ 
340
+ SQL (0.1ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL) 
341
+ SQL (0.1ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
342
+ SQL (0.1ms)  SELECT name
343
+ FROM sqlite_master
344
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
345
+ 
346
+ SQL (0.0ms) SELECT version FROM "schema_migrations"
347
+ SQL (0.1ms) INSERT INTO "schema_migrations" (version) VALUES ('0')
348
+ SQL (0.2ms)  SELECT name
349
+ FROM sqlite_master
350
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
351
+ 
352
+ SQL (0.2ms) select sqlite_version(*)
353
+ SQL (0.1ms)  SELECT name
354
+ FROM sqlite_master
355
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
356
+ 
357
+ SQL (0.2ms) CREATE TABLE "people" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255)) 
358
+ SQL (0.1ms)  SELECT name
359
+ FROM sqlite_master
360
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
361
+ 
362
+ SQL (0.1ms) CREATE TABLE "billing_addresses" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "person_id" integer, "address_one" varchar(255)) 
363
+ SQL (0.1ms)  SELECT name
364
+ FROM sqlite_master
365
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
366
+ 
367
+ SQL (0.1ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL) 
368
+ SQL (0.1ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
369
+ SQL (0.1ms)  SELECT name
370
+ FROM sqlite_master
371
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
372
+ 
373
+ SQL (0.0ms) SELECT version FROM "schema_migrations"
374
+ SQL (0.1ms) INSERT INTO "schema_migrations" (version) VALUES ('0')
375
+ SQL (0.2ms)  SELECT name
376
+ FROM sqlite_master
377
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
378
+ 
379
+ SQL (0.2ms) select sqlite_version(*)
380
+ SQL (0.1ms)  SELECT name
381
+ FROM sqlite_master
382
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
383
+ 
384
+ SQL (0.2ms) CREATE TABLE "people" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255)) 
385
+ SQL (0.1ms)  SELECT name
386
+ FROM sqlite_master
387
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
388
+ 
389
+ SQL (0.1ms) CREATE TABLE "billing_addresses" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "person_id" integer, "address_one" varchar(255)) 
390
+ SQL (0.1ms)  SELECT name
391
+ FROM sqlite_master
392
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
393
+ 
394
+ SQL (0.1ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL) 
395
+ SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
396
+ SQL (0.1ms)  SELECT name
397
+ FROM sqlite_master
398
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
399
+ 
400
+ SQL (0.0ms) SELECT version FROM "schema_migrations"
401
+ SQL (0.1ms) INSERT INTO "schema_migrations" (version) VALUES ('0')
402
+ SQL (0.2ms)  SELECT name
403
+ FROM sqlite_master
404
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
405
+ 
406
+ SQL (0.2ms) select sqlite_version(*)
407
+ SQL (0.1ms)  SELECT name
408
+ FROM sqlite_master
409
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
410
+ 
411
+ SQL (0.2ms) CREATE TABLE "people" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255)) 
412
+ SQL (0.1ms)  SELECT name
413
+ FROM sqlite_master
414
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
415
+ 
416
+ SQL (0.1ms) CREATE TABLE "billing_addresses" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "person_id" integer, "address_one" varchar(255)) 
417
+ SQL (0.1ms)  SELECT name
418
+ FROM sqlite_master
419
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
420
+ 
421
+ SQL (0.1ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL) 
422
+ SQL (0.1ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
423
+ SQL (0.1ms)  SELECT name
424
+ FROM sqlite_master
425
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
426
+ 
427
+ SQL (0.0ms) SELECT version FROM "schema_migrations"
428
+ SQL (0.1ms) INSERT INTO "schema_migrations" (version) VALUES ('0')
429
+ SQL (0.2ms) select sqlite_version(*)
430
+ SQL (0.1ms)  SELECT name
431
+ FROM sqlite_master
432
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
433
+ 
434
+ SQL (0.2ms) CREATE TABLE "people" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255)) 
435
+ SQL (0.1ms)  SELECT name
436
+ FROM sqlite_master
437
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
438
+ 
439
+ SQL (0.1ms) CREATE TABLE "billing_addresses" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "person_id" integer, "address_one" varchar(255)) 
440
+ SQL (0.1ms)  SELECT name
441
+ FROM sqlite_master
442
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
443
+ 
444
+ SQL (0.1ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL) 
445
+ SQL (0.1ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
446
+ SQL (0.1ms)  SELECT name
447
+ FROM sqlite_master
448
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
449
+ 
450
+ SQL (0.0ms) SELECT version FROM "schema_migrations"
451
+ SQL (0.1ms) INSERT INTO "schema_migrations" (version) VALUES ('0')
452
+ SQL (0.2ms) select sqlite_version(*)
453
+ SQL (0.1ms)  SELECT name
454
+ FROM sqlite_master
455
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
456
+ 
457
+ SQL (0.2ms) CREATE TABLE "people" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255)) 
458
+ SQL (0.1ms)  SELECT name
459
+ FROM sqlite_master
460
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
461
+ 
462
+ SQL (0.1ms) CREATE TABLE "billing_addresses" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "person_id" integer, "address_one" varchar(255)) 
463
+ SQL (0.1ms)  SELECT name
464
+ FROM sqlite_master
465
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
466
+ 
467
+ SQL (0.1ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL) 
468
+ SQL (0.1ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
469
+ SQL (0.1ms)  SELECT name
470
+ FROM sqlite_master
471
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
472
+ 
473
+ SQL (0.0ms) SELECT version FROM "schema_migrations"
474
+ SQL (0.1ms) INSERT INTO "schema_migrations" (version) VALUES ('0')
475
+ SQL (0.1ms)  SELECT name
476
+ FROM sqlite_master
477
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
478
+ 
479
+ SQL (0.2ms) select sqlite_version(*)
480
+ SQL (0.1ms)  SELECT name
481
+ FROM sqlite_master
482
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
483
+ 
484
+ SQL (0.2ms) CREATE TABLE "people" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255)) 
485
+ SQL (0.1ms)  SELECT name
486
+ FROM sqlite_master
487
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
488
+ 
489
+ SQL (0.1ms) CREATE TABLE "billing_addresses" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "person_id" integer, "address_one" varchar(255)) 
490
+ SQL (0.1ms)  SELECT name
491
+ FROM sqlite_master
492
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
493
+ 
494
+ SQL (0.1ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL) 
495
+ SQL (0.1ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
496
+ SQL (0.1ms)  SELECT name
497
+ FROM sqlite_master
498
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
499
+ 
500
+ SQL (0.0ms) SELECT version FROM "schema_migrations"
501
+ SQL (0.1ms) INSERT INTO "schema_migrations" (version) VALUES ('0')
502
+ SQL (0.2ms) select sqlite_version(*)
503
+ SQL (0.1ms)  SELECT name
504
+ FROM sqlite_master
505
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
506
+ 
507
+ SQL (0.2ms) CREATE TABLE "people" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255)) 
508
+ SQL (0.1ms)  SELECT name
509
+ FROM sqlite_master
510
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
511
+ 
512
+ SQL (0.1ms) CREATE TABLE "billing_addresses" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "person_id" integer, "address_one" varchar(255)) 
513
+ SQL (0.1ms)  SELECT name
514
+ FROM sqlite_master
515
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
516
+ 
517
+ SQL (0.1ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL) 
518
+ SQL (0.1ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
519
+ SQL (0.1ms)  SELECT name
520
+ FROM sqlite_master
521
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
522
+ 
523
+ SQL (0.0ms) SELECT version FROM "schema_migrations"
524
+ SQL (0.1ms) INSERT INTO "schema_migrations" (version) VALUES ('0')
525
+ SQL (0.2ms) select sqlite_version(*)
526
+ SQL (0.1ms)  SELECT name
527
+ FROM sqlite_master
528
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
529
+ 
530
+ SQL (0.2ms) CREATE TABLE "people" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255)) 
531
+ SQL (0.1ms)  SELECT name
532
+ FROM sqlite_master
533
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
534
+ 
535
+ SQL (0.1ms) CREATE TABLE "billing_addresses" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "person_id" integer, "address_one" varchar(255)) 
536
+ SQL (0.2ms)  SELECT name
537
+ FROM sqlite_master
538
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
539
+ 
540
+ SQL (0.1ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL) 
541
+ SQL (0.1ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
542
+ SQL (0.1ms)  SELECT name
543
+ FROM sqlite_master
544
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
545
+ 
546
+ SQL (0.0ms) SELECT version FROM "schema_migrations"
547
+ SQL (0.1ms) INSERT INTO "schema_migrations" (version) VALUES ('0')
548
+ SQL (0.2ms) select sqlite_version(*)
549
+ SQL (0.1ms)  SELECT name
550
+ FROM sqlite_master
551
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
552
+ 
553
+ SQL (0.2ms) CREATE TABLE "people" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255)) 
554
+ SQL (0.1ms)  SELECT name
555
+ FROM sqlite_master
556
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
557
+ 
558
+ SQL (0.1ms) CREATE TABLE "billing_addresses" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "person_id" integer, "address_one" varchar(255)) 
559
+ SQL (0.1ms)  SELECT name
560
+ FROM sqlite_master
561
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
562
+ 
563
+ SQL (0.1ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL) 
564
+ SQL (0.1ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
565
+ SQL (0.1ms)  SELECT name
566
+ FROM sqlite_master
567
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
568
+ 
569
+ SQL (0.0ms) SELECT version FROM "schema_migrations"
570
+ SQL (0.1ms) INSERT INTO "schema_migrations" (version) VALUES ('0')
571
+ SQL (0.2ms) select sqlite_version(*)
572
+ SQL (0.1ms)  SELECT name
573
+ FROM sqlite_master
574
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
575
+ 
576
+ SQL (0.2ms) CREATE TABLE "people" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255)) 
577
+ SQL (0.1ms)  SELECT name
578
+ FROM sqlite_master
579
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
580
+ 
581
+ SQL (0.1ms) CREATE TABLE "billing_addresses" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "person_id" integer, "address_one" varchar(255)) 
582
+ SQL (0.1ms)  SELECT name
583
+ FROM sqlite_master
584
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
585
+ 
586
+ SQL (0.1ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL) 
587
+ SQL (0.1ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
588
+ SQL (0.1ms)  SELECT name
589
+ FROM sqlite_master
590
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
591
+ 
592
+ SQL (0.0ms) SELECT version FROM "schema_migrations"
593
+ SQL (0.1ms) INSERT INTO "schema_migrations" (version) VALUES ('0')
594
+ SQL (0.2ms) select sqlite_version(*)
595
+ SQL (0.1ms)  SELECT name
596
+ FROM sqlite_master
597
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
598
+ 
599
+ SQL (0.2ms) CREATE TABLE "people" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255)) 
600
+ SQL (0.1ms)  SELECT name
601
+ FROM sqlite_master
602
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
603
+ 
604
+ SQL (0.1ms) CREATE TABLE "billing_addresses" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "person_id" integer, "address_one" varchar(255)) 
605
+ SQL (0.1ms)  SELECT name
606
+ FROM sqlite_master
607
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
608
+ 
609
+ SQL (0.1ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL) 
610
+ SQL (0.1ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
611
+ SQL (0.1ms)  SELECT name
612
+ FROM sqlite_master
613
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
614
+ 
615
+ SQL (0.0ms) SELECT version FROM "schema_migrations"
616
+ SQL (0.1ms) INSERT INTO "schema_migrations" (version) VALUES ('0')
617
+ SQL (0.2ms) select sqlite_version(*)
618
+ SQL (0.1ms)  SELECT name
619
+ FROM sqlite_master
620
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
621
+ 
622
+ SQL (0.2ms) CREATE TABLE "people" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255)) 
623
+ SQL (0.1ms)  SELECT name
624
+ FROM sqlite_master
625
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
626
+ 
627
+ SQL (0.1ms) CREATE TABLE "billing_addresses" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "person_id" integer, "address_one" varchar(255)) 
628
+ SQL (0.1ms)  SELECT name
629
+ FROM sqlite_master
630
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
631
+ 
632
+ SQL (0.1ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL) 
633
+ SQL (0.1ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
634
+ SQL (0.1ms)  SELECT name
635
+ FROM sqlite_master
636
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
637
+ 
638
+ SQL (0.0ms) SELECT version FROM "schema_migrations"
639
+ SQL (0.1ms) INSERT INTO "schema_migrations" (version) VALUES ('0')
640
+ SQL (0.2ms) select sqlite_version(*)
641
+ SQL (0.1ms)  SELECT name
642
+ FROM sqlite_master
643
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
644
+ 
645
+ SQL (0.2ms) CREATE TABLE "people" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255)) 
646
+ SQL (0.1ms)  SELECT name
647
+ FROM sqlite_master
648
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
649
+ 
650
+ SQL (0.1ms) CREATE TABLE "billing_addresses" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "person_id" integer, "address_one" varchar(255)) 
651
+ SQL (0.1ms)  SELECT name
652
+ FROM sqlite_master
653
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
654
+ 
655
+ SQL (0.1ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL) 
656
+ SQL (0.1ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
657
+ SQL (0.1ms)  SELECT name
658
+ FROM sqlite_master
659
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
660
+ 
661
+ SQL (0.0ms) SELECT version FROM "schema_migrations"
662
+ SQL (0.1ms) INSERT INTO "schema_migrations" (version) VALUES ('0')
663
+ SQL (0.2ms) select sqlite_version(*)
664
+ SQL (0.1ms)  SELECT name
665
+ FROM sqlite_master
666
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
667
+ 
668
+ SQL (0.2ms) CREATE TABLE "people" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255)) 
669
+ SQL (0.1ms)  SELECT name
670
+ FROM sqlite_master
671
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
672
+ 
673
+ SQL (0.1ms) CREATE TABLE "billing_addresses" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "person_id" integer, "address_one" varchar(255), "is_active" boolean DEFAULT 'f' NOT NULL) 
674
+ SQL (0.1ms)  SELECT name
675
+ FROM sqlite_master
676
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
677
+ 
678
+ SQL (0.1ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL) 
679
+ SQL (0.1ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
680
+ SQL (0.1ms)  SELECT name
681
+ FROM sqlite_master
682
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
683
+ 
684
+ SQL (0.0ms) SELECT version FROM "schema_migrations"
685
+ SQL (0.1ms) INSERT INTO "schema_migrations" (version) VALUES ('0')
686
+ SQL (0.2ms) select sqlite_version(*)
687
+ SQL (0.1ms)  SELECT name
688
+ FROM sqlite_master
689
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
690
+ 
691
+ SQL (0.2ms) CREATE TABLE "people" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255)) 
692
+ SQL (0.1ms)  SELECT name
693
+ FROM sqlite_master
694
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
695
+ 
696
+ SQL (0.1ms) CREATE TABLE "billing_addresses" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "person_id" integer, "address_one" varchar(255), "is_primary_address" boolean DEFAULT 'f' NOT NULL) 
697
+ SQL (0.1ms)  SELECT name
698
+ FROM sqlite_master
699
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
700
+ 
701
+ SQL (0.1ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL) 
702
+ SQL (0.1ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
703
+ SQL (0.1ms)  SELECT name
704
+ FROM sqlite_master
705
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
706
+ 
707
+ SQL (0.0ms) SELECT version FROM "schema_migrations"
708
+ SQL (0.1ms) INSERT INTO "schema_migrations" (version) VALUES ('0')
709
+ SQL (0.2ms) select sqlite_version(*)
710
+ SQL (0.1ms)  SELECT name
711
+ FROM sqlite_master
712
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
713
+ 
714
+ SQL (0.2ms) CREATE TABLE "people" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255)) 
715
+ SQL (0.1ms)  SELECT name
716
+ FROM sqlite_master
717
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
718
+ 
719
+ SQL (0.2ms) CREATE TABLE "billing_addresses" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "person_id" integer, "address_one" varchar(255), "is_primary_address" boolean DEFAULT 'f' NOT NULL) 
720
+ SQL (0.1ms)  SELECT name
721
+ FROM sqlite_master
722
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
723
+ 
724
+ SQL (0.1ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL) 
725
+ SQL (0.1ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
726
+ SQL (0.1ms)  SELECT name
727
+ FROM sqlite_master
728
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
729
+ 
730
+ SQL (0.0ms) SELECT version FROM "schema_migrations"
731
+ SQL (0.1ms) INSERT INTO "schema_migrations" (version) VALUES ('0')
732
+ SQL (0.2ms) select sqlite_version(*)
733
+ SQL (0.1ms)  SELECT name
734
+ FROM sqlite_master
735
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
736
+ 
737
+ SQL (0.2ms) CREATE TABLE "people" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255)) 
738
+ SQL (0.1ms)  SELECT name
739
+ FROM sqlite_master
740
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
741
+ 
742
+ SQL (0.2ms) CREATE TABLE "billing_addresses" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "person_id" integer, "address_one" varchar(255), "is_primary_address" boolean DEFAULT 'f' NOT NULL) 
743
+ SQL (0.1ms)  SELECT name
744
+ FROM sqlite_master
745
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
746
+ 
747
+ SQL (0.1ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL) 
748
+ SQL (0.1ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
749
+ SQL (0.1ms)  SELECT name
750
+ FROM sqlite_master
751
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
752
+ 
753
+ SQL (0.0ms) SELECT version FROM "schema_migrations"
754
+ SQL (0.1ms) INSERT INTO "schema_migrations" (version) VALUES ('0')
755
+ SQL (0.2ms) select sqlite_version(*)
756
+ SQL (0.1ms)  SELECT name
757
+ FROM sqlite_master
758
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
759
+ 
760
+ SQL (0.2ms) CREATE TABLE "people" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255)) 
761
+ SQL (0.1ms)  SELECT name
762
+ FROM sqlite_master
763
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
764
+ 
765
+ SQL (0.1ms) CREATE TABLE "billing_addresses" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "person_id" integer, "address_one" varchar(255), "is_primary_address" boolean DEFAULT 'f' NOT NULL) 
766
+ SQL (0.1ms)  SELECT name
767
+ FROM sqlite_master
768
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
769
+ 
770
+ SQL (0.1ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL) 
771
+ SQL (0.1ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
772
+ SQL (0.1ms)  SELECT name
773
+ FROM sqlite_master
774
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
775
+ 
776
+ SQL (0.0ms) SELECT version FROM "schema_migrations"
777
+ SQL (0.1ms) INSERT INTO "schema_migrations" (version) VALUES ('0')
778
+ SQL (0.2ms) select sqlite_version(*)
779
+ SQL (0.1ms)  SELECT name
780
+ FROM sqlite_master
781
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
782
+ 
783
+ SQL (0.2ms) CREATE TABLE "people" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255)) 
784
+ SQL (0.1ms)  SELECT name
785
+ FROM sqlite_master
786
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
787
+ 
788
+ SQL (0.1ms) CREATE TABLE "billing_addresses" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "person_id" integer, "address_one" varchar(255), "is_primary_address" boolean DEFAULT 'f' NOT NULL) 
789
+ SQL (0.1ms)  SELECT name
790
+ FROM sqlite_master
791
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
792
+ 
793
+ SQL (0.1ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL) 
794
+ SQL (0.1ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
795
+ SQL (0.1ms)  SELECT name
796
+ FROM sqlite_master
797
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
798
+ 
799
+ SQL (0.0ms) SELECT version FROM "schema_migrations"
800
+ SQL (0.1ms) INSERT INTO "schema_migrations" (version) VALUES ('0')
801
+ SQL (0.2ms) select sqlite_version(*)
802
+ SQL (0.1ms)  SELECT name
803
+ FROM sqlite_master
804
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
805
+ 
806
+ SQL (0.2ms) CREATE TABLE "people" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255)) 
807
+ SQL (0.1ms)  SELECT name
808
+ FROM sqlite_master
809
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
810
+ 
811
+ SQL (0.1ms) CREATE TABLE "billing_addresses" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "person_id" integer, "address_one" varchar(255), "is_primary_address" boolean DEFAULT 'f' NOT NULL) 
812
+ SQL (0.1ms)  SELECT name
813
+ FROM sqlite_master
814
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
815
+ 
816
+ SQL (0.1ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL) 
817
+ SQL (0.1ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
818
+ SQL (0.1ms)  SELECT name
819
+ FROM sqlite_master
820
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
821
+ 
822
+ SQL (0.0ms) SELECT version FROM "schema_migrations"
823
+ SQL (0.1ms) INSERT INTO "schema_migrations" (version) VALUES ('0')
824
+ SQL (0.2ms) select sqlite_version(*)
825
+ SQL (0.1ms)  SELECT name
826
+ FROM sqlite_master
827
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
828
+ 
829
+ SQL (0.2ms) CREATE TABLE "people" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255)) 
830
+ SQL (0.1ms)  SELECT name
831
+ FROM sqlite_master
832
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
833
+ 
834
+ SQL (0.1ms) CREATE TABLE "billing_addresses" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "person_id" integer, "address_one" varchar(255), "is_primary_address" boolean DEFAULT 'f' NOT NULL) 
835
+ SQL (0.1ms)  SELECT name
836
+ FROM sqlite_master
837
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
838
+ 
839
+ SQL (0.1ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL) 
840
+ SQL (0.1ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
841
+ SQL (0.1ms)  SELECT name
842
+ FROM sqlite_master
843
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
844
+ 
845
+ SQL (0.0ms) SELECT version FROM "schema_migrations"
846
+ SQL (0.1ms) INSERT INTO "schema_migrations" (version) VALUES ('0')
847
+ SQL (0.2ms) select sqlite_version(*)
848
+ SQL (0.1ms)  SELECT name
849
+ FROM sqlite_master
850
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
851
+ 
852
+ SQL (0.2ms) CREATE TABLE "people" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255)) 
853
+ SQL (0.1ms)  SELECT name
854
+ FROM sqlite_master
855
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
856
+ 
857
+ SQL (0.1ms) CREATE TABLE "billing_addresses" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "person_id" integer, "address_one" varchar(255), "is_primary_address" boolean DEFAULT 'f' NOT NULL) 
858
+ SQL (0.1ms)  SELECT name
859
+ FROM sqlite_master
860
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
861
+ 
862
+ SQL (0.1ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL) 
863
+ SQL (0.1ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
864
+ SQL (0.1ms)  SELECT name
865
+ FROM sqlite_master
866
+ WHERE type = 'table' AND NOT name = 'sqlite_sequence'
867
+ 
868
+ SQL (0.0ms) SELECT version FROM "schema_migrations"
869
+ SQL (0.1ms) INSERT INTO "schema_migrations" (version) VALUES ('0')
@@ -0,0 +1,14 @@
1
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
2
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
3
+ require 'rubygems'
4
+ require 'active_record'
5
+ require 'better_delegation'
6
+ require 'spec'
7
+ require 'spec/autorun'
8
+
9
+ spec_dir = File.dirname(__FILE__)
10
+ ActiveRecord::Base.logger = Logger.new(spec_dir + "/debug.log")
11
+
12
+ databases = YAML::load(IO.read(spec_dir + "/db/database.yml"))
13
+ ActiveRecord::Base.establish_connection(databases[ENV["DB"] || "sqlite3"])
14
+ load(File.join(spec_dir, "db", "schema.rb"))
metadata ADDED
@@ -0,0 +1,82 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: better_delegation
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Josh N. Abbott
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-11-11 00:00:00 -08:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rspec
17
+ type: :development
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: "1.0"
24
+ version:
25
+ description: Calling a delegated method on a nil object with better_delegation won't just return nil, it will return the default column value as specified by object being delegated to.
26
+ email: joshnabbott@gmail.com
27
+ executables: []
28
+
29
+ extensions: []
30
+
31
+ extra_rdoc_files:
32
+ - LICENSE
33
+ - README.rdoc
34
+ files:
35
+ - .document
36
+ - .gitignore
37
+ - LICENSE
38
+ - README.rdoc
39
+ - Rakefile
40
+ - VERSION
41
+ - better_delegation.gemspec
42
+ - init.rb
43
+ - lib/active_support/core_ext/module/better_delegation.rb
44
+ - lib/better_delegation.rb
45
+ - rails/init.rb
46
+ - spec/better_delegation_spec.rb
47
+ - spec/db/database.yml
48
+ - spec/db/schema.rb
49
+ - spec/debug.log
50
+ - spec/spec_helper.rb
51
+ has_rdoc: true
52
+ homepage: http://github.com/joshnabbott/better_delegation
53
+ licenses: []
54
+
55
+ post_install_message:
56
+ rdoc_options:
57
+ - --charset=UTF-8
58
+ require_paths:
59
+ - lib
60
+ required_ruby_version: !ruby/object:Gem::Requirement
61
+ requirements:
62
+ - - ">="
63
+ - !ruby/object:Gem::Version
64
+ version: "0"
65
+ version:
66
+ required_rubygems_version: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - ">="
69
+ - !ruby/object:Gem::Version
70
+ version: "0"
71
+ version:
72
+ requirements: []
73
+
74
+ rubyforge_project:
75
+ rubygems_version: 1.3.5
76
+ signing_key:
77
+ specification_version: 3
78
+ summary: Extends the Object#delegate method to work better with `nil` objects.
79
+ test_files:
80
+ - spec/better_delegation_spec.rb
81
+ - spec/db/schema.rb
82
+ - spec/spec_helper.rb