dbhijacker 0.4.0 → 0.4.2

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/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- dbhijacker (0.4.0)
4
+ dbhijacker (0.4.2)
5
5
  rails (~> 2.3.14)
6
6
 
7
7
  GEM
data/Rakefile CHANGED
@@ -1,14 +1,6 @@
1
1
  require 'rake'
2
2
  require 'rake/rdoctask'
3
- require 'spec/rake/spectask'
4
3
 
5
- desc 'Default: run unit tests.'
6
- task :default => :spec
7
-
8
- desc 'Test the hijacker plugin.'
9
- Spec::Rake::SpecTask.new(:spec) do |t|
10
- t.spec_files = FileList['spec/**/*_spec.rb']
11
- end
12
4
 
13
5
  desc 'Generate documentation for the hijacker plugin.'
14
6
  Rake::RDocTask.new(:rdoc) do |rdoc|
data/hijacker.gemspec CHANGED
@@ -3,7 +3,7 @@
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{dbhijacker}
5
5
  s.homepage = "https://github.com/crystalcommerce/hijacker"
6
- s.version = "0.4.0"
6
+ s.version = "0.4.2"
7
7
 
8
8
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
9
9
  s.authors = ["Michael Xavier", "Donald Plummer", "Woody Peterson"]
@@ -12,6 +12,10 @@ class Hijacker::Database < ActiveRecord::Base
12
12
 
13
13
  alias_attribute :name, :database
14
14
 
15
+ def sister?
16
+ master_id.present?
17
+ end
18
+
15
19
  def self.find_by_name(name)
16
20
  find_by_database(name)
17
21
  end
@@ -73,7 +77,11 @@ class Hijacker::Database < ActiveRecord::Base
73
77
  original_database = Hijacker.current_client
74
78
  begin
75
79
  sites.each do |db|
76
- Hijacker.connect_to_master(db)
80
+ begin
81
+ Hijacker.connect_to_master(db)
82
+ rescue Hijacker::InvalidDatabase
83
+ next
84
+ end
77
85
  yield db
78
86
  end
79
87
  ensure
data/lib/hijacker.rb CHANGED
@@ -36,7 +36,10 @@ module Hijacker
36
36
  target_name = target_name.downcase
37
37
  sister_name = sister_name.downcase unless sister_name.nil?
38
38
 
39
- return if already_connected?(target_name, sister_name) || test?
39
+ if already_connected?(target_name, sister_name)
40
+ return "Already connected to #{target_name}"
41
+ end
42
+ puts "CONNECTING TO (#{target_name}, #{sister_name})"
40
43
 
41
44
  verify = options.fetch(:verify, Hijacker.do_hijacking?)
42
45
 
@@ -46,8 +49,13 @@ module Hijacker
46
49
 
47
50
  check_connection
48
51
 
49
- self.master = database.name
50
- self.sister = sister_name
52
+ if database.sister?
53
+ self.master = database.master.name
54
+ self.sister = database.name
55
+ else
56
+ self.master = database.name
57
+ self.sister = nil
58
+ end
51
59
 
52
60
  # don't cache sister site
53
61
  cache_database_route(target_name, database) unless sister_name
@@ -165,10 +173,6 @@ module Hijacker
165
173
  ::ActiveRecord::Base.connection
166
174
  end
167
175
 
168
- def self.test?
169
- ['test', 'cucumber'].include?(RAILS_ENV)
170
- end
171
-
172
176
  private
173
177
 
174
178
  def self.already_connected?(new_master, new_sister)
@@ -71,6 +71,11 @@ module Hijacker
71
71
 
72
72
  Hijacker::Database.current.should == original_db
73
73
  end
74
+
75
+ it "eats invalid database errors" do
76
+ Hijacker.stub!(:connect).and_raise(Hijacker::InvalidDatabase)
77
+ expect { Database.connect_each {|db| } }.not_to raise_error
78
+ end
74
79
  end
75
80
  end
76
81
  end
@@ -42,7 +42,6 @@ describe Hijacker do
42
42
  subject.master = nil
43
43
  subject.sister = nil
44
44
  subject.valid_routes = {}
45
- subject.stub(:test?).and_return(false)
46
45
  ActiveRecord::Base.stub(:establish_connection)
47
46
  subject.stub(:root_connection).and_return(stub(:config => {}))
48
47
  subject.stub(:connect_sister_site_models)
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dbhijacker
3
3
  version: !ruby/object:Gem::Version
4
- hash: 15
4
+ hash: 11
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 4
9
- - 0
10
- version: 0.4.0
9
+ - 2
10
+ version: 0.4.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Michael Xavier
@@ -195,7 +195,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
195
195
  requirements: []
196
196
 
197
197
  rubyforge_project:
198
- rubygems_version: 1.8.15
198
+ rubygems_version: 1.8.21
199
199
  signing_key:
200
200
  specification_version: 3
201
201
  summary: One application, multiple client databases