surus 0.6.2 → 0.6.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a3aff7e0e8b000df98229acb0c68f228f94ca85d
4
- data.tar.gz: dec38237d5576383026aae08b756084686c0584b
3
+ metadata.gz: 3979b782fd1e13d2e96ba994192cacf5433c53d7
4
+ data.tar.gz: 8f030cf17f9d8fb30dace66d08edb1b224a192bf
5
5
  SHA512:
6
- metadata.gz: e6ffb1bbac2326e6a07ab64340d94414c68f7b34fd921b2570091a02b83638092d26381590617b8b156a108a84f5256e1c938d64c516b0b8c640c03905a41251
7
- data.tar.gz: a38ecc94ac49448b5039f8aac1c18f665575fa912ad3a44224ac4cefc7e209adac1fb70498d4a6a8952a013fe4f4eb88aaa81d1857c4085e9873a3ecf6504e1b
6
+ metadata.gz: aab88cce49c5e6582b04c14b43e38da23e7463fec01e5772650537d241fa23cf6e1fdf06a40a57e6e3d5e2a4663dc8700d9b7e95a01914b9196b494c91a55b58
7
+ data.tar.gz: c3da04f7796d29af7a73d1ffff121ef2f206613921f8f1b6456e52257ee4e31bfc74bd32e0c9d3f123c1eb49c588b40e588d2c3517d2212a0baa74e57058fb44
@@ -0,0 +1,7 @@
1
+ inherit_from: .rubocop_todo.yml
2
+
3
+ AllCops:
4
+ Exclude:
5
+ - surus.gemspec
6
+ - Guardfile
7
+ - Rakefile
@@ -0,0 +1,339 @@
1
+ # This configuration was generated by
2
+ # `rubocop --auto-gen-config`
3
+ # on 2016-03-24 13:49:46 -0500 using RuboCop version 0.38.0.
4
+ # The point is for the user to remove these configuration records
5
+ # one by one as the offenses are removed from the code base.
6
+ # Note that changes in the inspected code, or installation of new
7
+ # versions of RuboCop, may require this file to be generated again.
8
+
9
+ # Offense count: 1
10
+ # Cop supports --auto-correct.
11
+ Lint/DeprecatedClassMethods:
12
+ Exclude:
13
+ - 'lib/generators/surus/hstore/templates/install_hstore.rb'
14
+
15
+ # Offense count: 5
16
+ # Cop supports --auto-correct.
17
+ # Configuration parameters: AlignWith, SupportedStyles, AutoCorrect.
18
+ # SupportedStyles: keyword, variable, start_of_line
19
+ Lint/EndAlignment:
20
+ Enabled: false
21
+
22
+ # Offense count: 1
23
+ Lint/ShadowingOuterLocalVariable:
24
+ Exclude:
25
+ - 'lib/surus/hstore/serializer.rb'
26
+
27
+ # Offense count: 1
28
+ Lint/UnderscorePrefixedVariableName:
29
+ Exclude:
30
+ - 'lib/surus/json/query.rb'
31
+
32
+ # Offense count: 1
33
+ # Cop supports --auto-correct.
34
+ # Configuration parameters: IgnoreEmptyBlocks.
35
+ Lint/UnusedBlockArgument:
36
+ Exclude:
37
+ - 'bench/hstore_find.rb'
38
+
39
+ # Offense count: 7
40
+ Lint/UselessAssignment:
41
+ Exclude:
42
+ - 'lib/generators/surus/hstore/templates/install_hstore.rb'
43
+ - 'spec/json/json_spec.rb'
44
+
45
+ # Offense count: 7
46
+ Metrics/AbcSize:
47
+ Max: 30
48
+
49
+ # Offense count: 1
50
+ # Configuration parameters: CountComments.
51
+ Metrics/ClassLength:
52
+ Max: 245
53
+
54
+ # Offense count: 4
55
+ Metrics/CyclomaticComplexity:
56
+ Max: 10
57
+
58
+ # Offense count: 76
59
+ # Configuration parameters: AllowHeredoc, AllowURI, URISchemes.
60
+ # URISchemes: http, https
61
+ Metrics/LineLength:
62
+ Max: 151
63
+
64
+ # Offense count: 7
65
+ # Configuration parameters: CountComments.
66
+ Metrics/MethodLength:
67
+ Max: 220
68
+
69
+ # Offense count: 2
70
+ Metrics/PerceivedComplexity:
71
+ Max: 12
72
+
73
+ # Offense count: 1
74
+ Performance/TimesMap:
75
+ Exclude:
76
+ - 'bench/hstore_find.rb'
77
+
78
+ # Offense count: 1
79
+ # Cop supports --auto-correct.
80
+ # Configuration parameters: EnforcedStyle, SupportedStyles, IndentationWidth.
81
+ # SupportedStyles: outdent, indent
82
+ Style/AccessModifierIndentation:
83
+ Enabled: false
84
+
85
+ # Offense count: 11
86
+ # Cop supports --auto-correct.
87
+ # Configuration parameters: EnforcedHashRocketStyle, EnforcedColonStyle, EnforcedLastArgumentHashStyle, SupportedLastArgumentHashStyles.
88
+ # SupportedLastArgumentHashStyles: always_inspect, always_ignore, ignore_implicit, ignore_explicit
89
+ Style/AlignHash:
90
+ Exclude:
91
+ - 'bench/synchronous_commit.rb'
92
+
93
+ # Offense count: 8
94
+ # Cop supports --auto-correct.
95
+ # Configuration parameters: EnforcedStyle, SupportedStyles.
96
+ # SupportedStyles: with_first_parameter, with_fixed_indentation
97
+ Style/AlignParameters:
98
+ Exclude:
99
+ - 'spec/spec_helper.rb'
100
+
101
+ # Offense count: 2
102
+ # Cop supports --auto-correct.
103
+ # Configuration parameters: EnforcedStyle, SupportedStyles.
104
+ # SupportedStyles: percent_q, bare_percent
105
+ Style/BarePercentLiterals:
106
+ Exclude:
107
+ - 'lib/surus/hstore/serializer.rb'
108
+
109
+ # Offense count: 4
110
+ # Cop supports --auto-correct.
111
+ # Configuration parameters: IndentWhenRelativeTo, SupportedStyles, IndentOneStep, IndentationWidth.
112
+ # SupportedStyles: case, end
113
+ Style/CaseIndentation:
114
+ Enabled: false
115
+
116
+ # Offense count: 11
117
+ # Cop supports --auto-correct.
118
+ # Configuration parameters: EnforcedStyle, SupportedStyles.
119
+ # SupportedStyles: is_a?, kind_of?
120
+ Style/ClassCheck:
121
+ Exclude:
122
+ - 'lib/surus/hstore/serializer.rb'
123
+ - 'lib/surus/json/query.rb'
124
+
125
+ # Offense count: 1
126
+ # Cop supports --auto-correct.
127
+ # Configuration parameters: SingleLineConditionsOnly.
128
+ Style/ConditionalAssignment:
129
+ Exclude:
130
+ - 'lib/generators/surus/hstore/templates/install_hstore.rb'
131
+
132
+ # Offense count: 22
133
+ Style/Documentation:
134
+ Exclude:
135
+ - 'spec/**/*'
136
+ - 'test/**/*'
137
+ - 'bench/benchmark_helper.rb'
138
+ - 'lib/generators/surus/hstore/install_generator.rb'
139
+ - 'lib/generators/surus/hstore/templates/install_hstore.rb'
140
+ - 'lib/surus/array/scope.rb'
141
+ - 'lib/surus/hstore/scope.rb'
142
+ - 'lib/surus/hstore/serializer.rb'
143
+ - 'lib/surus/json/array_agg_query.rb'
144
+ - 'lib/surus/json/association_scope_builder.rb'
145
+ - 'lib/surus/json/belongs_to_scope_builder.rb'
146
+ - 'lib/surus/json/has_and_belongs_to_many_scope_builder.rb'
147
+ - 'lib/surus/json/has_many_scope_builder.rb'
148
+ - 'lib/surus/json/model.rb'
149
+ - 'lib/surus/json/query.rb'
150
+ - 'lib/surus/json/row_query.rb'
151
+ - 'lib/surus/synchronous_commit/connection.rb'
152
+
153
+ # Offense count: 4
154
+ # Cop supports --auto-correct.
155
+ Style/ElseAlignment:
156
+ Exclude:
157
+ - 'lib/surus/hstore/serializer.rb'
158
+ - 'lib/surus/json/query.rb'
159
+
160
+ # Offense count: 2
161
+ # Cop supports --auto-correct.
162
+ Style/EmptyLines:
163
+ Exclude:
164
+ - 'bench/hstore_find.rb'
165
+ - 'lib/generators/surus/hstore/templates/install_hstore.rb'
166
+
167
+ # Offense count: 3
168
+ # Cop supports --auto-correct.
169
+ Style/EmptyLinesAroundAccessModifier:
170
+ Exclude:
171
+ - 'lib/generators/surus/hstore/templates/install_hstore.rb'
172
+ - 'lib/surus/array/scope.rb'
173
+ - 'lib/surus/json/query.rb'
174
+
175
+ # Offense count: 2
176
+ # Cop supports --auto-correct.
177
+ # Configuration parameters: EnforcedStyle, SupportedStyles.
178
+ # SupportedStyles: empty_lines, no_empty_lines
179
+ Style/EmptyLinesAroundClassBody:
180
+ Exclude:
181
+ - 'lib/generators/surus/hstore/install_generator.rb'
182
+ - 'lib/surus/json/has_and_belongs_to_many_scope_builder.rb'
183
+
184
+ # Offense count: 1
185
+ # Cop supports --auto-correct.
186
+ Style/EmptyLinesAroundMethodBody:
187
+ Exclude:
188
+ - 'lib/generators/surus/hstore/templates/install_hstore.rb'
189
+
190
+ # Offense count: 1
191
+ # Cop supports --auto-correct.
192
+ # Configuration parameters: AllowForAlignment, ForceEqualSignAlignment.
193
+ Style/ExtraSpacing:
194
+ Exclude:
195
+ - 'spec/factories.rb'
196
+
197
+ # Offense count: 1
198
+ # Configuration parameters: EnforcedStyle, SupportedStyles.
199
+ # SupportedStyles: format, sprintf, percent
200
+ Style/FormatString:
201
+ Exclude:
202
+ - 'lib/generators/surus/hstore/install_generator.rb'
203
+
204
+ # Offense count: 1
205
+ # Cop supports --auto-correct.
206
+ # Configuration parameters: EnforcedStyle, SupportedStyles.
207
+ # SupportedStyles: normal, rails
208
+ Style/IndentationConsistency:
209
+ Exclude:
210
+ - 'lib/surus/json/query.rb'
211
+
212
+ # Offense count: 4
213
+ # Cop supports --auto-correct.
214
+ # Configuration parameters: Width.
215
+ Style/IndentationWidth:
216
+ Exclude:
217
+ - 'lib/surus/hstore/serializer.rb'
218
+ - 'lib/surus/json/query.rb'
219
+
220
+ # Offense count: 7
221
+ # Cop supports --auto-correct.
222
+ # Configuration parameters: EnforcedStyle, SupportedStyles, IndentationWidth.
223
+ # SupportedStyles: aligned, indented
224
+ Style/MultilineMethodCallIndentation:
225
+ Enabled: false
226
+
227
+ # Offense count: 1
228
+ # Cop supports --auto-correct.
229
+ Style/MutableConstant:
230
+ Exclude:
231
+ - 'lib/surus/version.rb'
232
+
233
+ # Offense count: 1
234
+ # Cop supports --auto-correct.
235
+ Style/NilComparison:
236
+ Exclude:
237
+ - 'lib/surus/hstore/serializer.rb'
238
+
239
+ # Offense count: 2
240
+ # Cop supports --auto-correct.
241
+ Style/NumericLiterals:
242
+ MinDigits: 6
243
+
244
+ # Offense count: 6
245
+ # Cop supports --auto-correct.
246
+ # Configuration parameters: PreferredDelimiters.
247
+ Style/PercentLiteralDelimiters:
248
+ Exclude:
249
+ - 'spec/array/scope_spec.rb'
250
+ - 'spec/hstore/serializer_spec.rb'
251
+
252
+ # Offense count: 1
253
+ # Cop supports --auto-correct.
254
+ Style/RedundantParentheses:
255
+ Exclude:
256
+ - 'lib/generators/surus/hstore/templates/install_hstore.rb'
257
+
258
+ # Offense count: 5
259
+ # Cop supports --auto-correct.
260
+ Style/SpaceAfterComma:
261
+ Exclude:
262
+ - 'bench/benchmark_helper.rb'
263
+ - 'spec/hstore/serializer_spec.rb'
264
+
265
+ # Offense count: 4
266
+ # Cop supports --auto-correct.
267
+ # Configuration parameters: SupportedStyles.
268
+ # SupportedStyles: space, no_space
269
+ Style/SpaceAroundEqualsInParameterDefault:
270
+ EnforcedStyle: no_space
271
+
272
+ # Offense count: 1
273
+ # Cop supports --auto-correct.
274
+ Style/SpaceAroundKeyword:
275
+ Exclude:
276
+ - 'lib/generators/surus/hstore/templates/install_hstore.rb'
277
+
278
+ # Offense count: 2
279
+ # Cop supports --auto-correct.
280
+ # Configuration parameters: EnforcedStyle, SupportedStyles.
281
+ # SupportedStyles: space, no_space
282
+ Style/SpaceBeforeBlockBraces:
283
+ Enabled: false
284
+
285
+ # Offense count: 4
286
+ # Cop supports --auto-correct.
287
+ # Configuration parameters: EnforcedStyle, SupportedStyles, EnforcedStyleForEmptyBraces, SpaceBeforeBlockParameters.
288
+ # SupportedStyles: space, no_space
289
+ Style/SpaceInsideBlockBraces:
290
+ Enabled: false
291
+
292
+ # Offense count: 74
293
+ # Cop supports --auto-correct.
294
+ # Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBraces, SupportedStyles.
295
+ # SupportedStyles: space, no_space
296
+ Style/SpaceInsideHashLiteralBraces:
297
+ Enabled: false
298
+
299
+ # Offense count: 272
300
+ # Cop supports --auto-correct.
301
+ # Configuration parameters: EnforcedStyle, SupportedStyles, ConsistentQuotesInMultiline.
302
+ # SupportedStyles: single_quotes, double_quotes
303
+ Style/StringLiterals:
304
+ Enabled: false
305
+
306
+ # Offense count: 1
307
+ # Cop supports --auto-correct.
308
+ Style/Tab:
309
+ Exclude:
310
+ - 'lib/surus/json/query.rb'
311
+
312
+ # Offense count: 1
313
+ # Cop supports --auto-correct.
314
+ # Configuration parameters: EnforcedStyleForMultiline, SupportedStyles.
315
+ # SupportedStyles: comma, consistent_comma, no_comma
316
+ Style/TrailingCommaInLiteral:
317
+ Exclude:
318
+ - 'spec/hstore/serializer_spec.rb'
319
+
320
+ # Offense count: 1
321
+ # Cop supports --auto-correct.
322
+ # Configuration parameters: ExactNameMatch, AllowPredicates, AllowDSLWriters, IgnoreClassMethods, Whitelist.
323
+ # Whitelist: to_ary, to_a, to_c, to_enum, to_h, to_hash, to_i, to_int, to_io, to_open, to_path, to_proc, to_r, to_regexp, to_str, to_s, to_sym
324
+ Style/TrivialAccessors:
325
+ Exclude:
326
+ - 'bench/benchmark_helper.rb'
327
+
328
+ # Offense count: 1
329
+ # Cop supports --auto-correct.
330
+ Style/UnneededInterpolation:
331
+ Exclude:
332
+ - 'lib/surus/json/has_many_scope_builder.rb'
333
+
334
+ # Offense count: 4
335
+ # Cop supports --auto-correct.
336
+ # Configuration parameters: EnforcedStyle, SupportedStyles, MinSize, WordRegex.
337
+ # SupportedStyles: percent, brackets
338
+ Style/WordArray:
339
+ Enabled: false
@@ -1,12 +1,18 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 2.2.0
4
- - 2.1.5
5
- - 2.0.0
3
+ - 2.3.1
4
+ - 2.2.5
5
+ - 2.1.9
6
+ - rbx
6
7
  gemfile:
7
8
  - gemfiles/4.0.gemfile
8
9
  - gemfiles/4.1.gemfile
9
10
  - gemfiles/4.2.gemfile
11
+ - gemfiles/5.0.gemfile
12
+
13
+ matrix:
14
+ allow_failures:
15
+ - rvm: rbx
10
16
 
11
17
  addons:
12
18
  postgresql: "9.2"
@@ -15,3 +21,7 @@ before_script:
15
21
  - cp spec/database.yml.travis spec/database.yml
16
22
  - psql -U postgres -c 'create database surus_test;'
17
23
  - psql -U postgres -f spec/database_structure.sql surus_test
24
+
25
+ script:
26
+ - bundle exec rake spec
27
+ - bundle exec rubocop
@@ -1,3 +1,7 @@
1
+ # 0.6.3 (May 14, 2016)
2
+
3
+ * Gemspec allows Rails 5
4
+
1
5
  # 0.6.2 (November 19, 2015)
2
6
 
3
7
  * Prefix column name with table names in query conditions (Michał Krzyżanowski)
@@ -31,7 +31,7 @@ class EavMasterRecord < ActiveRecord::Base
31
31
  def persist_properties
32
32
  eav_detail_records.clear
33
33
  @properties.each do |k,v|
34
- eav_detail_records.create! :key => k, :value => v
34
+ eav_detail_records.create! key: k, value: v
35
35
  end
36
36
  end
37
37
  end
@@ -45,7 +45,7 @@ if eav
45
45
  print "Creating EAV test data... "
46
46
  EavMasterRecord.transaction do
47
47
  num_records.times do |i|
48
- EavMasterRecord.create! :properties => key_value_pairs[i]
48
+ EavMasterRecord.create! properties: key_value_pairs[i]
49
49
  end
50
50
  end
51
51
  puts "Done."
@@ -54,7 +54,7 @@ end
54
54
  print "Creating Surus test data... "
55
55
  SurusKeyValueRecord.transaction do
56
56
  num_records.times do |i|
57
- SurusKeyValueRecord.create! :properties => key_value_pairs[i]
57
+ SurusKeyValueRecord.create! properties: key_value_pairs[i]
58
58
  end
59
59
  end
60
60
  puts "Done."
@@ -63,7 +63,7 @@ if yaml
63
63
  print "Creating YAML test data... "
64
64
  YamlKeyValueRecord.transaction do
65
65
  num_records.times do |i|
66
- YamlKeyValueRecord.create! :properties => key_value_pairs[i]
66
+ YamlKeyValueRecord.create! properties: key_value_pairs[i]
67
67
  end
68
68
  end
69
69
  puts "Done."
@@ -20,22 +20,22 @@ puts "Done."
20
20
  random_io = StringIO.new(random_string)
21
21
 
22
22
  create_wide_record = lambda do
23
- WideRecord.create! :a => random_io.read(wide_field_width),
24
- :b => random_io.read(wide_field_width),
25
- :c => random_io.read(wide_field_width),
26
- :d => random_io.read(wide_field_width),
27
- :e => random_io.read(wide_field_width),
28
- :f => random_io.read(wide_field_width),
29
- :g => random_io.read(wide_field_width),
30
- :h => random_io.read(wide_field_width),
31
- :i => random_io.read(wide_field_width),
32
- :j => random_io.read(wide_field_width)
23
+ WideRecord.create! a: random_io.read(wide_field_width),
24
+ b: random_io.read(wide_field_width),
25
+ c: random_io.read(wide_field_width),
26
+ d: random_io.read(wide_field_width),
27
+ e: random_io.read(wide_field_width),
28
+ f: random_io.read(wide_field_width),
29
+ g: random_io.read(wide_field_width),
30
+ h: random_io.read(wide_field_width),
31
+ i: random_io.read(wide_field_width),
32
+ j: random_io.read(wide_field_width)
33
33
  end
34
34
 
35
35
  create_narrow_record = lambda do
36
- NarrowRecord.create! :a => random_io.read(narrow_field_width),
37
- :b => random_io.read(narrow_field_width),
38
- :c => random_io.read(narrow_field_width)
36
+ NarrowRecord.create! a: random_io.read(narrow_field_width),
37
+ b: random_io.read(narrow_field_width),
38
+ c: random_io.read(narrow_field_width)
39
39
  end
40
40
 
41
41
  { "narrow" => create_narrow_record, "wide" => create_wide_record }.each do |text, create_record|
@@ -48,15 +48,15 @@ end
48
48
  WideRecord.synchronous_commit true
49
49
  x.report("enabled") do
50
50
  num_records.times { create_record.call }
51
- end
51
+ end
52
52
 
53
53
  clean_database
54
54
  random_io.rewind
55
55
  WideRecord.synchronous_commit false
56
56
  x.report("disabled") do
57
57
  num_records.times { create_record.call }
58
- end
59
-
58
+ end
59
+
60
60
  clean_database
61
61
  random_io.rewind
62
62
  WideRecord.synchronous_commit true
@@ -68,7 +68,7 @@ end
68
68
  end
69
69
  end
70
70
  end
71
-
71
+
72
72
  clean_database
73
73
  random_io.rewind
74
74
  WideRecord.synchronous_commit true
@@ -76,8 +76,8 @@ end
76
76
  WideRecord.transaction do
77
77
  num_records.times { create_record.call }
78
78
  end
79
- end
80
-
79
+ end
80
+
81
81
  clean_database
82
82
  random_io.rewind
83
83
  WideRecord.synchronous_commit false
@@ -85,6 +85,6 @@ end
85
85
  WideRecord.transaction do
86
86
  num_records.times { create_record.call }
87
87
  end
88
- end
88
+ end
89
89
  end
90
90
  end
@@ -1,5 +1,5 @@
1
1
  source "https://rubygems.org"
2
2
 
3
- gem "activerecord", "4.0.0"
3
+ gem "activerecord", "4.0.13"
4
4
 
5
5
  gemspec :path=>"../"
@@ -1,5 +1,5 @@
1
1
  source "https://rubygems.org"
2
2
 
3
- gem "activerecord", "~> 4.1.8"
3
+ gem "activerecord", "~> 4.1.14"
4
4
 
5
5
  gemspec :path=>"../"
@@ -1,5 +1,5 @@
1
1
  source "https://rubygems.org"
2
2
 
3
- gem "activerecord", "~> 4.2.0"
3
+ gem "activerecord", "~> 4.2.5"
4
4
 
5
5
  gemspec :path=>"../"
@@ -0,0 +1,5 @@
1
+ source "https://rubygems.org"
2
+
3
+ gem "activerecord", "~> 5.0.0.rc1"
4
+
5
+ gemspec :path=>"../"
@@ -5,11 +5,4 @@ require 'surus/hstore/scope'
5
5
  require 'surus/array/scope'
6
6
  require 'surus/synchronous_commit/connection'
7
7
  require 'surus/synchronous_commit/model'
8
- require 'surus/json/query'
9
- require 'surus/json/row_query'
10
- require 'surus/json/array_agg_query'
11
- require 'surus/json/model'
12
- require 'surus/json/association_scope_builder'
13
- require 'surus/json/belongs_to_scope_builder'
14
- require 'surus/json/has_many_scope_builder'
15
- require 'surus/json/has_and_belongs_to_many_scope_builder'
8
+ require 'surus/json'
@@ -14,7 +14,7 @@ module Surus
14
14
  # Example:
15
15
  # User.hstore_has_key(:properties, "favorite_color")
16
16
  def hstore_has_key(column, key)
17
- where("#{connection.quote_table_name(table_name)}.#{connection.quote_column_name(column)} ? :key", :key => key)
17
+ where("#{connection.quote_table_name(table_name)}.#{connection.quote_column_name(column)} ? :key", key: key)
18
18
  end
19
19
 
20
20
  # Adds a where condition that requires column to contain all keys.
@@ -23,7 +23,7 @@ module Surus
23
23
  # User.hstore_has_all_keys(:properties, "favorite_color", "favorite_song")
24
24
  # User.hstore_has_all_keys(:properties, ["favorite_color", "favorite_song"])
25
25
  def hstore_has_all_keys(column, *keys)
26
- where("#{connection.quote_table_name(table_name)}.#{connection.quote_column_name(column)} ?& ARRAY[:keys]", :keys => keys.flatten)
26
+ where("#{connection.quote_table_name(table_name)}.#{connection.quote_column_name(column)} ?& ARRAY[:keys]", keys: keys.flatten)
27
27
  end
28
28
 
29
29
  # Adds a where condition that requires column to contain any keys.
@@ -32,7 +32,7 @@ module Surus
32
32
  # User.hstore_has_any_keys(:properties, "favorite_color", "favorite_song")
33
33
  # User.hstore_has_any_keys(:properties, ["favorite_color", "favorite_song"])
34
34
  def hstore_has_any_keys(column, *keys)
35
- where("#{connection.quote_table_name(table_name)}.#{connection.quote_column_name(column)} ?| ARRAY[:keys]", :keys => keys.flatten)
35
+ where("#{connection.quote_table_name(table_name)}.#{connection.quote_column_name(column)} ?| ARRAY[:keys]", keys: keys.flatten)
36
36
  end
37
37
  end
38
38
  end
@@ -0,0 +1,8 @@
1
+ require 'surus/json/query'
2
+ require 'surus/json/row_query'
3
+ require 'surus/json/array_agg_query'
4
+ require 'surus/json/model'
5
+ require 'surus/json/association_scope_builder'
6
+ require 'surus/json/belongs_to_scope_builder'
7
+ require 'surus/json/has_many_scope_builder'
8
+ require 'surus/json/has_and_belongs_to_many_scope_builder'
@@ -12,14 +12,14 @@ module Surus
12
12
  self.synchronous_commit = value
13
13
  end
14
14
  end
15
-
15
+
16
16
  # Changes current synchronous_commit state. If a transaction is currently
17
17
  # in progress the change will be reverted at the end of the transaction.
18
18
  #
19
19
  # Requires true or false to be passed exactly -- not merely truthy or falsy
20
20
  def synchronous_commit=(value)
21
21
  raise ArgumentError, "argument must be true or false" unless value == true || value == false
22
-
22
+
23
23
  execute "SET #{'LOCAL' if open_transactions > 0} synchronous_commit TO #{value ? 'ON' : 'OFF'}"
24
24
  end
25
25
  end
@@ -3,7 +3,7 @@ module Surus
3
3
  # synchronous_commit and synchronous_commit= are delegated to the underlying
4
4
  # connection object
5
5
  module Model
6
- delegate :synchronous_commit, :synchronous_commit=, :to => :connection
6
+ delegate :synchronous_commit, :synchronous_commit=, to: :connection
7
7
  end
8
8
  end
9
9
  end
@@ -1,3 +1,3 @@
1
1
  module Surus
2
- VERSION = "0.6.2"
2
+ VERSION = "0.6.3"
3
3
  end
@@ -1,11 +1,11 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Surus::Array::Scope do
4
- let!(:empty) { TextArrayRecord.create! :texts => [] }
4
+ let!(:empty) { TextArrayRecord.create! texts: [] }
5
5
 
6
6
  context "array_has" do
7
- let!(:match) { TextArrayRecord.create! :texts => %w{a b} }
8
- let!(:missing_element) { TextArrayRecord.create! :texts => %w{a} }
7
+ let!(:match) { TextArrayRecord.create! texts: %w{a b} }
8
+ let!(:missing_element) { TextArrayRecord.create! texts: %w{a} }
9
9
 
10
10
  def self.shared_examples
11
11
  it { should include(match) }
@@ -30,8 +30,8 @@ describe Surus::Array::Scope do
30
30
  end
31
31
 
32
32
  context "array_has_any" do
33
- let!(:match) { TextArrayRecord.create! :texts => %w{a b} }
34
- let!(:missing_element) { TextArrayRecord.create! :texts => %w{a} }
33
+ let!(:match) { TextArrayRecord.create! texts: %w{a b} }
34
+ let!(:missing_element) { TextArrayRecord.create! texts: %w{a} }
35
35
 
36
36
  def self.shared_examples
37
37
  it { should include(match) }
@@ -56,7 +56,7 @@ describe Surus::Array::Scope do
56
56
  end
57
57
 
58
58
  it "casts between varchar[] and text[]" do
59
- record = VarcharArrayRecord.create! :varchars => %w{a b}
59
+ record = VarcharArrayRecord.create! varchars: %w{a b}
60
60
  expect(VarcharArrayRecord.array_has_any(:varchars, "a")).to include(record)
61
61
  expect(VarcharArrayRecord.array_has_any(:varchars, "c")).to_not include(record)
62
62
  expect(VarcharArrayRecord.array_has_any(:varchars, "b", "c")).to include(record)
@@ -1,12 +1,12 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Surus::Hstore::Scope do
4
- let!(:empty) { HstoreRecord.create! :properties => {} }
4
+ let!(:empty) { HstoreRecord.create! properties: {} }
5
5
 
6
6
  context "hstore_has_pairs" do
7
- let!(:match) { HstoreRecord.create! :properties => { "a" => "1", "b" => "2", "c" => "3" } }
8
- let!(:missing_key) { HstoreRecord.create! :properties => { "a" => "1", "c" => "3" } }
9
- let!(:wrong_value) { HstoreRecord.create! :properties => { "a" => "1", "b" => "5" } }
7
+ let!(:match) { HstoreRecord.create! properties: { "a" => "1", "b" => "2", "c" => "3" } }
8
+ let!(:missing_key) { HstoreRecord.create! properties: { "a" => "1", "c" => "3" } }
9
+ let!(:wrong_value) { HstoreRecord.create! properties: { "a" => "1", "b" => "5" } }
10
10
 
11
11
  subject { HstoreRecord.hstore_has_pairs(:properties, "a" => "1", "b" => "2") }
12
12
 
@@ -17,8 +17,8 @@ describe Surus::Hstore::Scope do
17
17
  end
18
18
 
19
19
  context "hstore_has_key" do
20
- let!(:match) { HstoreRecord.create! :properties => { "a" => "1", "b" => "2" } }
21
- let!(:missing_key) { HstoreRecord.create! :properties => { "a" => "1", "c" => "3" } }
20
+ let!(:match) { HstoreRecord.create! properties: { "a" => "1", "b" => "2" } }
21
+ let!(:missing_key) { HstoreRecord.create! properties: { "a" => "1", "c" => "3" } }
22
22
 
23
23
  subject { HstoreRecord.hstore_has_key(:properties, "b") }
24
24
 
@@ -28,9 +28,9 @@ describe Surus::Hstore::Scope do
28
28
  end
29
29
 
30
30
  context "hstore_has_all_keys" do
31
- let!(:match) { HstoreRecord.create! :properties => { "a" => "1", "b" => "2", "c" => "3" } }
32
- let!(:missing_one_key) { HstoreRecord.create! :properties => { "b" => "2", "c" => "3" } }
33
- let!(:missing_all_keys) { HstoreRecord.create! :properties => { "f" => "1", "g" => "2" } }
31
+ let!(:match) { HstoreRecord.create! properties: { "a" => "1", "b" => "2", "c" => "3" } }
32
+ let!(:missing_one_key) { HstoreRecord.create! properties: { "b" => "2", "c" => "3" } }
33
+ let!(:missing_all_keys) { HstoreRecord.create! properties: { "f" => "1", "g" => "2" } }
34
34
 
35
35
  def self.shared_examples
36
36
  it { should include(match) }
@@ -51,9 +51,9 @@ describe Surus::Hstore::Scope do
51
51
  end
52
52
 
53
53
  context "hstore_has_any_key" do
54
- let!(:match_1) { HstoreRecord.create! :properties => { "a" => "1", "c" => "3" } }
55
- let!(:match_2) { HstoreRecord.create! :properties => { "b" => "2", "d" => "4" } }
56
- let!(:missing_all_keys) { HstoreRecord.create! :properties => { "c" => "3", "d" => "4" } }
54
+ let!(:match_1) { HstoreRecord.create! properties: { "a" => "1", "c" => "3" } }
55
+ let!(:match_2) { HstoreRecord.create! properties: { "b" => "2", "d" => "4" } }
56
+ let!(:missing_all_keys) { HstoreRecord.create! properties: { "c" => "3", "d" => "4" } }
57
57
 
58
58
  def self.shared_examples
59
59
  it { should include(match_1) }
@@ -58,9 +58,19 @@ describe Surus::Hstore::Serializer do
58
58
 
59
59
  round_trip_examples.each do |value, description|
60
60
  it "round trips when #{description}" do
61
- r = HstoreRecord.create! :properties => value
61
+ r = HstoreRecord.create! properties: value
62
62
  r.reload
63
63
  expect(r.properties).to eq(value)
64
64
  end
65
65
  end
66
+
67
+ context 'Stringify' do
68
+ it 'should store the values as UTC for Date' do
69
+ date = ::Time.find_zone!('Melbourne').now.to_datetime
70
+ serializer = Surus::Hstore::Serializer.new
71
+ result = serializer.stringify date
72
+ expect(result).to eq([date.to_s(:db), "Date"])
73
+ expect(result).to_not eq([date.to_s, "Date"])
74
+ end
75
+ end
66
76
  end
@@ -86,4 +86,3 @@ RSpec.configure do |config|
86
86
  c.syntax = :expect
87
87
  end
88
88
  end
89
-
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Surus::SynchronousCommit::Connection, :disable_transactions => true do
3
+ describe Surus::SynchronousCommit::Connection, disable_transactions: true do
4
4
  let(:conn) { ActiveRecord::Base.connection }
5
5
  before { conn.execute "SET synchronous_commit TO ON;" }
6
6
  after { conn.execute "SET synchronous_commit TO ON;" }
@@ -24,7 +24,7 @@ Gem::Specification.new do |s|
24
24
  s.require_paths = ["lib"]
25
25
 
26
26
  # specify any dependencies here; for example:
27
- s.add_dependency 'activerecord', "~> 4.0"
27
+ s.add_dependency 'activerecord', "> 4.0"
28
28
 
29
29
  s.add_development_dependency 'rspec', "~> 3.1.0"
30
30
  s.add_development_dependency 'guard', ">= 0.10.0"
@@ -36,4 +36,5 @@ Gem::Specification.new do |s|
36
36
  s.add_development_dependency 'factory_girl', '~> 4.2.0'
37
37
  s.add_development_dependency 'faker', '~> 1.4.3'
38
38
  s.add_development_dependency 'rake'
39
+ s.add_development_dependency 'rubocop'
39
40
  end
metadata CHANGED
@@ -1,27 +1,27 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: surus
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.2
4
+ version: 0.6.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jack Christensen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-11-19 00:00:00.000000000 Z
11
+ date: 2016-05-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
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.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.0'
27
27
  - !ruby/object:Gem::Dependency
@@ -164,6 +164,20 @@ dependencies:
164
164
  - - ">="
165
165
  - !ruby/object:Gem::Version
166
166
  version: '0'
167
+ - !ruby/object:Gem::Dependency
168
+ name: rubocop
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
167
181
  description: "Surus accelerates ActiveRecord with PostgreSQL specific types and\n
168
182
  \ functionality. It enables indexed searching of serialized arrays
169
183
  and hashes.\n It also can control PostgreSQL synchronous commit
@@ -177,6 +191,8 @@ extra_rdoc_files: []
177
191
  files:
178
192
  - ".gitignore"
179
193
  - ".rspec"
194
+ - ".rubocop.yml"
195
+ - ".rubocop_todo.yml"
180
196
  - ".travis.yml"
181
197
  - CHANGELOG.md
182
198
  - Gemfile
@@ -193,12 +209,14 @@ files:
193
209
  - gemfiles/4.0.gemfile
194
210
  - gemfiles/4.1.gemfile
195
211
  - gemfiles/4.2.gemfile
212
+ - gemfiles/5.0.gemfile
196
213
  - lib/generators/surus/hstore/install_generator.rb
197
214
  - lib/generators/surus/hstore/templates/install_hstore.rb
198
215
  - lib/surus.rb
199
216
  - lib/surus/array/scope.rb
200
217
  - lib/surus/hstore/scope.rb
201
218
  - lib/surus/hstore/serializer.rb
219
+ - lib/surus/json.rb
202
220
  - lib/surus/json/array_agg_query.rb
203
221
  - lib/surus/json/association_scope_builder.rb
204
222
  - lib/surus/json/belongs_to_scope_builder.rb
@@ -243,19 +261,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
243
261
  version: '0'
244
262
  requirements: []
245
263
  rubyforge_project: ''
246
- rubygems_version: 2.4.5.1
264
+ rubygems_version: 2.5.1
247
265
  signing_key:
248
266
  specification_version: 4
249
267
  summary: PostgreSQL Acceleration for ActiveRecord
250
- test_files:
251
- - spec/array/scope_spec.rb
252
- - spec/database.yml
253
- - spec/database.yml.travis
254
- - spec/database_structure.sql
255
- - spec/factories.rb
256
- - spec/hstore/scope_spec.rb
257
- - spec/hstore/serializer_spec.rb
258
- - spec/json/json_spec.rb
259
- - spec/spec_helper.rb
260
- - spec/synchronous_commit/connection_spec.rb
261
- - spec/synchronous_commit/model_spec.rb
268
+ test_files: []