rom-sql 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b418fd66438b79201905f6028726de01065b463f
4
- data.tar.gz: 07b4d5462ea91aea73913c11794d7946569c3d34
3
+ metadata.gz: c088db5ced8d4a5297ceb909e77dba86cd80ed37
4
+ data.tar.gz: 9d7f52c636a1418b966d7c609f57e766a1a4b224
5
5
  SHA512:
6
- metadata.gz: 8525d555c7682a1122613f1b4de21205029f6a6c1d4f1046cdff8c875468cacca3846826f2007fa73fc98074733f3bcfe4027049c2cfb24aed585a6049ae20b0
7
- data.tar.gz: 4efbe175a8462af7c47751ca171085e112f5d82da75f3dbc3d20d81e4eac568e558a93490af860dd800900f449d59d61ca12e7e1dd2da0560b3fbe94dac95f33
6
+ metadata.gz: 2603a384db038ddf194df6827b4d29585f48b5db8cd4791117149e292c55d3c0e8ddcec364e516b046fab29a28c32af22e964f4788c4f44082b808239b1127b3
7
+ data.tar.gz: 67d0846c7bea76d5c9365d35874a9755aa1c0306cbf09de7ce51b4964c16784c740f2b8713bb632dca0d54ac3ba480fc931d3a477abd602791ed28be4ba81183
data/CHANGELOG.md CHANGED
@@ -1,8 +1,25 @@
1
- # v0.1.1 2014-11-24
1
+ ## v0.2.0 2014-12-06
2
2
 
3
- * [fixed] fix equalizer in header (solnic)
4
- * [internal] minor refactor in adapter (solnic)
3
+ ### Added
5
4
 
6
- # v0.1.0 2014-11-24
5
+ * Command API (solnic)
6
+ * Support for ActiveSupport::Notifications with a log subscriber (solnic)
7
+ * New `ROM::SQL::Adapter#dataset?(name)` checking if a given table exists (solnic)
8
+
9
+ [Compare v0.1.1...v0.2.0](https://github.com/rom-rb/rom-sql/compare/v0.1.1...v0.2.0)
10
+
11
+ ## v0.1.1 2014-11-24
12
+
13
+ ### Fixed
14
+
15
+ * Equalizer in header (solnic)
16
+
17
+ ### Changed
18
+
19
+ * minor refactor in adapter (solnic)
20
+
21
+ [Compare v0.1.0...v0.1.1](https://github.com/rom-rb/rom-sql/compare/v0.1.0...v0.1.1)
22
+
23
+ ## v0.1.0 2014-11-24
7
24
 
8
25
  First release powered by Sequel
data/Gemfile CHANGED
@@ -4,6 +4,7 @@ gemspec
4
4
 
5
5
  group :test do
6
6
  gem 'rom', git: 'https://github.com/rom-rb/rom.git', branch: 'master'
7
+ gem 'activesupport'
7
8
  gem 'rspec', '~> 3.1'
8
9
  gem 'codeclimate-test-reporter', require: false
9
10
  gem 'pg', platforms: [:mri, :rbx]
data/README.md CHANGED
@@ -41,7 +41,7 @@ in relation objects. For schema migrations you can use its
41
41
  which is available via repositories.
42
42
 
43
43
  ``` ruby
44
- setup = ROM.setup(sqlite: "memory::sqlite")
44
+ setup = ROM.setup(sqlite: "sqlite::memory")
45
45
 
46
46
  setup.sqlite.connection.create_table(:users) do
47
47
  primary_key :id
@@ -87,8 +87,8 @@ rom = setup.finalize
87
87
  users = rom.relations.users
88
88
  tasks = rom.relations.tasks
89
89
 
90
- users.insert(name: "Piotr")
91
- tasks.insert(title: "Be happy")
90
+ users.insert(id: 1, name: "Piotr")
91
+ tasks.insert(user_id: 1, title: "Be happy")
92
92
 
93
93
  puts users.by_name("Piotr").with_tasks.to_a.inspect
94
94
  # => [{:id=>1, :name=>"Piotr", :user_id=>1, :title=>"Be happy"}]
@@ -118,9 +118,7 @@ setup.mappers do
118
118
  define(:users) do
119
119
  model name: 'User'
120
120
 
121
- group :tasks do
122
- attribute :title
123
- end
121
+ group tasks: [:title]
124
122
  end
125
123
  end
126
124
 
@@ -129,8 +127,8 @@ rom = setup.finalize
129
127
  users = rom.relations.users
130
128
  tasks = rom.relations.tasks
131
129
 
132
- users.insert(name: "Piotr")
133
- tasks.insert(title: "Be happy")
130
+ users.insert(id: 1, name: "Piotr")
131
+ tasks.insert(user_id: 1, title: "Be happy")
134
132
 
135
133
  rom.read(:users).with_tasks.by_name("Piotr").to_a
136
134
  # => [#<User:0x007fb31542a098 @id=1, @name="Piotr", @tasks=[{:title=>"Be happy"}]>]
data/lib/rom/sql.rb CHANGED
@@ -1,6 +1,12 @@
1
1
  require "sequel"
2
-
3
2
  require "rom"
3
+
4
+ module ROM
5
+ module SQL
6
+ ConstraintError = Class.new(ROM::CommandError)
7
+ end
8
+ end
9
+
4
10
  require "rom/sql/version"
5
11
  require "rom/sql/header"
6
12
  require "rom/sql/relation_extension"
@@ -8,3 +14,8 @@ require "rom/sql/relation_inclusion"
8
14
  require "rom/sql/adapter"
9
15
 
10
16
  require "rom/sql/support/sequel_dataset_ext"
17
+
18
+ if defined?(Rails)
19
+ require "rom/sql/support/active_support_notifications"
20
+ require 'rom/sql/support/rails_log_subscriber'
21
+ end
@@ -1,8 +1,12 @@
1
+ require 'logger'
2
+
3
+ require 'rom/sql/commands'
4
+
1
5
  module ROM
2
6
  module SQL
3
7
 
4
8
  class Adapter < ROM::Adapter
5
- attr_reader :connection
9
+ attr_reader :logger
6
10
 
7
11
  def self.schemes
8
12
  [:ado, :amalgalite, :cubrid, :db2, :dbi, :do, :fdbsql, :firebird, :ibmdb,
@@ -19,10 +23,19 @@ module ROM
19
23
  connection[name]
20
24
  end
21
25
 
26
+ def logger=(logger)
27
+ @logger = logger
28
+ connection.loggers << logger
29
+ end
30
+
22
31
  def schema
23
32
  tables.map { |table| [table, dataset(table), columns(table)] }
24
33
  end
25
34
 
35
+ def dataset?(name)
36
+ tables.include?(name)
37
+ end
38
+
26
39
  def extend_relation_class(klass)
27
40
  klass.send(:include, RelationInclusion)
28
41
  end
@@ -31,6 +44,10 @@ module ROM
31
44
  relation.extend(RelationExtension)
32
45
  end
33
46
 
47
+ def command_namespace
48
+ SQL::Commands
49
+ end
50
+
34
51
  private
35
52
 
36
53
  def tables
@@ -0,0 +1,49 @@
1
+ module ROM
2
+ module SQL
3
+ module Commands
4
+ ERRORS = [
5
+ Sequel::UniqueConstraintViolation,
6
+ Sequel::NotNullConstraintViolation
7
+ ].freeze
8
+
9
+ class Create < ROM::Commands::Create
10
+
11
+ def execute(tuples)
12
+ pks = Array([tuples]).flatten.map do |tuple|
13
+ attributes = input[tuple]
14
+ validator.call(attributes)
15
+ relation.insert(attributes.to_h)
16
+ end
17
+
18
+ relation.where(relation.model.primary_key => pks)
19
+ rescue *ERRORS => e
20
+ raise ConstraintError, e.message
21
+ end
22
+ end
23
+
24
+ class Update < ROM::Commands::Update
25
+
26
+ def execute(tuple)
27
+ attributes = input[tuple]
28
+ validator.call(attributes)
29
+
30
+ pks = relation.map { |t| t[relation.model.primary_key] }
31
+
32
+ relation.update(attributes.to_h)
33
+ relation.unfiltered.where(relation.model.primary_key => pks)
34
+ end
35
+
36
+ end
37
+
38
+ class Delete < ROM::Commands::Delete
39
+
40
+ def execute
41
+ target.delete
42
+ relation
43
+ end
44
+
45
+ end
46
+
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,29 @@
1
+ require 'sequel/database/logging'
2
+ require 'active_support/notifications'
3
+
4
+ module Sequel
5
+
6
+ class Database
7
+
8
+ def log_yield_with_instrumentation(sql, args = nil, &block)
9
+ ActiveSupport::Notifications.instrument(
10
+ 'sql.rom',
11
+ :sql => sql,
12
+ :name => instrumentation_name,
13
+ :binds => args
14
+ ) do
15
+ log_yield_without_instrumentation(sql, args, &block)
16
+ end
17
+ end
18
+
19
+ alias_method :log_yield_without_instrumentation, :log_yield
20
+ alias_method :log_yield, :log_yield_with_instrumentation
21
+
22
+ private
23
+
24
+ def instrumentation_name
25
+ "ROM[#{database_type}]"
26
+ end
27
+
28
+ end
29
+ end
@@ -0,0 +1,36 @@
1
+ require 'active_support/log_subscriber'
2
+
3
+ module ROM
4
+ module SQL
5
+
6
+ class RailsLogSubscriber < ActiveSupport::LogSubscriber
7
+
8
+ def sql(event)
9
+ return unless logger.debug?
10
+
11
+ payload = event.payload
12
+
13
+ name = format('%s (%.1fms)', payload[:name], event.duration)
14
+ sql = payload[:sql].squeeze(' ')
15
+ binds = payload[:binds].to_a.inspect if payload[:binds]
16
+
17
+ if odd?
18
+ name = color(name, :cyan, true)
19
+ sql = color(sql, nil, true)
20
+ else
21
+ name = color(name, :magenta, true)
22
+ end
23
+
24
+ debug " #{name} #{sql} #{binds}"
25
+ end
26
+
27
+ def odd?
28
+ @odd_or_even = !@odd_or_even
29
+ end
30
+
31
+ end
32
+
33
+ end
34
+ end
35
+
36
+ ROM::SQL::RailsLogSubscriber.attach_to(:rom)
@@ -1,5 +1,5 @@
1
1
  module ROM
2
2
  module SQL
3
- VERSION = "0.1.1"
3
+ VERSION = "0.2.0".freeze
4
4
  end
5
5
  end
data/log/.gitkeep ADDED
File without changes
data/rom-sql.gemspec CHANGED
@@ -5,7 +5,7 @@ require 'rom/sql/version'
5
5
 
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = "rom-sql"
8
- spec.version = ROM::SQL::VERSION
8
+ spec.version = ROM::SQL::VERSION.dup
9
9
  spec.authors = ["Piotr Solnica"]
10
10
  spec.email = ["piotr.solnica@gmail.com"]
11
11
  spec.summary = %q{RDBMS support for ROM}
@@ -18,9 +18,9 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ["lib"]
20
20
 
21
- spec.add_runtime_dependency "sequel", "~> 4.16"
21
+ spec.add_runtime_dependency "sequel", "~> 4.17"
22
22
  spec.add_runtime_dependency "equalizer", "~> 0.0", ">= 0.0.9"
23
- spec.add_runtime_dependency "rom", "~> 0.3", "~> 0.3.0"
23
+ spec.add_runtime_dependency "rom", "~> 0.4", ">= 0.4.0"
24
24
 
25
25
  spec.add_development_dependency "bundler"
26
26
  spec.add_development_dependency "rake", "~> 10.0"
@@ -0,0 +1,51 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'Commands / Create' do
4
+ include_context 'users and tasks'
5
+
6
+ subject(:users) { rom.commands.users }
7
+
8
+ before do
9
+ setup.relation(:users)
10
+
11
+ setup.commands(:users) do
12
+ define(:create) do
13
+ result :one
14
+ end
15
+
16
+ define(:create_many, type: :create) do
17
+ result :many
18
+ end
19
+ end
20
+ end
21
+
22
+ it 'returns a single tuple when result is set to :one' do
23
+ result = users.try { create(id: 2, name: 'Jane') }
24
+
25
+ expect(result.value).to eql(id: 2, name: 'Jane')
26
+ end
27
+
28
+ it 'returns tuples when result is set to :many' do
29
+ result = users.try {
30
+ create_many([{ id: 2, name: 'Jane' }, { id: 3, name: 'Jack' }])
31
+ }
32
+
33
+ expect(result.value.to_a).to match_array([
34
+ { id: 2, name: 'Jane' }, { id: 3, name: 'Jack' }
35
+ ])
36
+ end
37
+
38
+ it 'handles not-null constraint violation error' do
39
+ result = users.try { create(id: nil, name: 'Jane') }
40
+
41
+ expect(result.error).to be_instance_of(ROM::SQL::ConstraintError)
42
+ expect(result.error.message).to match(/not-null/)
43
+ end
44
+
45
+ it 'handles uniqueness constraint violation error' do
46
+ result = users.try { create(id: 3, name: 'Piotr') }
47
+
48
+ expect(result.error).to be_instance_of(ROM::SQL::ConstraintError)
49
+ expect(result.error.message).to match(/unique/)
50
+ end
51
+ end
@@ -0,0 +1,33 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'Commands / Delete' do
4
+ include_context 'users and tasks'
5
+
6
+ subject(:users) { rom.commands.users }
7
+
8
+ before do
9
+ setup.relation(:users) do
10
+ def by_name(name)
11
+ where(name: 'Piotr')
12
+ end
13
+ end
14
+
15
+ setup.commands(:users) do
16
+ define(:delete)
17
+ end
18
+
19
+ rom.relations.users.insert(id: 2, name: 'Jane')
20
+ end
21
+
22
+ it 'deletes all tuples' do
23
+ result = users.try { delete }
24
+
25
+ expect(result.value.to_a).to match_array([])
26
+ end
27
+
28
+ it 'deletes all tuples in a restricted relation' do
29
+ result = users.try { delete(:by_name, 'Jane').execute }
30
+
31
+ expect(result.value.to_a).to match_array([{ id: 2, name: 'Jane' }])
32
+ end
33
+ end
@@ -0,0 +1,26 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'Commands / Update' do
4
+ include_context 'users and tasks'
5
+
6
+ subject(:users) { rom.commands.users }
7
+
8
+ it 'works' do
9
+ setup.relation(:users) do
10
+ def by_name(name)
11
+ where(name: name)
12
+ end
13
+ end
14
+
15
+ setup.commands(:users) do
16
+ define(:update) do
17
+ input Hash
18
+ validator Proc.new {}
19
+ end
20
+ end
21
+
22
+ result = users.try { update(:by_name, 'Piotr').set(name: 'Peter') }
23
+
24
+ expect(result.value.to_a).to match_array([{ id: 1, name: 'Peter' }])
25
+ end
26
+ end
@@ -0,0 +1,36 @@
1
+ shared_context 'database setup' do
2
+ subject(:rom) { setup.finalize }
3
+
4
+ let(:setup) { ROM.setup(postgres: 'postgres://localhost/rom') }
5
+ let(:conn) { setup.postgres.connection }
6
+
7
+ before do
8
+ setup.postgres.use_logger(LOGGER)
9
+
10
+ [:users, :tasks, :tags, :task_tags].each { |name| conn.drop_table?(name) }
11
+
12
+ conn.create_table :users do
13
+ primary_key :id
14
+ String :name
15
+ index :name, unique: true
16
+ end
17
+
18
+ conn.create_table :tasks do
19
+ primary_key :id
20
+ Integer :user_id
21
+ String :title
22
+ end
23
+
24
+ conn.create_table :tags do
25
+ primary_key :id
26
+ String :name
27
+ end
28
+
29
+ conn.create_table :task_tags do
30
+ primary_key :tag_id, :task_id
31
+ Integer :tag_id
32
+ Integer :task_id
33
+ end
34
+
35
+ end
36
+ end
@@ -1,34 +1,7 @@
1
1
  shared_context 'users and tasks' do
2
- subject(:rom) { setup.finalize }
3
-
4
- let(:setup) { ROM.setup(postgres: 'postgres://localhost/rom') }
5
- let(:conn) { setup.postgres.connection }
2
+ include_context 'database setup'
6
3
 
7
4
  before do
8
- [:users, :tasks, :tags, :task_tags].each { |name| conn.drop_table?(name) }
9
-
10
- conn.create_table :users do
11
- primary_key :id
12
- String :name
13
- end
14
-
15
- conn.create_table :tasks do
16
- primary_key :id
17
- Integer :user_id
18
- String :title
19
- end
20
-
21
- conn.create_table :tags do
22
- primary_key :id
23
- String :name
24
- end
25
-
26
- conn.create_table :task_tags do
27
- primary_key :tag_id, :task_id
28
- Integer :tag_id
29
- Integer :task_id
30
- end
31
-
32
5
  conn[:users].insert id: 1, name: 'Piotr'
33
6
  conn[:tasks].insert id: 1, user_id: 1, title: 'Finish ROM'
34
7
  conn[:tags].insert id: 1, name: 'important'
data/spec/spec_helper.rb CHANGED
@@ -6,6 +6,9 @@ if RUBY_ENGINE == 'rbx'
6
6
  end
7
7
 
8
8
  require 'rom-sql'
9
+ require 'logger'
10
+
11
+ LOGGER = Logger.new(File.open('./log/test.log', 'a'))
9
12
 
10
13
  root = Pathname(__FILE__).dirname
11
14
 
@@ -0,0 +1,22 @@
1
+ require 'spec_helper'
2
+
3
+ require 'rom/sql/support/active_support_notifications'
4
+ require 'active_support/log_subscriber'
5
+
6
+ describe 'ActiveSupport::Notifications support' do
7
+ include_context 'database setup'
8
+
9
+ it 'works' do
10
+ rom.postgres.use_logger(LOGGER)
11
+
12
+ sql = nil
13
+
14
+ ActiveSupport::Notifications.subscribe('sql.rom') do |name, start, finish, id, payload|
15
+ sql = payload[:sql]
16
+ end
17
+
18
+ rom.postgres.connection.run(%(SELECT * FROM "users" WHERE name = 'notification test'))
19
+
20
+ expect(sql).to eql(%(SELECT * FROM "users" WHERE name = 'notification test'))
21
+ end
22
+ end
@@ -0,0 +1,29 @@
1
+ require 'spec_helper'
2
+
3
+ require 'rom/sql/support/active_support_notifications'
4
+ require 'rom/sql/support/rails_log_subscriber'
5
+
6
+ require 'active_support/log_subscriber/test_helper'
7
+
8
+ describe 'Rails log subscriber' do
9
+ include ActiveSupport::LogSubscriber::TestHelper
10
+
11
+ include_context 'database setup'
12
+
13
+ let(:test_query) do
14
+ %(SELECT * FROM "users" WHERE name = 'notification test')
15
+ end
16
+
17
+ let(:logger) { ActiveSupport::LogSubscriber::TestHelper::MockLogger.new }
18
+
19
+ before do
20
+ set_logger(logger)
21
+ rom.postgres.use_logger(logger)
22
+ end
23
+
24
+ it 'works' do
25
+ rom.postgres.connection.run(test_query)
26
+
27
+ expect(logger.logged(:debug).last).to include(test_query)
28
+ end
29
+ end
@@ -0,0 +1,18 @@
1
+ require 'spec_helper'
2
+
3
+ describe ROM::Adapter do
4
+ subject(:adapter) { rom.postgres.adapter }
5
+
6
+ let(:setup) { ROM.setup(postgres: "postgres://localhost/rom") }
7
+ let(:rom) { setup.finalize }
8
+
9
+ describe '#dataset?' do
10
+ it 'returns true if a table exists' do
11
+ expect(adapter.dataset?(:users)).to be(true)
12
+ end
13
+
14
+ it 'returns false if a table does not exist' do
15
+ expect(adapter.dataset?(:not_here)).to be(false)
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,12 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'Logger' do
4
+ include_context 'users and tasks'
5
+
6
+ it 'sets up a logger for sequel' do
7
+ repository = rom.postgres
8
+
9
+ expect(repository.logger).to be(LOGGER)
10
+ expect(repository.connection.loggers).to include(LOGGER)
11
+ end
12
+ end
metadata CHANGED
@@ -1,95 +1,95 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rom-sql
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Piotr Solnica
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-24 00:00:00.000000000 Z
11
+ date: 2014-12-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sequel
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '4.16'
19
+ version: '4.17'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '4.16'
26
+ version: '4.17'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: equalizer
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ~>
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0.0'
34
- - - '>='
34
+ - - ">="
35
35
  - !ruby/object:Gem::Version
36
36
  version: 0.0.9
37
37
  type: :runtime
38
38
  prerelease: false
39
39
  version_requirements: !ruby/object:Gem::Requirement
40
40
  requirements:
41
- - - ~>
41
+ - - "~>"
42
42
  - !ruby/object:Gem::Version
43
43
  version: '0.0'
44
- - - '>='
44
+ - - ">="
45
45
  - !ruby/object:Gem::Version
46
46
  version: 0.0.9
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rom
49
49
  requirement: !ruby/object:Gem::Requirement
50
50
  requirements:
51
- - - ~>
51
+ - - "~>"
52
52
  - !ruby/object:Gem::Version
53
- version: '0.3'
54
- - - ~>
53
+ version: '0.4'
54
+ - - ">="
55
55
  - !ruby/object:Gem::Version
56
- version: 0.3.0
56
+ version: 0.4.0
57
57
  type: :runtime
58
58
  prerelease: false
59
59
  version_requirements: !ruby/object:Gem::Requirement
60
60
  requirements:
61
- - - ~>
61
+ - - "~>"
62
62
  - !ruby/object:Gem::Version
63
- version: '0.3'
64
- - - ~>
63
+ version: '0.4'
64
+ - - ">="
65
65
  - !ruby/object:Gem::Version
66
- version: 0.3.0
66
+ version: 0.4.0
67
67
  - !ruby/object:Gem::Dependency
68
68
  name: bundler
69
69
  requirement: !ruby/object:Gem::Requirement
70
70
  requirements:
71
- - - '>='
71
+ - - ">="
72
72
  - !ruby/object:Gem::Version
73
73
  version: '0'
74
74
  type: :development
75
75
  prerelease: false
76
76
  version_requirements: !ruby/object:Gem::Requirement
77
77
  requirements:
78
- - - '>='
78
+ - - ">="
79
79
  - !ruby/object:Gem::Version
80
80
  version: '0'
81
81
  - !ruby/object:Gem::Dependency
82
82
  name: rake
83
83
  requirement: !ruby/object:Gem::Requirement
84
84
  requirements:
85
- - - ~>
85
+ - - "~>"
86
86
  - !ruby/object:Gem::Version
87
87
  version: '10.0'
88
88
  type: :development
89
89
  prerelease: false
90
90
  version_requirements: !ruby/object:Gem::Requirement
91
91
  requirements:
92
- - - ~>
92
+ - - "~>"
93
93
  - !ruby/object:Gem::Version
94
94
  version: '10.0'
95
95
  description: RDBMS support for ROM
@@ -99,9 +99,9 @@ executables: []
99
99
  extensions: []
100
100
  extra_rdoc_files: []
101
101
  files:
102
- - .gitignore
103
- - .rspec
104
- - .travis.yml
102
+ - ".gitignore"
103
+ - ".rspec"
104
+ - ".travis.yml"
105
105
  - CHANGELOG.md
106
106
  - Gemfile
107
107
  - LICENSE.txt
@@ -110,16 +110,28 @@ files:
110
110
  - lib/rom-sql.rb
111
111
  - lib/rom/sql.rb
112
112
  - lib/rom/sql/adapter.rb
113
+ - lib/rom/sql/commands.rb
113
114
  - lib/rom/sql/header.rb
114
115
  - lib/rom/sql/relation_extension.rb
115
116
  - lib/rom/sql/relation_inclusion.rb
116
117
  - lib/rom/sql/spec/support.rb
118
+ - lib/rom/sql/support/active_support_notifications.rb
119
+ - lib/rom/sql/support/rails_log_subscriber.rb
117
120
  - lib/rom/sql/support/sequel_dataset_ext.rb
118
121
  - lib/rom/sql/version.rb
122
+ - log/.gitkeep
119
123
  - rom-sql.gemspec
124
+ - spec/integration/commands/create_spec.rb
125
+ - spec/integration/commands/delete_spec.rb
126
+ - spec/integration/commands/update_spec.rb
127
+ - spec/shared/database_setup.rb
120
128
  - spec/shared/users_and_tasks.rb
121
129
  - spec/spec_helper.rb
130
+ - spec/support/active_support_notifications_spec.rb
131
+ - spec/support/rails_log_subscriber_spec.rb
132
+ - spec/unit/adapter_spec.rb
122
133
  - spec/unit/combined_associations_spec.rb
134
+ - spec/unit/logger_spec.rb
123
135
  - spec/unit/many_to_many_spec.rb
124
136
  - spec/unit/many_to_one_spec.rb
125
137
  - spec/unit/one_to_many_spec.rb
@@ -135,26 +147,35 @@ require_paths:
135
147
  - lib
136
148
  required_ruby_version: !ruby/object:Gem::Requirement
137
149
  requirements:
138
- - - '>='
150
+ - - ">="
139
151
  - !ruby/object:Gem::Version
140
152
  version: '0'
141
153
  required_rubygems_version: !ruby/object:Gem::Requirement
142
154
  requirements:
143
- - - '>='
155
+ - - ">="
144
156
  - !ruby/object:Gem::Version
145
157
  version: '0'
146
158
  requirements: []
147
159
  rubyforge_project:
148
- rubygems_version: 2.0.14
160
+ rubygems_version: 2.2.2
149
161
  signing_key:
150
162
  specification_version: 4
151
163
  summary: RDBMS support for ROM
152
164
  test_files:
165
+ - spec/integration/commands/create_spec.rb
166
+ - spec/integration/commands/delete_spec.rb
167
+ - spec/integration/commands/update_spec.rb
168
+ - spec/shared/database_setup.rb
153
169
  - spec/shared/users_and_tasks.rb
154
170
  - spec/spec_helper.rb
171
+ - spec/support/active_support_notifications_spec.rb
172
+ - spec/support/rails_log_subscriber_spec.rb
173
+ - spec/unit/adapter_spec.rb
155
174
  - spec/unit/combined_associations_spec.rb
175
+ - spec/unit/logger_spec.rb
156
176
  - spec/unit/many_to_many_spec.rb
157
177
  - spec/unit/many_to_one_spec.rb
158
178
  - spec/unit/one_to_many_spec.rb
159
179
  - spec/unit/relation_spec.rb
160
180
  - spec/unit/schema_spec.rb
181
+ has_rdoc: