dumbo 0.0.1 → 0.0.3
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.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/Gemfile +1 -1
- data/bin/dumbo +65 -24
- data/config/boot.rb +2 -3
- data/dumbo.gemspec +1 -2
- data/lib/dumbo.rb +17 -16
- data/lib/dumbo/aggregate.rb +3 -5
- data/lib/dumbo/base_type.rb +17 -17
- data/lib/dumbo/binding_loader.rb +50 -0
- data/lib/dumbo/cast.rb +5 -5
- data/lib/dumbo/composite_type.rb +4 -4
- data/lib/dumbo/db_task.rb +6 -5
- data/lib/dumbo/dependency_resolver.rb +17 -18
- data/lib/dumbo/enum_type.rb +3 -4
- data/lib/dumbo/extension.rb +64 -20
- data/lib/dumbo/extension_migrator.rb +11 -11
- data/lib/dumbo/extension_version.rb +29 -11
- data/lib/dumbo/function.rb +21 -21
- data/lib/dumbo/operator.rb +4 -6
- data/lib/dumbo/pg_object.rb +17 -21
- data/lib/dumbo/rake_task.rb +63 -53
- data/lib/dumbo/range_type.rb +6 -9
- data/lib/dumbo/test.rb +8 -0
- data/lib/dumbo/test/fixture.rb +51 -0
- data/lib/dumbo/test/helper.rb +64 -0
- data/lib/dumbo/test/matchers.rb +76 -0
- data/lib/dumbo/test/regression_helper.rb +20 -0
- data/lib/dumbo/test/silence_unknown_oid.rb +12 -0
- data/lib/dumbo/type.rb +3 -4
- data/lib/dumbo/version.rb +1 -1
- data/spec/aggregate_spec.rb +9 -10
- data/spec/cast_spec.rb +5 -5
- data/spec/{Makefile → dumbo_sample/Makefile} +4 -0
- data/spec/{dumbo_sample--0.0.1.sql → dumbo_sample/dumbo_sample--0.0.1.sql} +0 -0
- data/spec/{dumbo_sample--0.0.2.sql → dumbo_sample/dumbo_sample--0.0.2.sql} +0 -0
- data/spec/dumbo_sample/dumbo_sample--0.0.3.sql +7 -0
- data/spec/dumbo_sample/dumbo_sample--0.0.4.sql +13 -0
- data/spec/{dumbo_sample.control → dumbo_sample/dumbo_sample.control} +0 -0
- data/spec/dumbo_sample/src/dumbo_sample.c +13 -0
- data/spec/dumbo_sample/src/dumbo_sample.h +17 -0
- data/spec/extension_migrator_spec.rb +12 -11
- data/spec/extension_spec.rb +41 -12
- data/spec/extension_version_spec.rb +27 -0
- data/spec/operator_spec.rb +6 -7
- data/spec/spec_helper.rb +15 -9
- data/spec/support/extension_helper.rb +31 -0
- data/spec/support/silence_unknown_oid.rb +12 -0
- data/spec/type_spec.rb +59 -55
- data/template/Rakefile +6 -6
- data/template/spec/sample_spec.rb.erb +1 -1
- metadata +33 -31
- data/config/database.yml +0 -31
- data/lib/tasks/db.rake +0 -52
- data/lib/tasks/dumbo.rake +0 -23
- data/spec/support/sql_helper.rb +0 -23
data/template/Rakefile
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
require 'rake'
|
2
2
|
require 'rspec/core/rake_task'
|
3
|
-
require
|
4
|
-
require
|
5
|
-
require
|
3
|
+
require 'dumbo/rake_task'
|
4
|
+
require 'dumbo/db_task'
|
5
|
+
require 'dumbo'
|
6
6
|
|
7
|
-
load File.expand_path('../config/boot.rb',__FILE__)
|
7
|
+
load File.expand_path('../config/boot.rb', __FILE__)
|
8
8
|
|
9
9
|
Dumbo::RakeTask.new(:dumbo)
|
10
10
|
Dumbo::DbTask.new(:db)
|
11
11
|
RSpec::Core::RakeTask.new(:spec)
|
12
12
|
|
13
|
-
Dir.glob(
|
13
|
+
Dir.glob('lib/tasks/**/*.rake').each { |taskfile| load taskfile }
|
14
14
|
|
15
|
-
task :
|
15
|
+
task default: ['dumbo:all', 'db:test:prepare', :spec]
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dumbo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Manuel Kniep
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-07-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -44,28 +44,14 @@ dependencies:
|
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: 3.0.0
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: factory_girl
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - "~>"
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '4.0'
|
62
|
-
type: :runtime
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - "~>"
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '4.0'
|
54
|
+
version: 3.0.0
|
69
55
|
- !ruby/object:Gem::Dependency
|
70
56
|
name: activerecord
|
71
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -151,11 +137,11 @@ files:
|
|
151
137
|
- Rakefile
|
152
138
|
- bin/dumbo
|
153
139
|
- config/boot.rb
|
154
|
-
- config/database.yml
|
155
140
|
- dumbo.gemspec
|
156
141
|
- lib/dumbo.rb
|
157
142
|
- lib/dumbo/aggregate.rb
|
158
143
|
- lib/dumbo/base_type.rb
|
144
|
+
- lib/dumbo/binding_loader.rb
|
159
145
|
- lib/dumbo/cast.rb
|
160
146
|
- lib/dumbo/composite_type.rb
|
161
147
|
- lib/dumbo/db_task.rb
|
@@ -169,21 +155,31 @@ files:
|
|
169
155
|
- lib/dumbo/pg_object.rb
|
170
156
|
- lib/dumbo/rake_task.rb
|
171
157
|
- lib/dumbo/range_type.rb
|
158
|
+
- lib/dumbo/test.rb
|
159
|
+
- lib/dumbo/test/fixture.rb
|
160
|
+
- lib/dumbo/test/helper.rb
|
161
|
+
- lib/dumbo/test/matchers.rb
|
162
|
+
- lib/dumbo/test/regression_helper.rb
|
163
|
+
- lib/dumbo/test/silence_unknown_oid.rb
|
172
164
|
- lib/dumbo/type.rb
|
173
165
|
- lib/dumbo/version.rb
|
174
|
-
- lib/tasks/db.rake
|
175
|
-
- lib/tasks/dumbo.rake
|
176
|
-
- spec/Makefile
|
177
166
|
- spec/aggregate_spec.rb
|
178
167
|
- spec/cast_spec.rb
|
179
|
-
- spec/dumbo_sample
|
180
|
-
- spec/dumbo_sample--0.0.
|
181
|
-
- spec/dumbo_sample.
|
168
|
+
- spec/dumbo_sample/Makefile
|
169
|
+
- spec/dumbo_sample/dumbo_sample--0.0.1.sql
|
170
|
+
- spec/dumbo_sample/dumbo_sample--0.0.2.sql
|
171
|
+
- spec/dumbo_sample/dumbo_sample--0.0.3.sql
|
172
|
+
- spec/dumbo_sample/dumbo_sample--0.0.4.sql
|
173
|
+
- spec/dumbo_sample/dumbo_sample.control
|
174
|
+
- spec/dumbo_sample/src/dumbo_sample.c
|
175
|
+
- spec/dumbo_sample/src/dumbo_sample.h
|
182
176
|
- spec/extension_migrator_spec.rb
|
183
177
|
- spec/extension_spec.rb
|
178
|
+
- spec/extension_version_spec.rb
|
184
179
|
- spec/operator_spec.rb
|
185
180
|
- spec/spec_helper.rb
|
186
|
-
- spec/support/
|
181
|
+
- spec/support/extension_helper.rb
|
182
|
+
- spec/support/silence_unknown_oid.rb
|
187
183
|
- spec/type_spec.rb
|
188
184
|
- template/Gemfile
|
189
185
|
- template/Makefile.erb
|
@@ -216,15 +212,21 @@ signing_key:
|
|
216
212
|
specification_version: 4
|
217
213
|
summary: postgres extension with fun
|
218
214
|
test_files:
|
219
|
-
- spec/Makefile
|
220
215
|
- spec/aggregate_spec.rb
|
221
216
|
- spec/cast_spec.rb
|
222
|
-
- spec/dumbo_sample
|
223
|
-
- spec/dumbo_sample--0.0.
|
224
|
-
- spec/dumbo_sample.
|
217
|
+
- spec/dumbo_sample/Makefile
|
218
|
+
- spec/dumbo_sample/dumbo_sample--0.0.1.sql
|
219
|
+
- spec/dumbo_sample/dumbo_sample--0.0.2.sql
|
220
|
+
- spec/dumbo_sample/dumbo_sample--0.0.3.sql
|
221
|
+
- spec/dumbo_sample/dumbo_sample--0.0.4.sql
|
222
|
+
- spec/dumbo_sample/dumbo_sample.control
|
223
|
+
- spec/dumbo_sample/src/dumbo_sample.c
|
224
|
+
- spec/dumbo_sample/src/dumbo_sample.h
|
225
225
|
- spec/extension_migrator_spec.rb
|
226
226
|
- spec/extension_spec.rb
|
227
|
+
- spec/extension_version_spec.rb
|
227
228
|
- spec/operator_spec.rb
|
228
229
|
- spec/spec_helper.rb
|
229
|
-
- spec/support/
|
230
|
+
- spec/support/extension_helper.rb
|
231
|
+
- spec/support/silence_unknown_oid.rb
|
230
232
|
- spec/type_spec.rb
|
data/config/database.yml
DELETED
@@ -1,31 +0,0 @@
|
|
1
|
-
# general postgres settings
|
2
|
-
# Connect on a TCP socket. Omitted by default since the client uses a
|
3
|
-
# domain socket that doesn't need configuration. Windows does not have
|
4
|
-
# domain sockets, so uncomment these lines.
|
5
|
-
# host: localhost
|
6
|
-
# port: 5432
|
7
|
-
|
8
|
-
# Schema search path. The server defaults to $user,public
|
9
|
-
# schema_search_path: myapp,sharedapp,public
|
10
|
-
|
11
|
-
# Minimum log levels, in increasing order:
|
12
|
-
# debug5, debug4, debug3, debug2, debug1,
|
13
|
-
# log, notice, warning, error, fatal, and panic
|
14
|
-
# The server defaults to notice.
|
15
|
-
# min_messages: warning
|
16
|
-
|
17
|
-
postgres: &postgres
|
18
|
-
adapter: postgresql
|
19
|
-
encoding: utf8
|
20
|
-
pool: 5
|
21
|
-
username: postgres
|
22
|
-
password:
|
23
|
-
host: localhost
|
24
|
-
|
25
|
-
development:
|
26
|
-
<<: *postgres
|
27
|
-
database: dumbo_development
|
28
|
-
|
29
|
-
test:
|
30
|
-
<<: *postgres
|
31
|
-
database: dumbo_test
|
data/lib/tasks/db.rake
DELETED
@@ -1,52 +0,0 @@
|
|
1
|
-
require 'yaml'
|
2
|
-
require 'logger'
|
3
|
-
require 'active_record'
|
4
|
-
|
5
|
-
task environment: ['db:configure_connection' ]
|
6
|
-
|
7
|
-
task :test_env do
|
8
|
-
ENV['DUMBO_ENV'] = 'test'
|
9
|
-
end
|
10
|
-
|
11
|
-
namespace :db do
|
12
|
-
def create_database(config)
|
13
|
-
ActiveRecord::Base.establish_connection config.merge('database' => nil)
|
14
|
-
ActiveRecord::Base.connection.create_database config['database'], config
|
15
|
-
ActiveRecord::Base.establish_connection config
|
16
|
-
end
|
17
|
-
|
18
|
-
task :configuration do
|
19
|
-
@config = YAML.load_file('config/database.yml')[ENV['DUMBO_ENV']]
|
20
|
-
end
|
21
|
-
|
22
|
-
task configure_connection: :configuration do
|
23
|
-
ActiveRecord::Base.establish_connection @config
|
24
|
-
ActiveRecord::Base.logger = Logger.new STDOUT if @config['logger']
|
25
|
-
end
|
26
|
-
|
27
|
-
desc 'Create the database from config/database.yml for the current ENV'
|
28
|
-
task create: :environment do
|
29
|
-
create_database @config
|
30
|
-
end
|
31
|
-
|
32
|
-
desc 'Drops the database for the current ENV'
|
33
|
-
task drop: :environment do
|
34
|
-
ActiveRecord::Base.establish_connection @config.merge('database' => nil)
|
35
|
-
ActiveRecord::Base.connection.drop_database @config['database']
|
36
|
-
end
|
37
|
-
|
38
|
-
namespace :test do
|
39
|
-
task :environment do
|
40
|
-
ENV['DUMBO_ENV'] ||= 'test'
|
41
|
-
ActiveRecord::Schema.verbose = false
|
42
|
-
end
|
43
|
-
|
44
|
-
task load_structure: :environment do
|
45
|
-
filename = ENV['DB_STRUCTURE'] || File.join("db", "structure.sql")
|
46
|
-
ActiveRecord::Tasks::DatabaseTasks.structure_load(@config, filename)
|
47
|
-
end
|
48
|
-
|
49
|
-
desc "Re-create and prepare test database"
|
50
|
-
task prepare: [:environment, :drop, :create]
|
51
|
-
end
|
52
|
-
end
|
data/lib/tasks/dumbo.rake
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
require 'erubis'
|
2
|
-
require 'pathname'
|
3
|
-
|
4
|
-
task :default => ['dumbo:all', :spec]
|
5
|
-
|
6
|
-
namespace :dumbo do
|
7
|
-
include Dumbo::RakeHelper
|
8
|
-
|
9
|
-
task :all => ["#{extension}--#{version}.sql", :install]
|
10
|
-
|
11
|
-
desc 'installs the extension'
|
12
|
-
task :install do
|
13
|
-
system('make clean && make && make install')
|
14
|
-
end
|
15
|
-
|
16
|
-
desc 'concatenates files'
|
17
|
-
file "#{extension}--#{version}.sql" => file_list do |t|
|
18
|
-
sql = t.prerequisites.map do |file|
|
19
|
-
["--source file #{file}"] + get_sql(file) + [" "]
|
20
|
-
end.flatten
|
21
|
-
concatenate sql, t.name
|
22
|
-
end
|
23
|
-
end
|
data/spec/support/sql_helper.rb
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
module SqlHelper
|
2
|
-
def sql(sql, field = nil)
|
3
|
-
result = ActiveRecord::Base.connection.select_all(sql, 'SQL', [])
|
4
|
-
hash = result.to_hash
|
5
|
-
result = hash.map do |h|
|
6
|
-
hash_map = h.map do |k, v|
|
7
|
-
type = result.column_types[k]
|
8
|
-
casted_value = type.type_cast v
|
9
|
-
[k, casted_value]
|
10
|
-
end
|
11
|
-
Hash[hash_map]
|
12
|
-
end
|
13
|
-
# binding.pry
|
14
|
-
field ? result.map{|h| h[field]} : result
|
15
|
-
end
|
16
|
-
|
17
|
-
def install_extension
|
18
|
-
sql "CREATE EXTENSION #{Dumbo::Extension.new.name}"
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
|
23
|
-
|