arel-mysql-index-hint 0.1.1 → 0.1.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 758e3e6dbf40d9363f4663cf9924b01ce6cdabf5
4
- data.tar.gz: 0b39b9b861187a818a2b072397cef9fbd0a2fa8a
3
+ metadata.gz: 243154f93cd1a66d1f97b1c1f7a4b262eeab8739
4
+ data.tar.gz: 4e85f62d35712c7c718d08aacc31206949e0ae77
5
5
  SHA512:
6
- metadata.gz: cccbf44e580a68b70b041764f5526552f32133e091f67159e6b976239fb4d964c2e0e66ad31f0bffa009e4e78f23af2ec73dfa6d64f2e76348815a3a79f7cbee
7
- data.tar.gz: 61d096700cc04ea3fb8d78e403d64e6751094a12156af6d6f4ffab3ee1e1aa3f42a7fbb5c0eb234ecba527d6445e2b4f970f1878ef432122c4bd827f015550a9
6
+ metadata.gz: 89a435f9127708456efad60d6912b98b3c8598d5f51f86c64d78a010d210c94d357f70417615c4f43efdd1a847c2b75f040d060d95ce687e2dbbf34fb4f55c16
7
+ data.tar.gz: 19e57e41253edd21929317188e8e3985ee857820590e1c170ccd316956ea8af87e9c4592200803da2bec9e9fe4f20e602404a8b63c4db76ee885c2e2c0c66755
data/.gitignore CHANGED
@@ -13,3 +13,4 @@
13
13
  *.a
14
14
  mkmf.log
15
15
  test.rb
16
+ /gemfiles/*.lock
@@ -6,3 +6,6 @@ rvm:
6
6
  script:
7
7
  - bundle install
8
8
  - bundle exec rake
9
+ gemfile:
10
+ - gemfiles/activerecord_4.1.gemfile
11
+ - gemfiles/activerecord_4.2.gemfile
@@ -0,0 +1,7 @@
1
+ appraise "activerecord-4.1" do
2
+ gem "activerecord", "4.1.10"
3
+ end
4
+
5
+ appraise "activerecord-4.2" do
6
+ gem "activerecord", "4.2.1"
7
+ end
@@ -1,7 +1,7 @@
1
1
  # coding: utf-8
2
2
  Gem::Specification.new do |spec|
3
3
  spec.name = "arel-mysql-index-hint"
4
- spec.version = "0.1.1"
4
+ spec.version = "0.1.2"
5
5
  spec.authors = ["Genki Sugawara"]
6
6
  spec.email = ["sgwr_dts@yahoo.co.jp"]
7
7
  spec.summary = %q{Add index hint to MySQL query in Arel.}
@@ -14,8 +14,8 @@ Gem::Specification.new do |spec|
14
14
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
15
15
  spec.require_paths = ["lib"]
16
16
 
17
- spec.add_dependency "activerecord", "~> 4.1.0"
18
- spec.add_dependency "arel", "~> 5.0.0"
17
+ spec.add_dependency "activerecord", ">= 4.1.0"
18
+ spec.add_dependency "arel", ">= 5.0.0"
19
19
 
20
20
  spec.add_development_dependency "bundler"
21
21
  spec.add_development_dependency "rake"
@@ -23,4 +23,5 @@ Gem::Specification.new do |spec|
23
23
  spec.add_development_dependency "rspec", ">= 3.0.0"
24
24
  spec.add_development_dependency "factory_girl"
25
25
  spec.add_development_dependency "coveralls"
26
+ spec.add_development_dependency "appraisal"
26
27
  end
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "activerecord", "4.1.10"
6
+
7
+ gemspec :path => "../"
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gem "activerecord", "4.2.1"
6
+
7
+ gemspec :path => "../"
@@ -1,5 +1,23 @@
1
- require "active_record"
1
+ require "active_support"
2
2
 
3
- require "arel-mysql-index-hint/active_record-hint_methods"
4
- require "arel-mysql-index-hint/active_record-querying"
5
- require "arel-mysql-index-hint/arel-visitors-mysql"
3
+ ActiveSupport.on_load :active_record do
4
+ require "arel-mysql-index-hint/active_record-hint_methods"
5
+ require "arel-mysql-index-hint/arel-table"
6
+ require "arel-mysql-index-hint/arel-visitors-mysql"
7
+
8
+ ActiveRecord::Relation.class_eval do
9
+ include ArelMysqlIndexHint::ActiveRecordHintMethods
10
+ end
11
+
12
+ ActiveRecord::Querying.class_eval do
13
+ delegate :hint, :to => :all
14
+ end
15
+
16
+ Arel::Table.class_eval do
17
+ include ArelMysqlIndexHint::ArelTable
18
+ end
19
+
20
+ Arel::Visitors::MySQL.class_eval do
21
+ include ArelMysqlIndexHint::ArelVisitorsMySQL
22
+ end
23
+ end
@@ -1,11 +1,40 @@
1
- module ActiveRecord::HintMethods
2
- def hint(index_hint_by_table)
3
- thread_index_hint_by_table = (Thread.current[Arel::Visitors::MySQL::INDEX_HINT_BY_TABLE_THREAD_KEY] ||= {}.with_indifferent_access)
4
- thread_index_hint_by_table.update(index_hint_by_table)
5
- self
6
- end
7
- end
1
+ module ArelMysqlIndexHint
2
+ module ActiveRecordHintMethods
3
+ extend ActiveSupport::Concern
4
+
5
+ included do
6
+ alias_method_chain :build_arel, :mysql_index_hint
7
+ end
8
+
9
+ def mysql_index_hint_value=(value)
10
+ @values[:mysql_index_hint] = value
11
+ end
12
+
13
+ def mysql_index_hint_value
14
+ @values[:mysql_index_hint] ||= {}.with_indifferent_access
15
+ end
8
16
 
9
- ActiveRecord::Relation.class_eval do
10
- include ActiveRecord::HintMethods
17
+ def hint(index_hint_by_table)
18
+ mysql_index_hint_value.update(index_hint_by_table)
19
+ self
20
+ end
21
+
22
+ def build_arel_with_mysql_index_hint
23
+ arel = build_arel_without_mysql_index_hint
24
+
25
+ if mysql_index_hint_value.present?
26
+ if mysql_index_hint_value.values.any? {|i| i.is_a?(Hash) }
27
+ index_hint_by_table = mysql_index_hint_value
28
+ else
29
+ index_hint_by_table = Hash.new(mysql_index_hint_value)
30
+ end
31
+
32
+ arel.ast.select {|i| i.is_a?(Arel::Table) }.each do |node|
33
+ node.index_hint = index_hint_by_table[node.name]
34
+ end
35
+ end
36
+
37
+ arel
38
+ end
39
+ end
11
40
  end
@@ -0,0 +1,5 @@
1
+ module ArelMysqlIndexHint
2
+ module ArelTable
3
+ attr_accessor :index_hint
4
+ end
5
+ end
@@ -1,51 +1,36 @@
1
- class Arel::Visitors::MySQL
2
- INDEX_HINT_BY_TABLE_THREAD_KEY = "INDEX_HINT_BY_TABLE_THREAD_KEY"
1
+ module ArelMysqlIndexHint
2
+ module ArelVisitorsMySQL
3
+ extend ActiveSupport::Concern
3
4
 
4
- def accept_with_index_hint(object)
5
- retval = accept_without_index_hint(object)
6
- clear_index_hint_by_table
7
- retval
8
- end
9
-
10
- alias_method_chain :accept, :index_hint
11
-
12
- def visit_Arel_Table_with_index_hint(o, a)
13
- sql = visit_Arel_Table_without_index_hint(o, a)
14
- index_hint = get_index_hint(o.name)
15
-
16
- if index_hint
17
- append_index_hint(sql, index_hint)
18
- else
19
- sql
5
+ included do
6
+ alias_method_chain :visit_Arel_Table, :mysql_index_hint
20
7
  end
21
- end
22
-
23
- alias_method_chain :visit_Arel_Table, :index_hint
24
8
 
25
- private
9
+ def visit_Arel_Table_with_mysql_index_hint(o, a)
10
+ sql = visit_Arel_Table_without_mysql_index_hint(o, a)
26
11
 
27
- def get_index_hint(table)
28
- index_hint_by_table = Thread.current[INDEX_HINT_BY_TABLE_THREAD_KEY]
29
-
30
- if index_hint_by_table.nil? or index_hint_by_table.empty?
31
- return nil
12
+ if o.index_hint
13
+ append_index_hint(sql, o.index_hint)
14
+ else
15
+ sql
16
+ end
32
17
  end
33
18
 
34
- if index_hint_by_table.values.any? {|i| i.is_a?(Hash) }
35
- index_hint_by_table[table]
36
- else
37
- index_hint_by_table
19
+ private
20
+
21
+ def append_index_hint(sql, index_hint)
22
+ index_hint_sql = index_hint.map {|index, hint_type|
23
+ index = Array(index).map {|i| quote_table_name(i) }
24
+ hint_type = hint_type.to_s.upcase
25
+ "#{hint_type} INDEX (#{index.join(', ')})"
26
+ }.join(", ")
27
+
28
+ if sql.is_a?(String)
29
+ sql + " " + index_hint_sql
30
+ else
31
+ sql << " " + index_hint_sql
32
+ sql
33
+ end
38
34
  end
39
35
  end
40
-
41
- def clear_index_hint_by_table
42
- Thread.current[INDEX_HINT_BY_TABLE_THREAD_KEY] = nil
43
- end
44
-
45
- def append_index_hint(sql, index_hint)
46
- sql + " " + index_hint.map {|index, hint_type|
47
- index = Array(index)
48
- "#{hint_type} INDEX (#{index.join(', ')})"
49
- }.join(", ")
50
- end
51
36
  end
@@ -6,14 +6,14 @@ describe "arel-mysql-index-hint" do
6
6
  eager_load(:microposts).
7
7
  where(microposts: {id: 1}).
8
8
  hint(microposts: {index_microposts_on_user_id_and_created_at: hint_type}).
9
- to_sql
9
+ to_sql.gsub(/\s+/, " ")
10
10
  end
11
11
 
12
12
  let(:sql) do
13
13
  "SELECT `users`.`id` AS t0_r0, `users`.`name` AS t0_r1, `users`.`email` AS t0_r2, `users`.`created_at` AS t0_r3, `users`.`updated_at` AS t0_r4, `users`.`password_digest` AS t0_r5, `users`.`remember_token` AS t0_r6, `users`.`admin` AS t0_r7, `microposts`.`id` AS t1_r0, `microposts`.`content` AS t1_r1, `microposts`.`user_id` AS t1_r2, `microposts`.`created_at` AS t1_r3, `microposts`.`updated_at` AS t1_r4 " +
14
14
  "FROM `users` " +
15
15
  "LEFT OUTER JOIN `microposts` " +
16
- "#{hint_type} INDEX (index_microposts_on_user_id_and_created_at) " +
16
+ "#{hint_type.to_s.upcase} INDEX (`index_microposts_on_user_id_and_created_at`) " +
17
17
  "ON `microposts`.`user_id` = `users`.`id` " +
18
18
  "WHERE `microposts`.`id` = 1"
19
19
  end
@@ -32,15 +32,15 @@ describe "arel-mysql-index-hint" do
32
32
  users: {index_users_on_email: hint_type},
33
33
  microposts: {index_microposts_on_user_id_and_created_at: hint_type},
34
34
  ).
35
- to_sql
35
+ to_sql.gsub(/\s+/, " ")
36
36
  end
37
37
 
38
38
  let(:sql) do
39
39
  "SELECT `users`.`id` AS t0_r0, `users`.`name` AS t0_r1, `users`.`email` AS t0_r2, `users`.`created_at` AS t0_r3, `users`.`updated_at` AS t0_r4, `users`.`password_digest` AS t0_r5, `users`.`remember_token` AS t0_r6, `users`.`admin` AS t0_r7, `microposts`.`id` AS t1_r0, `microposts`.`content` AS t1_r1, `microposts`.`user_id` AS t1_r2, `microposts`.`created_at` AS t1_r3, `microposts`.`updated_at` AS t1_r4 " +
40
40
  "FROM `users` " +
41
- "force INDEX (index_users_on_email) " +
41
+ "#{hint_type.to_s.upcase} INDEX (`index_users_on_email`) " +
42
42
  "LEFT OUTER JOIN `microposts` " +
43
- "#{hint_type} INDEX (index_microposts_on_user_id_and_created_at) " +
43
+ "#{hint_type.to_s.upcase} INDEX (`index_microposts_on_user_id_and_created_at`) " +
44
44
  "ON `microposts`.`user_id` = `users`.`id` " +
45
45
  "WHERE `microposts`.`id` = 1"
46
46
  end
@@ -6,14 +6,14 @@ describe "arel-mysql-index-hint" do
6
6
  includes(:microposts).
7
7
  where(microposts: {id: 1}).
8
8
  hint(microposts: {index_microposts_on_user_id_and_created_at: hint_type}).
9
- to_sql
9
+ to_sql.gsub(/\s+/, " ")
10
10
  end
11
11
 
12
12
  let(:sql) do
13
13
  "SELECT `users`.`id` AS t0_r0, `users`.`name` AS t0_r1, `users`.`email` AS t0_r2, `users`.`created_at` AS t0_r3, `users`.`updated_at` AS t0_r4, `users`.`password_digest` AS t0_r5, `users`.`remember_token` AS t0_r6, `users`.`admin` AS t0_r7, `microposts`.`id` AS t1_r0, `microposts`.`content` AS t1_r1, `microposts`.`user_id` AS t1_r2, `microposts`.`created_at` AS t1_r3, `microposts`.`updated_at` AS t1_r4 " +
14
14
  "FROM `users` " +
15
15
  "LEFT OUTER JOIN `microposts` " +
16
- "#{hint_type} INDEX (index_microposts_on_user_id_and_created_at) " +
16
+ "#{hint_type.to_s.upcase} INDEX (`index_microposts_on_user_id_and_created_at`) " +
17
17
  "ON `microposts`.`user_id` = `users`.`id` " +
18
18
  "WHERE `microposts`.`id` = 1"
19
19
  end
@@ -32,15 +32,15 @@ describe "arel-mysql-index-hint" do
32
32
  users: {index_users_on_email: hint_type},
33
33
  microposts: {index_microposts_on_user_id_and_created_at: hint_type},
34
34
  ).
35
- to_sql
35
+ to_sql.gsub(/\s+/, " ")
36
36
  end
37
37
 
38
38
  let(:sql) do
39
39
  "SELECT `users`.`id` AS t0_r0, `users`.`name` AS t0_r1, `users`.`email` AS t0_r2, `users`.`created_at` AS t0_r3, `users`.`updated_at` AS t0_r4, `users`.`password_digest` AS t0_r5, `users`.`remember_token` AS t0_r6, `users`.`admin` AS t0_r7, `microposts`.`id` AS t1_r0, `microposts`.`content` AS t1_r1, `microposts`.`user_id` AS t1_r2, `microposts`.`created_at` AS t1_r3, `microposts`.`updated_at` AS t1_r4 " +
40
40
  "FROM `users` " +
41
- "force INDEX (index_users_on_email) " +
41
+ "#{hint_type.to_s.upcase} INDEX (`index_users_on_email`) " +
42
42
  "LEFT OUTER JOIN `microposts` " +
43
- "#{hint_type} INDEX (index_microposts_on_user_id_and_created_at) " +
43
+ "#{hint_type.to_s.upcase} INDEX (`index_microposts_on_user_id_and_created_at`) " +
44
44
  "ON `microposts`.`user_id` = `users`.`id` " +
45
45
  "WHERE `microposts`.`id` = 1"
46
46
  end
@@ -5,13 +5,13 @@ describe "arel-mysql-index-hint" do
5
5
  User.
6
6
  joins(:microposts).
7
7
  hint(microposts: {index_microposts_on_user_id_and_created_at: hint_type}).
8
- to_sql
8
+ to_sql.gsub(/\s+/, " ")
9
9
  end
10
10
 
11
11
  let(:sql) do
12
12
  "SELECT `users`.* FROM `users` " +
13
13
  "INNER JOIN `microposts` " +
14
- "#{hint_type} INDEX (index_microposts_on_user_id_and_created_at) " +
14
+ "#{hint_type.to_s.upcase} INDEX (`index_microposts_on_user_id_and_created_at`) " +
15
15
  "ON `microposts`.`user_id` = `users`.`id`"
16
16
  end
17
17
 
@@ -39,14 +39,14 @@ describe "arel-mysql-index-hint" do
39
39
  users: {index_users_on_email: hint_type},
40
40
  microposts: {index_microposts_on_user_id_and_created_at: hint_type},
41
41
  ).
42
- to_sql
42
+ to_sql.gsub(/\s+/, " ")
43
43
  end
44
44
 
45
45
  let(:sql) do
46
46
  "SELECT `users`.* FROM `users` " +
47
- "#{hint_type} INDEX (index_users_on_email) " +
47
+ "#{hint_type.to_s.upcase} INDEX (`index_users_on_email`) " +
48
48
  "INNER JOIN `microposts` " +
49
- "#{hint_type} INDEX (index_microposts_on_user_id_and_created_at) " +
49
+ "#{hint_type.to_s.upcase} INDEX (`index_microposts_on_user_id_and_created_at`) " +
50
50
  "ON `microposts`.`user_id` = `users`.`id`"
51
51
  end
52
52
 
@@ -71,13 +71,13 @@ describe "arel-mysql-index-hint" do
71
71
  User.
72
72
  hint(microposts: {index_microposts_on_user_id_and_created_at: hint_type}).
73
73
  joins(:microposts).
74
- to_sql
74
+ to_sql.gsub(/\s+/, " ")
75
75
  end
76
76
 
77
77
  let(:sql) do
78
78
  "SELECT `users`.* FROM `users` " +
79
79
  "INNER JOIN `microposts` " +
80
- "#{hint_type} INDEX (index_microposts_on_user_id_and_created_at) " +
80
+ "#{hint_type.to_s.upcase} INDEX (`index_microposts_on_user_id_and_created_at`) " +
81
81
  "ON `microposts`.`user_id` = `users`.`id`"
82
82
  end
83
83
 
@@ -90,7 +90,7 @@ describe "arel-mysql-index-hint" do
90
90
  subject do
91
91
  User.
92
92
  joins(:microposts).
93
- to_sql
93
+ to_sql.gsub(/\s+/, " ")
94
94
  end
95
95
 
96
96
  let(:sql) do
@@ -5,13 +5,13 @@ describe "arel-mysql-index-hint" do
5
5
  where(id: 1).
6
6
  preload(:microposts).
7
7
  hint(users: {index_users_on_email: hint_type}).
8
- to_sql
8
+ to_sql.gsub(/\s+/, " ")
9
9
  end
10
10
 
11
11
  let(:sql) do
12
12
  "SELECT `users`.* " +
13
13
  "FROM `users` " +
14
- "force INDEX (index_users_on_email) " +
14
+ "#{hint_type.to_s.upcase} INDEX (`index_users_on_email`) " +
15
15
  "WHERE `users`.`id` = 1"
16
16
  end
17
17
 
@@ -3,13 +3,13 @@ describe "arel-mysql-index-hint" do
3
3
  subject do
4
4
  User.
5
5
  hint(index_users_on_email: hint_type).
6
- to_sql
6
+ to_sql.gsub(/\s+/, " ")
7
7
  end
8
8
 
9
9
  let(:sql) do
10
10
  "SELECT `users`.* " +
11
11
  "FROM `users` " +
12
- "#{hint_type} INDEX (index_users_on_email)"
12
+ "#{hint_type.to_s.upcase} INDEX (`index_users_on_email`)"
13
13
  end
14
14
 
15
15
  let(:hint_type) { :force }
@@ -4,13 +4,13 @@ describe "arel-mysql-index-hint" do
4
4
  User.
5
5
  all.
6
6
  hint(users: {index_users_on_email: hint_type}).
7
- to_sql
7
+ to_sql.gsub(/\s+/, " ")
8
8
  end
9
9
 
10
10
  let(:sql) do
11
11
  "SELECT `users`.* " +
12
12
  "FROM `users` " +
13
- "#{hint_type} INDEX (index_users_on_email)"
13
+ "#{hint_type.to_s.upcase} INDEX (`index_users_on_email`)"
14
14
  end
15
15
 
16
16
  let(:hint_type) { :force }
@@ -22,13 +22,13 @@ describe "arel-mysql-index-hint" do
22
22
  subject do
23
23
  User.
24
24
  hint(users: {index_users_on_email: hint_type}).
25
- to_sql
25
+ to_sql.gsub(/\s+/, " ")
26
26
  end
27
27
 
28
28
  let(:sql) do
29
29
  "SELECT `users`.* " +
30
30
  "FROM `users` " +
31
- "#{hint_type} INDEX (index_users_on_email)"
31
+ "#{hint_type.to_s.upcase} INDEX (`index_users_on_email`)"
32
32
  end
33
33
 
34
34
  let(:hint_type) { :force }
@@ -41,13 +41,13 @@ describe "arel-mysql-index-hint" do
41
41
  User.
42
42
  limit(1).
43
43
  hint(users: {index_users_on_email: hint_type}).
44
- to_sql
44
+ to_sql.gsub(/\s+/, " ")
45
45
  end
46
46
 
47
47
  let(:sql) do
48
- "SELECT `users`.* " +
48
+ "SELECT `users`.* " +
49
49
  "FROM `users` " +
50
- "#{hint_type} INDEX (index_users_on_email) " +
50
+ "#{hint_type.to_s.upcase} INDEX (`index_users_on_email`) " +
51
51
  "LIMIT 1"
52
52
  end
53
53
 
@@ -64,8 +64,8 @@ describe "arel-mysql-index-hint" do
64
64
  end
65
65
 
66
66
  let(:sql) do
67
- "SELECT `users`.* FROM `users` " +
68
- "#{hint_type} INDEX (index_users_on_email) " +
67
+ "SELECT `users`.* FROM `users` " +
68
+ "#{hint_type.to_s.upcase} INDEX (`index_users_on_email`) " +
69
69
  "ORDER BY `users`.`id` ASC " +
70
70
  "LIMIT 1"
71
71
  end
@@ -74,7 +74,7 @@ describe "arel-mysql-index-hint" do
74
74
 
75
75
  it do
76
76
  subject
77
- expect(sql_log).to include sql
77
+ expect(sql_log.first).to eq sql
78
78
  end
79
79
  end
80
80
 
@@ -86,8 +86,8 @@ describe "arel-mysql-index-hint" do
86
86
  end
87
87
 
88
88
  let(:sql) do
89
- "SELECT `users`.* FROM `users` " +
90
- "#{hint_type} INDEX (index_users_on_email) " +
89
+ "SELECT `users`.* FROM `users` " +
90
+ "#{hint_type.to_s.upcase} INDEX (`index_users_on_email`) " +
91
91
  "LIMIT 1"
92
92
  end
93
93
 
@@ -95,7 +95,7 @@ describe "arel-mysql-index-hint" do
95
95
 
96
96
  it do
97
97
  subject
98
- expect(sql_log).to include sql
98
+ expect(sql_log.first).to eq sql
99
99
  end
100
100
  end
101
101
  end
@@ -9,13 +9,15 @@ if ENV['TRAVIS']
9
9
  end
10
10
  end
11
11
 
12
+ require "active_record"
12
13
  require "arel-mysql-index-hint"
13
14
  require "models"
14
15
 
15
16
  $__arel_mysql_index_hint_sql_log__ = []
16
17
 
17
18
  ActiveSupport::Notifications.subscribe('sql.active_record') do |name, start, finish, id, payload|
18
- $__arel_mysql_index_hint_sql_log__ << payload[:sql]
19
+ sql = payload[:sql]
20
+ $__arel_mysql_index_hint_sql_log__ << sql.gsub(/\s+/, " ") if sql
19
21
  end
20
22
 
21
23
  RSpec.configure do |config|
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: arel-mysql-index-hint
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Genki Sugawara
@@ -14,28 +14,28 @@ dependencies:
14
14
  name: activerecord
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - '>='
18
18
  - !ruby/object:Gem::Version
19
19
  version: 4.1.0
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
26
  version: 4.1.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: arel
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ~>
31
+ - - '>='
32
32
  - !ruby/object:Gem::Version
33
33
  version: 5.0.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ~>
38
+ - - '>='
39
39
  - !ruby/object:Gem::Version
40
40
  version: 5.0.0
41
41
  - !ruby/object:Gem::Dependency
@@ -122,6 +122,20 @@ dependencies:
122
122
  - - '>='
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: appraisal
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - '>='
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - '>='
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
125
139
  description: Add index hint to MySQL query in Arel.
126
140
  email:
127
141
  - sgwr_dts@yahoo.co.jp
@@ -132,15 +146,18 @@ files:
132
146
  - .gitignore
133
147
  - .rspec
134
148
  - .travis.yml
149
+ - Appraisals
135
150
  - Gemfile
136
151
  - LICENSE.txt
137
152
  - README.md
138
153
  - Rakefile
139
154
  - Schemafile
140
155
  - arel-mysql-index-hint.gemspec
156
+ - gemfiles/activerecord_4.1.gemfile
157
+ - gemfiles/activerecord_4.2.gemfile
141
158
  - lib/arel-mysql-index-hint.rb
142
159
  - lib/arel-mysql-index-hint/active_record-hint_methods.rb
143
- - lib/arel-mysql-index-hint/active_record-querying.rb
160
+ - lib/arel-mysql-index-hint/arel-table.rb
144
161
  - lib/arel-mysql-index-hint/arel-visitors-mysql.rb
145
162
  - spec/arel-mysql-index-hint/eager_load_spec.rb
146
163
  - spec/arel-mysql-index-hint/includes_spec.rb
@@ -1,3 +0,0 @@
1
- ActiveRecord::Querying.class_eval do
2
- delegate :hint, :to => :all
3
- end