master_slave 4.0.0 → 4.1.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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: ac72a0a0724da38a016bbdd1583db8401e426431
4
+ data.tar.gz: e784023a02f7adc988aaadedda4e32dd1b285e12
5
+ SHA512:
6
+ metadata.gz: 184399a622403048090201c11e469d337bc7da6ef4c7ea6d7f455c8b9ce71fde631d8b0d50aa3c97a17870d2e69572c7b8f76c1e309ca37d60abae3c561cda4f
7
+ data.tar.gz: 0666f7fbb6a7e85d1b8856642a57731ca06b2583da7fc1bff55f5f74d15406f151df1247acd537889430b299b2c1bde2aff0135562c49f88a3c5ebbf95cc1af9
@@ -1,9 +1,4 @@
1
1
  module MasterSlave
2
-
3
- def self.config
4
- @config ||= MasterSlave::Configuration.new
5
- end
6
-
7
2
  class Configuration
8
3
  cattr_accessor :config_file
9
4
 
@@ -12,7 +7,7 @@ module MasterSlave
12
7
  end
13
8
 
14
9
  def slave_names
15
- raise "#{Rails.env}'s slave config not exist" if @content.blank?
10
+ raise "#{Rails.env}'s slave config is not exist" if @content.blank?
16
11
  @shard_names ||= @content.keys.sort
17
12
  end
18
13
 
@@ -28,7 +23,7 @@ module MasterSlave
28
23
 
29
24
  def load_config
30
25
  if File.exist?(self.class.config_file)
31
- hash_config = YAML.load(ERB.new(File.open(self.class.config_file).read).result)
26
+ hash_config = YAML.load(ERB.new(File.read(self.class.config_file)).result)
32
27
  HashWithIndifferentAccess.new(hash_config)[Rails.env]
33
28
  else
34
29
  {}
@@ -10,25 +10,21 @@ module MasterSlave
10
10
  end
11
11
 
12
12
  class << self
13
-
14
- def setup
15
- setup_connection
16
- end
17
-
18
13
  def connection_pool_name(slave_name)
19
14
  "master_slave_#{slave_name.to_s.strip}"
20
15
  end
21
16
 
22
- protected
23
-
24
17
  def setup_connection
25
18
  ActiveRecord::Base.slave_connection_names ||= []
26
19
  MasterSlave.config.slave_names.each do |slave_name|
27
- ActiveRecord::Base.slave_connection_names << slave_name.to_s.strip
28
- spec = MasterSlave.config.slave_config(slave_name).symbolize_keys
20
+ slave_name = slave_name.to_s.strip
21
+ if !ActiveRecord::Base.slave_connection_names.include? slave_name
22
+ ActiveRecord::Base.slave_connection_names << slave_name
23
+ end
29
24
 
30
- resolver = ActiveRecord::ConnectionAdapters::ConnectionSpecification::Resolver.new spec, spec
31
- spec = resolver.spec
25
+ spec = { Rails.env => MasterSlave.config.slave_config(slave_name) }
26
+ resolver = ActiveRecord::ConnectionAdapters::ConnectionSpecification::Resolver.new spec
27
+ spec = resolver.spec(Rails.env.to_sym)
32
28
 
33
29
  unless ActiveRecord::Base.respond_to?(spec.adapter_method)
34
30
  raise AdapterNotFound, "database configuration specifies nonexistent #{spec.config[:adapter]} adapter"
@@ -1,5 +1,5 @@
1
1
  module MasterSlave
2
- module Base
2
+ module Core
3
3
  extend ActiveSupport::Concern
4
4
 
5
5
  included do
@@ -47,7 +47,7 @@ module MasterSlave
47
47
 
48
48
  def with_slave(slave_name)
49
49
  slave_name = slave_name.to_s.strip
50
- raise "#{slave_name} not exist" unless ActiveRecord::Base.slave_connection_names.include?(slave_name)
50
+ raise "The slave name is not exist.(#{slave_name})" unless ActiveRecord::Base.slave_connection_names.include?(slave_name)
51
51
  MasterSlave::RuntimeRegistry.current_slave_name = slave_name
52
52
  MasterSlave::RuntimeRegistry.slave_block = true
53
53
  yield
@@ -3,10 +3,10 @@ module MasterSlave
3
3
 
4
4
  config.after_initialize do
5
5
  if File.exist?(MasterSlave::Configuration.config_file)
6
- puts "\033[32mmaster_slave is on!\033[0m"
7
- ActiveRecord::Base.send :include, MasterSlave::Base
8
- MasterSlave::ConnectionHandler.setup
9
- else
6
+ puts "\033[32mmaster_slave is on!\033[0m" unless MasterSlave.quiet
7
+ ActiveRecord::Base.send :include, MasterSlave::Core
8
+ MasterSlave.setup!
9
+ elsif !MasterSlave.quiet
10
10
  puts "\033[31mNo such file #{MasterSlave::Configuration.config_file}\033[0m"
11
11
  puts "\033[31mPlease execute `rails g master_slave:config`\033[0m"
12
12
  puts "\033[31mmaster_slave is off!\033[0m"
@@ -1,3 +1,3 @@
1
1
  module MasterSlave
2
- VERSION = '4.0.0'
2
+ VERSION = '4.1.0'
3
3
  end
data/lib/master_slave.rb CHANGED
@@ -1,6 +1,31 @@
1
- require 'master_slave/base'
2
- require 'master_slave/config'
1
+ require 'rails'
2
+ require 'active_support'
3
+ require 'active_record'
4
+ require 'master_slave/core'
5
+ require 'master_slave/configuration'
3
6
  require 'master_slave/connection_handler'
4
7
  require 'master_slave/runtime_registry'
5
8
  require 'master_slave/version'
6
9
  require 'master_slave/railtie'
10
+
11
+ module MasterSlave
12
+
13
+ class << self
14
+ def config
15
+ @config ||= MasterSlave::Configuration.new
16
+ end
17
+
18
+ def quiet
19
+ return @quiet if defined?(@quiet)
20
+ @quiet = false
21
+ end
22
+
23
+ def quiet=(value)
24
+ @quiet = !!value
25
+ end
26
+
27
+ def setup!
28
+ MasterSlave::ConnectionHandler.setup_connection
29
+ end
30
+ end
31
+ end
metadata CHANGED
@@ -1,69 +1,51 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: master_slave
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.0
5
- prerelease:
4
+ version: 4.1.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Tumayun
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-11-22 00:00:00.000000000 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
15
- name: rails
16
- requirement: !ruby/object:Gem::Requirement
17
- none: false
18
- requirements:
19
- - - ! '>='
20
- - !ruby/object:Gem::Version
21
- version: 4.0.0
22
- type: :runtime
23
- prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
27
- - - ! '>='
28
- - !ruby/object:Gem::Version
29
- version: 4.0.0
30
- description: mysql separate read and write.
11
+ date: 2015-01-06 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: Rails separate read and write.
31
14
  email: tumayun.2010@gmail.com
32
15
  executables: []
33
16
  extensions: []
34
17
  extra_rdoc_files: []
35
18
  files:
36
19
  - lib/master_slave.rb
37
- - lib/rails/generators/templates/shards.yml
38
- - lib/rails/generators/config_generator.rb
39
- - lib/master_slave/version.rb
40
- - lib/master_slave/railtie.rb
41
- - lib/master_slave/config.rb
20
+ - lib/master_slave/configuration.rb
42
21
  - lib/master_slave/connection_handler.rb
22
+ - lib/master_slave/core.rb
23
+ - lib/master_slave/railtie.rb
43
24
  - lib/master_slave/runtime_registry.rb
44
- - lib/master_slave/base.rb
25
+ - lib/master_slave/version.rb
26
+ - lib/rails/generators/config_generator.rb
27
+ - lib/rails/generators/templates/shards.yml
45
28
  homepage: https://github.com/tumayun/master_slave
46
29
  licenses: []
30
+ metadata: {}
47
31
  post_install_message:
48
32
  rdoc_options: []
49
33
  require_paths:
50
34
  - lib
51
35
  required_ruby_version: !ruby/object:Gem::Requirement
52
- none: false
53
36
  requirements:
54
- - - ! '>='
37
+ - - ">="
55
38
  - !ruby/object:Gem::Version
56
- version: '0'
39
+ version: 2.0.0
57
40
  required_rubygems_version: !ruby/object:Gem::Requirement
58
- none: false
59
41
  requirements:
60
- - - ! '>='
42
+ - - ">="
61
43
  - !ruby/object:Gem::Version
62
44
  version: '0'
63
45
  requirements: []
64
46
  rubyforge_project:
65
- rubygems_version: 1.8.23
47
+ rubygems_version: 2.2.2
66
48
  signing_key:
67
- specification_version: 3
49
+ specification_version: 4
68
50
  summary: master_slave.
69
51
  test_files: []