sequel-rails 0.4.0 → 0.4.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.
data/.travis.yml CHANGED
@@ -1,11 +1,19 @@
1
1
  language: ruby
2
2
  rvm:
3
3
  - 1.9.3
4
+ - jruby-18mode
5
+ - jruby-19mode
4
6
  env:
5
7
  - "TEST_ADAPTER=postgresql TEST_OWNER=postgres TEST_USERNAME=postgres"
6
8
  - "TEST_ADAPTER=mysql TEST_USERNAME=root TEST_ENCODING=utf8"
7
9
  - "TEST_ADAPTER=mysql2 TEST_USERNAME=root TEST_ENCODING=utf8"
8
10
  - "TEST_ADAPTER=sqlite3 TEST_DATABASE=':memory:'"
11
+ matrix:
12
+ exclude:
13
+ - rvm: jruby-18mode
14
+ env: "TEST_ADAPTER=mysql2 TEST_USERNAME=root TEST_ENCODING=utf8"
15
+ - rvm: jruby-19mode
16
+ env: "TEST_ADAPTER=mysql2 TEST_USERNAME=root TEST_ENCODING=utf8"
9
17
  script: "rake spec"
10
18
  notifications:
11
19
  email:
data/History.md CHANGED
@@ -1,3 +1,14 @@
1
+ 0.4.1 (2013-03-12)
2
+ ==================
3
+
4
+ * DRY config in rake task and fix usage under JRUBY (Ed Ruder)
5
+ * Enable JRuby in TravisCI
6
+ * Run JDBC specs when jruby is detected
7
+ * Fix problems with JDBC support when running in 1.9 mode
8
+ * Fix JDBC support for mysql and postgresql and add specs on
9
+ `SequelRails::Configuration` (Jack Danger Canty)
10
+ * Rescue exception when dropping database [#20](https://github.com/TalentBox/sequel-rails/issues/20)
11
+
1
12
  0.4.0 (2013-03-06)
2
13
  ==================
3
14
 
@@ -6,14 +17,14 @@
6
17
  * Do not add any Sequel plugin by default anymore. Plugins could not be removed
7
18
  so it is safer to let the user add them via an initializer. Furthermore, we
8
19
  were changing the default Sequel behaviour related to 'raise on save'.
9
- All the previous plugins/behaviours of sequel-rails can be restored by
20
+ All the previous plugins/behaviours of sequel-rails can be restored by
10
21
  creating an initializer with:
11
22
 
12
23
  ```ruby
13
24
  require "sequel_rails/railties/legacy_model_config"
14
25
  ```
15
26
 
16
- Thanks to @dlee, for raising concerns about this behaviour in
27
+ Thanks to @dlee, for raising concerns about this behaviour in
17
28
  [#11](https://github.com/TalentBox/sequel-rails/pull/11)
18
29
 
19
30
  0.4.0.pre2
@@ -22,7 +33,7 @@
22
33
  * Remove `rake db:forward` and `rake db:rollback` as it makes not much sense
23
34
  when using the TimeStampMigration which is how this gem generates migrations
24
35
  * Ensure rake tasks returns appropriate code on errors
25
- * Ensure PostgreSQL adapter passes the right options to both create and drop
36
+ * Ensure PostgreSQL adapter passes the right options to both create and drop
26
37
  database (Sascha Cunz)
27
38
 
28
39
  0.4.0.pre1
@@ -38,14 +49,14 @@
38
49
  * **BIG CHANGE** rename `Rails::Sequel` module as `SequelRails`, this becomes
39
50
  the namespace for all sequel-rails related classes.
40
51
  * Split `Rails::Sequel::Storage` class in multiple adapter for each db
41
- * Only log queries if logger level is set to :debug (matching ActiveRecord
52
+ * Only log queries if logger level is set to :debug (matching ActiveRecord
42
53
  default).
43
54
  * Correctly display time spent in models in controller logs.
44
- * Add simple `ActiveSupport::Notification` support to Sequel using logger
55
+ * Add simple `ActiveSupport::Notification` support to Sequel using logger
45
56
  facility. This is done by monkey patching `Sequel::Database#log_yield`, so
46
57
  it does not yield directly if no loggers configured and instrument the yield
47
58
  call. Note that this does not allow to know from which class the query comes
48
- from. So it still does not display the `Sequel::Model` subclass like
59
+ from. So it still does not display the `Sequel::Model` subclass like
49
60
  `ActiveRecord` does (eg: User load).
50
61
  * Add spec for Sequel::Railties::LogSubscriber
51
62
  * Add initial specs for railtie setup
@@ -90,7 +101,7 @@
90
101
  - `db:drop` don't drop the test db automatically
91
102
  - `db:test:prepare` don't depend on `db:reset` which was loading `db:seed` (Sean Kirby)
92
103
  * Make `rake db:setup` load schema instead of running migrations (Markus Fenske)
93
- * Depends on `railties` instead of `rails` to not pull `active_record`
104
+ * Depends on `railties` instead of `rails` to not pull `active_record`
94
105
  as dependency (Markus Fenske)
95
106
 
96
107
  0.3.5
@@ -105,11 +116,11 @@
105
116
  and uses db types instead of ruby equivalents. This ensure loading the schema
106
117
  file will result in a correct db
107
118
 
108
- * Map some Sequel specific exceptions to `ActiveRecord` equivalents, in
119
+ * Map some Sequel specific exceptions to `ActiveRecord` equivalents, in
109
120
  `config.action_dispatch.rescue_responses`. This allows controllers to behave
110
121
  more like `ActiveRecord` when Sequel raises exceptions. (Joshua Hansen)
111
-
112
- * New Sequel plugin added to all `Sequel::Model` which allows to use
122
+
123
+ * New Sequel plugin added to all `Sequel::Model` which allows to use
113
124
  `Sequel::Model#find!` which will raise an exception if record does not exists.
114
125
  This method is an alias to `Sequel::Model#[]` method. (Joshua Hansen)
115
126
 
data/README.md CHANGED
@@ -37,13 +37,13 @@ Secondly, you'll need to require the different Rails components separately in yo
37
37
 
38
38
  # Instead of 'rails/all', require these:
39
39
  require "action_controller/railtie"
40
- # require "active_record/railtie"
40
+ # require "active_record/railtie"
41
41
  require "action_mailer/railtie"
42
42
  require "sprockets/railtie"
43
43
  ```
44
44
 
45
45
  Starting with sequel-rails 0.4.0.pre3 we don't change default Sequel behaviour
46
- nor include any plugin by default, if you want to get back the previous
46
+ nor include any plugin by default, if you want to get back the previous
47
47
  behaviour, you can create a new initializer (eg: `config/initializers/sequel.rb`) with content:
48
48
 
49
49
  ```ruby
@@ -74,7 +74,7 @@ rake db:create[env] # Create the database defined in config/da
74
74
  rake db:create:all # Create all the local databases defined in config/database.yml
75
75
  rake db:drop[env] # Create the database defined in config/database.yml for the current Rails.env
76
76
  rake db:drop:all # Drops all the local databases defined in config/database.yml
77
- rake db:force_close_open_connections # Forcibly close any open connections to the test database
77
+ rake db:force_close_open_connections # Forcibly close any open connections to the test database
78
78
  rake db:migrate # Migrate the database to the latest version
79
79
  rake db:migrate:down # Runs the "down" for a given migration VERSION.
80
80
  rake db:migrate:redo # Rollbacks the database one migration and re migrate up.
@@ -84,7 +84,7 @@ rake db:reset # Drops and recreates the database from db
84
84
  rake db:schema:dump # Create a db/schema.rb file that can be portably used against any DB supported by Sequel
85
85
  rake db:schema:load # Load a schema.rb file into the database
86
86
  rake db:seed # Load the seed data from db/seeds.rb
87
- rake db:setup # Create the database, load the schema, and initialize with the seed data
87
+ rake db:setup # Create the database, load the schema, and initialize with the seed data
88
88
  rake db:test:prepare # Prepare test database (ensure all migrations ran, drop and re-create database then load schema). This task can be run in the same invocation as other task (eg: rake db:migrate db:test:prepare).
89
89
  ```
90
90
 
@@ -124,6 +124,8 @@ Improvements has been made by those awesome contributors:
124
124
  * Thiago Pradi (tchandy)
125
125
  * Sascha Cunz (scunz)
126
126
  * Brian Donovan (eventualbuddha)
127
+ * Jack Danger Canty (JackDanger)
128
+ * Ed Ruder (edruder)
127
129
 
128
130
  Credits
129
131
  =======
data/Rakefile CHANGED
@@ -6,4 +6,6 @@ end
6
6
 
7
7
  Bundler::GemHelper.install_tasks
8
8
 
9
- FileList['tasks/**/*.rake'].each { |task| import task }
9
+ require "sequel_rails"
10
+
11
+ FileList['tasks/**/*.rake'].each { |task| import task }
data/lib/sequel_rails.rb CHANGED
@@ -1,2 +1,12 @@
1
1
  require "sequel_rails/version"
2
2
  require "sequel_rails/railtie" if defined? Rails
3
+
4
+ module SequelRails
5
+ def self.jruby?
6
+ @using_jruby ||= if defined?(RUBY_ENGINE)
7
+ RUBY_ENGINE == "jruby"
8
+ else
9
+ ENV['RUBY_VERSION'].to_s =~ /jruby/
10
+ end
11
+ end
12
+ end
@@ -5,7 +5,12 @@ module SequelRails
5
5
  mattr_accessor :configuration
6
6
 
7
7
  def self.setup(environment)
8
- ::Sequel.connect configuration.environment_for environment.to_s
8
+ config = configuration.environment_for(environment.to_s)
9
+ if config['url']
10
+ ::Sequel.connect config['url'], config
11
+ else
12
+ ::Sequel.connect config
13
+ end
9
14
  end
10
15
 
11
16
  class Configuration
@@ -23,7 +28,7 @@ module SequelRails
23
28
  end
24
29
 
25
30
  def environments
26
- @environments ||= @raw.inject({}) do |normalized, environment|
31
+ @environments ||= raw.inject({}) do |normalized, environment|
27
32
  name, config = environment.first, environment.last
28
33
  normalized[name] = normalize_repository_config(config)
29
34
  normalized
@@ -39,12 +44,12 @@ module SequelRails
39
44
  def normalize_repository_config(hash)
40
45
  config = {}
41
46
  hash.each do |key, value|
42
- config[key.to_s] =
47
+ config[key.to_s] =
43
48
  if key.to_s == 'port'
44
49
  value.to_i
45
50
  elsif key.to_s == 'adapter' && value == 'sqlite3'
46
51
  'sqlite'
47
- elsif key.to_s == 'database' && (hash['adapter'] == 'sqlite3' ||
52
+ elsif key.to_s == 'database' && (hash['adapter'] == 'sqlite3' ||
48
53
  hash['adapter'] == 'sqlite' ||
49
54
  hash[:adapter] == 'sqlite3' ||
50
55
  hash[:adapter] == 'sqlite')
@@ -55,7 +60,35 @@ module SequelRails
55
60
  value
56
61
  end
57
62
  end
58
-
63
+
64
+ # always use jdbc when running jruby
65
+ if SequelRails.jruby?
66
+ if config['adapter']
67
+ case config['adapter'].to_sym
68
+ when :postgres
69
+ config['adapter'] = :postgresql
70
+ end
71
+ config['adapter'] = "jdbc:#{config['adapter']}"
72
+ end
73
+ end
74
+
75
+ # some adapters only support an url
76
+ if config['adapter'] && config['adapter'] =~ /^(jdbc|do):/
77
+ params = {}
78
+ config.each do |k, v|
79
+ next if ['adapter', 'host', 'port', 'database'].include?(k)
80
+ params[k] = v
81
+ end
82
+ params_str = params.map { |k, v| "#{k}=#{v}" }.join('&')
83
+ port = config['port'] ? ":#{config['port']}" : ''
84
+ config['url'] = case config['adapter']
85
+ when /sqlite/
86
+ "%s:%s" % [config['adapter'], config['database']]
87
+ else
88
+ "%s://%s%s/%s?%s" % [config['adapter'], config['host'], port, config['database'], params_str]
89
+ end
90
+ end
91
+
59
92
  config
60
93
  end
61
94
 
@@ -4,10 +4,7 @@ require 'sequel_rails/storage'
4
4
  namespace :db do
5
5
  def db_for_current_env
6
6
  @db_for_current_env ||= {}
7
- @db_for_current_env[Rails.env] ||= begin
8
- config = ::SequelRails.configuration.environment_for(Rails.env)
9
- ::Sequel.connect(config)
10
- end
7
+ @db_for_current_env[Rails.env] ||= ::SequelRails.setup(Rails.env)
11
8
  end
12
9
 
13
10
  # desc "Raises an error if there are pending migrations"
@@ -23,7 +20,7 @@ namespace :db do
23
20
  task :dump => :environment do
24
21
  ::Sequel.extension :schema_dumper
25
22
  File.open(ENV['SCHEMA'] || "#{Rails.root}/db/schema.rb", "w") do |file|
26
- file.write db_for_current_env.dump_schema_migration(same_db: true)
23
+ file.write db_for_current_env.dump_schema_migration(:same_db => true)
27
24
  end
28
25
  Rake::Task["db:schema:dump"].reenable
29
26
  end
@@ -63,7 +60,7 @@ namespace :db do
63
60
  desc 'Drops all the local databases defined in config/database.yml'
64
61
  task :all => :environment do
65
62
  unless SequelRails::Storage.drop_all
66
- abort "Could not drop all databases."
63
+ warn "Couldn't drop all databases"
67
64
  end
68
65
  end
69
66
  end
@@ -73,7 +70,7 @@ namespace :db do
73
70
  args.with_defaults(:env => Rails.env)
74
71
 
75
72
  unless SequelRails::Storage.drop_environment(args.env)
76
- abort "Could not drop database for #{args.env}."
73
+ warn "Couldn't drop database for environment #{args.env}"
77
74
  end
78
75
  end
79
76
 
@@ -134,18 +131,14 @@ namespace :db do
134
131
  desc 'Forcibly close any open connections to the current env database (PostgreSQL specific)'
135
132
  task :force_close_open_connections, [:env] => :environment do |t, args|
136
133
  args.with_defaults(:env => Rails.env)
137
- SequelRails::Storage.close_connections_environment(argv.env)
134
+ SequelRails::Storage.close_connections_environment(args.env)
138
135
  end
139
136
 
140
137
  namespace :test do
141
138
  desc "Prepare test database (ensure all migrations ran, drop and re-create database then load schema). This task can be run in the same invocation as other task (eg: rake db:migrate db:test:prepare)."
142
139
  task :prepare => "db:abort_if_pending_migrations" do
143
140
  previous_env, Rails.env = Rails.env, 'test'
144
- begin
145
- Rake::Task['db:drop'].execute
146
- rescue Exception => e
147
- $stderr.puts "Could not drop test db: #{e.message}"
148
- end
141
+ Rake::Task['db:drop'].execute
149
142
  Rake::Task['db:create'].execute
150
143
  Rake::Task['db:schema:load'].execute
151
144
  Sequel::DATABASES.each do |db|
@@ -10,9 +10,9 @@ module Sequel
10
10
  begin
11
11
  ::ActiveSupport::Notifications.instrument(
12
12
  "sql.sequel",
13
- sql: sql,
14
- name: self.class,
15
- binds: args,
13
+ :sql => sql,
14
+ :name => self.class,
15
+ :binds => args
16
16
  ) do
17
17
  yield
18
18
  end
@@ -64,6 +64,8 @@ module SequelRails
64
64
 
65
65
  def self.lookup_class(adapter)
66
66
  raise "Adapter not specified in config, please set the :adapter key." unless adapter
67
+ return Jdbc if adapter =~ /jdbc/
68
+
67
69
  klass_name = adapter.camelize.to_sym
68
70
  unless self.const_defined?(klass_name)
69
71
  raise "Adapter #{adapter} not supported (#{klass_name.inspect})"
@@ -3,34 +3,52 @@ module SequelRails
3
3
  class Jdbc < Abstract
4
4
 
5
5
  def _is_mysql?
6
- database.match(/^jdbc:mysql/)
6
+ config['adapter'].match(/^jdbc:mysql/)
7
+ end
8
+
9
+ def _is_postgres?
10
+ config['adapter'].match(/^jdbc:postgresql/)
11
+ end
12
+
13
+ def _is_sqlite?
14
+ config['adapter'].match(/^jdbc:sqlite/)
7
15
  end
8
16
 
9
17
  def _root_url
10
- database.scan(/^jdbc:mysql:\/\/\w*:?\d*/)
18
+ config['url'].scan(/^jdbc:mysql:\/\/\w*:?\d*/).first
11
19
  end
12
20
 
13
21
  def db_name
14
- database.scan(/^jdbc:mysql:\/\/\w+:?\d*\/(\w+)/).flatten.first
22
+ config['database']
15
23
  end
16
24
 
17
25
  def _params
18
- database.scan(/\?.*$/)
26
+ config['url'].scan(/\?.*$/).first
19
27
  end
20
28
 
21
29
  def _create
22
- if _is_mysql?
30
+ if _is_sqlite?
31
+ return if in_memory?
32
+ ::Sequel.connect config['url']
33
+ elsif _is_mysql?
23
34
  ::Sequel.connect("#{_root_url}#{_params}") do |db|
24
35
  db.execute("CREATE DATABASE IF NOT EXISTS `#{db_name}` DEFAULT CHARACTER SET #{charset} DEFAULT COLLATE #{collation}")
25
36
  end
37
+ elsif _is_postgres?
38
+ system("createdb #{db_name}")
26
39
  end
27
40
  end
28
41
 
29
42
  def _drop
30
- if _is_mysql?
43
+ if _is_sqlite?
44
+ return if in_memory?
45
+ ::Sequel.connect config['url']
46
+ elsif _is_mysql?
31
47
  ::Sequel.connect("#{_root_url}#{_params}") do |db|
32
48
  db.execute("DROP DATABASE IF EXISTS `#{db_name}`")
33
49
  end
50
+ elsif _is_postgres?
51
+ system("dropdb #{db_name}")
34
52
  end
35
53
  end
36
54
 
@@ -40,6 +58,11 @@ module SequelRails
40
58
  @collation ||= config['collation'] || ENV['COLLATION'] || 'utf8_unicode_ci'
41
59
  end
42
60
 
61
+ def in_memory?
62
+ return false unless _is_sqlite?
63
+ database == ":memory:"
64
+ end
65
+
43
66
  end
44
67
  end
45
68
  end
@@ -1,3 +1,3 @@
1
1
  module SequelRails
2
- VERSION = "0.4.0"
2
+ VERSION = "0.4.1"
3
3
  end
@@ -2,6 +2,6 @@ test:
2
2
  adapter: "<%= ENV["TEST_ADAPTER"] || "postgresql" %>"
3
3
  database: "<%= ENV["TEST_DATABASE"] || "sequel_rails_test" %>"
4
4
  owner: "<%= ENV["TEST_OWNER"] || ENV["USER"] %>"
5
- username: "<%= ENV["TEST_USERNAME"] || ENV["USER"] %>"
5
+ user: "<%= ENV["TEST_USERNAME"] || ENV["USER"] %>"
6
6
  password: "<%= ENV["TEST_PASSWORD"] %>"
7
7
  encoding: "<%= ENV["TEST_ENCODING"] || "unicode" %>"
@@ -0,0 +1 @@
1
+ Combustion::Application.config.session_store :cookie_store, :key => "sequel-rails", :secret => "secret-token"
@@ -0,0 +1,103 @@
1
+ require "spec_helper"
2
+
3
+ describe SequelRails::Configuration do
4
+
5
+ let(:environments) do
6
+ {
7
+ "development" => {
8
+ "adapter" => "postgres",
9
+ "owner" => (ENV["TEST_OWNER"] || ENV["USER"]),
10
+ "username" => (ENV["TEST_OWNER"] || ENV["USER"]),
11
+ "database" => "sequel_rails_test_storage_dev",
12
+ "host" => "127.0.0.1",
13
+ },
14
+ "test" => {
15
+ "adapter" => "postgres",
16
+ "owner" => (ENV["TEST_OWNER"] || ENV["USER"]),
17
+ "username" => (ENV["TEST_OWNER"] || ENV["USER"]),
18
+ "database" => "sequel_rails_test_storage_test",
19
+ "host" => "127.0.0.1",
20
+ },
21
+ "remote" => {
22
+ "adapter" => "mysql",
23
+ "host" => "10.0.0.1",
24
+ "database" => "sequel_rails_test_storage_remote",
25
+ },
26
+ "production" => {
27
+ "host" => "10.0.0.1",
28
+ "database" => "sequel_rails_test_storage_production",
29
+ },
30
+ "bogus" => {},
31
+ }
32
+ end
33
+ let(:is_jruby) { false }
34
+
35
+ before do
36
+ SequelRails.configuration.stub(:raw).and_return environments
37
+ SequelRails.configuration.instance_variable_set('@environments', nil)
38
+ SequelRails.stub(:jruby?).and_return is_jruby
39
+ end
40
+
41
+ subject { SequelRails.setup(environment) }
42
+
43
+ describe ".setup" do
44
+
45
+ context "for a postgres connection" do
46
+
47
+ let(:environment) { 'development' }
48
+
49
+ context "in C-Ruby" do
50
+
51
+ it "produces a sane config without url" do
52
+ ::Sequel.should_receive(:connect) do |hash|
53
+ hash['adapter'].should == 'postgres'
54
+ end
55
+ subject
56
+ end
57
+ end
58
+
59
+ context "in JRuby" do
60
+
61
+ let(:is_jruby) { true }
62
+
63
+ it "produces an adapter config with a url" do
64
+ ::Sequel.should_receive(:connect) do |url, hash|
65
+ url.should =~ /^jdbc:postgresql:\/\//
66
+ hash['adapter'].should == 'jdbc:postgresql'
67
+ hash['host'].should == '127.0.0.1'
68
+ end
69
+ subject
70
+ end
71
+ end
72
+ end
73
+
74
+ context "for a mysql connection" do
75
+
76
+ let(:environment) { 'remote' }
77
+
78
+ context "in C-Ruby" do
79
+
80
+ it "produces a config without url" do
81
+ ::Sequel.should_receive(:connect) do |hash|
82
+ hash['adapter'].should == 'mysql'
83
+ end
84
+ subject
85
+ end
86
+ end
87
+
88
+ context "in JRuby" do
89
+
90
+ let(:is_jruby) { true }
91
+
92
+ it "produces a jdbc mysql config" do
93
+ ::Sequel.should_receive(:connect) do |url, hash|
94
+ url.should =~ /^jdbc:mysql:\/\//
95
+ hash['adapter'].should == 'jdbc:mysql'
96
+ hash['database'].should == 'sequel_rails_test_storage_remote'
97
+ end
98
+ subject
99
+ end
100
+ end
101
+ end
102
+ end
103
+ end
@@ -17,7 +17,7 @@ describe SequelRails::Migrations do
17
17
  end
18
18
  end
19
19
  context "with version specified" do
20
- let(:opts) { {target: 1} }
20
+ let(:opts) { {:target => 1} }
21
21
  it "runs migrations using Sequel::Migrator" do
22
22
  ::Sequel::Migrator.should_receive(:run).with(
23
23
  db, "db/migrate", opts
@@ -16,7 +16,6 @@ describe SequelRails::Railties::LogSubscriber do
16
16
  it "logs queries" do
17
17
  User.all
18
18
  wait
19
- @logger.logged(:debug).should have(1).line
20
19
  @logger.logged(:debug).last.should =~ /SELECT \* FROM ("|`)users("|`)/
21
20
  end
22
21
 
data/spec/spec_helper.rb CHANGED
@@ -11,7 +11,7 @@ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
11
11
 
12
12
  RSpec.configure do |config|
13
13
  config.around :each do |example|
14
- Sequel::Model.db.transaction(rollback: :always) do
14
+ Sequel::Model.db.transaction(:rollback => :always) do
15
15
  example.run
16
16
  end
17
17
  end
data/tasks/spec.rake CHANGED
@@ -7,8 +7,8 @@ begin
7
7
  namespace :spec do
8
8
  def clean_env
9
9
  [
10
- "TEST_ADAPTER",
11
- "TEST_DATABASE",
10
+ "TEST_ADAPTER",
11
+ "TEST_DATABASE",
12
12
  "TEST_OWNER",
13
13
  "TEST_USERNAME",
14
14
  "TEST_PASSWORD",
@@ -38,11 +38,15 @@ begin
38
38
 
39
39
  desc "Run specs for mysql2 adapter"
40
40
  task :mysql2 do
41
- clean_env
42
- Rake::Task["spec"].reenable
43
- ENV["TEST_ADAPTER"] = "mysql2"
44
- ENV["TEST_ENCODING"] = "utf8"
45
- Rake::Task["spec"].invoke
41
+ if SequelRails.jruby?
42
+ warn "No mysql2 adapter for jdbc"
43
+ else
44
+ clean_env
45
+ Rake::Task["spec"].reenable
46
+ ENV["TEST_ADAPTER"] = "mysql2"
47
+ ENV["TEST_ENCODING"] = "utf8"
48
+ Rake::Task["spec"].invoke
49
+ end
46
50
  end
47
51
 
48
52
  desc "Run specs for sqlite3 adapter"
@@ -56,10 +60,15 @@ begin
56
60
 
57
61
  desc "Run specs for all adapters"
58
62
  task :all do
59
- Rake::Task["spec:postgresql"].invoke
60
- Rake::Task["spec:mysql"].invoke
61
- Rake::Task["spec:mysql2"].invoke
62
- Rake::Task["spec:sqlite3"].invoke
63
+ res = [
64
+ "spec:postgresql",
65
+ "spec:mysql",
66
+ "spec:mysql2",
67
+ "spec:sqlite3"
68
+ ].map do |task_name|
69
+ Rake::Task[task_name].invoke
70
+ end
71
+ res.all?
63
72
  end
64
73
  end
65
74
 
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: sequel-rails
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.4.0
5
+ version: 0.4.1
6
6
  platform: ruby
7
7
  authors:
8
8
  - Brasten Sager (brasten)
@@ -10,104 +10,104 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2013-03-06 00:00:00.000000000 Z
13
+ date: 2013-03-12 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: sequel
17
- requirement: !ruby/object:Gem::Requirement
17
+ version_requirements: !ruby/object:Gem::Requirement
18
+ none: false
18
19
  requirements:
19
20
  - - ~>
20
21
  - !ruby/object:Gem::Version
21
22
  version: '3.28'
22
- none: false
23
+ prerelease: false
23
24
  type: :runtime
24
- version_requirements: !ruby/object:Gem::Requirement
25
+ requirement: !ruby/object:Gem::Requirement
26
+ none: false
25
27
  requirements:
26
28
  - - ~>
27
29
  - !ruby/object:Gem::Version
28
30
  version: '3.28'
29
- none: false
30
- prerelease: false
31
31
  - !ruby/object:Gem::Dependency
32
32
  name: railties
33
- requirement: !ruby/object:Gem::Requirement
33
+ version_requirements: !ruby/object:Gem::Requirement
34
+ none: false
34
35
  requirements:
35
36
  - - ! '>='
36
37
  - !ruby/object:Gem::Version
37
38
  version: 3.2.0
38
- none: false
39
+ prerelease: false
39
40
  type: :runtime
40
- version_requirements: !ruby/object:Gem::Requirement
41
+ requirement: !ruby/object:Gem::Requirement
42
+ none: false
41
43
  requirements:
42
44
  - - ! '>='
43
45
  - !ruby/object:Gem::Version
44
46
  version: 3.2.0
45
- none: false
46
- prerelease: false
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rake
49
- requirement: !ruby/object:Gem::Requirement
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ none: false
50
51
  requirements:
51
52
  - - ! '>='
52
53
  - !ruby/object:Gem::Version
53
54
  version: 0.8.7
54
- none: false
55
+ prerelease: false
55
56
  type: :development
56
- version_requirements: !ruby/object:Gem::Requirement
57
+ requirement: !ruby/object:Gem::Requirement
58
+ none: false
57
59
  requirements:
58
60
  - - ! '>='
59
61
  - !ruby/object:Gem::Version
60
62
  version: 0.8.7
61
- none: false
62
- prerelease: false
63
63
  - !ruby/object:Gem::Dependency
64
64
  name: rspec
65
- requirement: !ruby/object:Gem::Requirement
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ none: false
66
67
  requirements:
67
68
  - - ~>
68
69
  - !ruby/object:Gem::Version
69
70
  version: 2.7.0
70
- none: false
71
+ prerelease: false
71
72
  type: :development
72
- version_requirements: !ruby/object:Gem::Requirement
73
+ requirement: !ruby/object:Gem::Requirement
74
+ none: false
73
75
  requirements:
74
76
  - - ~>
75
77
  - !ruby/object:Gem::Version
76
78
  version: 2.7.0
77
- none: false
78
- prerelease: false
79
79
  - !ruby/object:Gem::Dependency
80
80
  name: combustion
81
- requirement: !ruby/object:Gem::Requirement
81
+ version_requirements: !ruby/object:Gem::Requirement
82
+ none: false
82
83
  requirements:
83
84
  - - ~>
84
85
  - !ruby/object:Gem::Version
85
86
  version: 0.3.1
86
- none: false
87
+ prerelease: false
87
88
  type: :development
88
- version_requirements: !ruby/object:Gem::Requirement
89
+ requirement: !ruby/object:Gem::Requirement
90
+ none: false
89
91
  requirements:
90
92
  - - ~>
91
93
  - !ruby/object:Gem::Version
92
94
  version: 0.3.1
93
- none: false
94
- prerelease: false
95
95
  - !ruby/object:Gem::Dependency
96
96
  name: generator_spec
97
- requirement: !ruby/object:Gem::Requirement
97
+ version_requirements: !ruby/object:Gem::Requirement
98
+ none: false
98
99
  requirements:
99
100
  - - ~>
100
101
  - !ruby/object:Gem::Version
101
102
  version: 0.8.7
102
- none: false
103
+ prerelease: false
103
104
  type: :development
104
- version_requirements: !ruby/object:Gem::Requirement
105
+ requirement: !ruby/object:Gem::Requirement
106
+ none: false
105
107
  requirements:
106
108
  - - ~>
107
109
  - !ruby/object:Gem::Version
108
110
  version: 0.8.7
109
- none: false
110
- prerelease: false
111
111
  description: Integrate Sequel with Rails 3
112
112
  email:
113
113
  - brasten@gmail.com
@@ -161,10 +161,12 @@ files:
161
161
  - spec/internal/Rakefile
162
162
  - spec/internal/app/models/user.rb
163
163
  - spec/internal/config/database.yml
164
+ - spec/internal/config/initializers/session.rb
164
165
  - spec/internal/config/routes.rb
165
166
  - spec/internal/db/schema.rb
166
167
  - spec/internal/public/favicon.ico
167
168
  - spec/lib/generators/sequel/migration_spec.rb
169
+ - spec/lib/sequel_rails/configuration_spec.rb
168
170
  - spec/lib/sequel_rails/migrations_spec.rb
169
171
  - spec/lib/sequel_rails/railtie_spec.rb
170
172
  - spec/lib/sequel_rails/railties/log_subscriber_spec.rb
@@ -179,26 +181,26 @@ rdoc_options:
179
181
  require_paths:
180
182
  - lib
181
183
  required_ruby_version: !ruby/object:Gem::Requirement
184
+ none: false
182
185
  requirements:
183
186
  - - ! '>='
184
187
  - !ruby/object:Gem::Version
188
+ hash: 4606545589271147809
185
189
  segments:
186
190
  - 0
187
- hash: 1691704785188510155
188
191
  version: '0'
189
- none: false
190
192
  required_rubygems_version: !ruby/object:Gem::Requirement
193
+ none: false
191
194
  requirements:
192
195
  - - ! '>='
193
196
  - !ruby/object:Gem::Version
197
+ hash: 4606545589271147809
194
198
  segments:
195
199
  - 0
196
- hash: 1691704785188510155
197
200
  version: '0'
198
- none: false
199
201
  requirements: []
200
202
  rubyforge_project:
201
- rubygems_version: 1.8.25
203
+ rubygems_version: 1.8.23
202
204
  signing_key:
203
205
  specification_version: 3
204
206
  summary: Use Sequel with Rails 3
@@ -206,10 +208,12 @@ test_files:
206
208
  - spec/internal/Rakefile
207
209
  - spec/internal/app/models/user.rb
208
210
  - spec/internal/config/database.yml
211
+ - spec/internal/config/initializers/session.rb
209
212
  - spec/internal/config/routes.rb
210
213
  - spec/internal/db/schema.rb
211
214
  - spec/internal/public/favicon.ico
212
215
  - spec/lib/generators/sequel/migration_spec.rb
216
+ - spec/lib/sequel_rails/configuration_spec.rb
213
217
  - spec/lib/sequel_rails/migrations_spec.rb
214
218
  - spec/lib/sequel_rails/railtie_spec.rb
215
219
  - spec/lib/sequel_rails/railties/log_subscriber_spec.rb