connection_manager 1.1.2 → 1.1.3

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,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- YzU2NjFmOWFjMzZiMmEzOTNmNjJmNjg4ZTQxYjZkYzNlNWJjYWRkZQ==
4
+ NjMyYTlkY2I0ZmFlNTI5ZDc1OGIyY2I1ZDUyZmQ3NTZhMTZmYzg3NQ==
5
5
  data.tar.gz: !binary |-
6
- N2E5YzYzZTI5Y2NkYTI3ZDRmNDMwODA0N2MwNThmYzg2YmNmOWE0OQ==
6
+ NWQzNjkxN2UxODYyNmQyNjllYmIwMWRhYzYzYjUwYmMyMmE1NTg5YQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- NGVhNzFmMDRmOWQ3MDM2YmEwOGIwMTQzOTc1MzRlNzIyMmMxOGMwNWE4ZjFi
10
- NmUxZGEyZjgwM2NmYThmYjdlN2E3N2IyNGI0OTFmZDljYTAzMDhiM2YyZWMz
11
- MDNkODYwMWJlYWQxYzM5OTc1MTc2MzJlMGVkZjU4OWEwZGZlZjE=
9
+ MmMyNTdiZjg0NmIwMDYxNTkzNzg5MjQ0MjYwNDdjOWZjNTIxYzQ4Yzg0MDgw
10
+ OGNkODg1ZGE4NGU0OTQ0ZWFiNTUxMzY2MjA2ZmE0YzRjOGU0N2U1ZDEwMTQ0
11
+ YmZhZGY3NzBmNDUwODlhZjM4M2RkNTBhMTk1ZjM3NzM4YmYzYTk=
12
12
  data.tar.gz: !binary |-
13
- NGFhMTMwZDk3NGI3OGNiMGQ5ODhiZGEyNGFhNDk4ZDBmOTMyNTg1YmJhNjRi
14
- NjFkZTg3Njk4ZmU5NDczODBmZmUxNDQ0NjI0MTc2ZjNkNGIyZWUxMjFlODlj
15
- Mzc5ODc2YWRmNzg1ZmMxNWY1ZmViNTlkYmVhZDU2MmJlYzViNzU=
13
+ MTk0NTg1MDViZjM0MmUyYjhmY2YzZDQ1YzRmOTkwNTFlZDAyYThkY2UzNWU1
14
+ YjVjMGFkNTU4MDBiZTRhMTFjMTA4YWJhZWY0YWVjMDk0Nzc0NzEyOTJlOTRl
15
+ Zjk3N2Q2M2JlNDA3YmVmNGQxYjNiMzcxYmQxN2MzN2Q4ZGQwMDM=
@@ -63,6 +63,61 @@ module ConnectionManager
63
63
  @klass.parent
64
64
  end
65
65
 
66
+ if ActiveRecord::VERSION::MAJOR == 3 && ActiveRecord::VERSION::MINOR == 0
67
+ # Rails 3.0
68
+ def find_by_sql(sql)
69
+ connection.select_all(sanitize_sql(sql), "#{name} Load").collect! { |record| instantiate(record) }
70
+ end
71
+
72
+ elsif ActiveRecord::VERSION::MAJOR == 3 && ActiveRecord::VERSION::MINOR == 1
73
+ # Rails 3.1
74
+ def find_by_sql(sql, binds = [])
75
+ connection.select_all(sanitize_sql(sql), "#{name} Load", binds).collect! { |record| instantiate(record) }
76
+ end
77
+
78
+ elsif ActiveRecord::VERSION::MAJOR == 3
79
+ # Rails 3.2
80
+ def find_by_sql(sql, binds = [])
81
+ logging_query_plan do
82
+ connection.select_all(sanitize_sql(sql), "#{name} Load", binds).collect! { |record| instantiate(record) }
83
+ end
84
+ end
85
+
86
+ elsif ActiveRecord::VERSION::MAJOR == 4 && ActiveRecord::VERSION::MINOR <= 1
87
+ #Rails 4.0 & 4.1
88
+ def find_by_sql(sql, binds = [])
89
+ result_set = connection.select_all(sanitize_sql(sql), "#{name} Load", binds)
90
+ column_types = {}
91
+ if result_set.respond_to? :column_types
92
+ column_types = result_set.column_types
93
+ else
94
+ ActiveSupport::Deprecation.warn "the object returned from `select_all` must respond to `column_types`"
95
+ end
96
+ result_set.map { |record| instantiate(record, column_types) }
97
+ end
98
+
99
+ else
100
+ # Edge Rails
101
+ def find_by_sql(sql, binds = [])
102
+ result_set = connection.select_all(sanitize_sql(sql), "#{name} Load", binds)
103
+ column_types = result_set.column_types.dup
104
+ columns_hash.each_key { |k| column_types.delete k }
105
+ message_bus = ActiveSupport::Notifications.instrumenter
106
+ payload = {
107
+ record_count: result_set.length,
108
+ class_name: name
109
+ }
110
+ message_bus.instrument('instantiation.active_record', payload) do
111
+ result_set.map { |record| instantiate(record, column_types) }
112
+ end
113
+ end
114
+ end
115
+
116
+ def count_by_sql(sql)
117
+ sql = sanitize_conditions(sql)
118
+ connection.select_value(sql, "#{name} Count").to_i
119
+ end
120
+
66
121
  # Pass all methods to @klass, this ensures objects
67
122
  # build from the query are the correct class and
68
123
  # any settings in the model like table_name_prefix
@@ -1,3 +1,3 @@
1
1
  module ConnectionManager
2
- VERSION = "1.1.2"
2
+ VERSION = "1.1.3"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: connection_manager
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.2
4
+ version: 1.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joshua Mckinney
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-08-07 00:00:00.000000000 Z
11
+ date: 2014-11-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -214,7 +214,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
214
214
  version: '0'
215
215
  requirements: []
216
216
  rubyforge_project: connection_manager
217
- rubygems_version: 2.2.2
217
+ rubygems_version: 2.4.2
218
218
  signing_key:
219
219
  specification_version: 4
220
220
  summary: Cross-schema, replication and mutli-DMS gem for ActiveRecord.