squint 0.0.3 → 1.0.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.
@@ -0,0 +1,57 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <testsuite time='0.331061' skipped='0' failures='0' errors='0' name="SquintTest" assertions='31' tests='27'>
3
+ <testcase time='0.024645' file="test/squint_test.rb" name="test_detects_default_integer_storext_jsonb_attributes" assertions='1'>
4
+ </testcase>
5
+ <testcase time='0.010476' file="test/squint_test.rb" name="test_detects_present_storext_jsonb_attributes" assertions='1'>
6
+ </testcase>
7
+ <testcase time='0.010010' file="test/squint_test.rb" name="test_detects_default_Falseclass_storext_jsonb_attributes" assertions='1'>
8
+ </testcase>
9
+ <testcase time='0.009655' file="test/squint_test.rb" name="test_finds_records_for_properties_populated" assertions='1'>
10
+ </testcase>
11
+ <testcase time='0.012391' file="test/squint_test.rb" name="test_detects_default_integer_storext_hstore_attributes" assertions='1'>
12
+ </testcase>
13
+ <testcase time='0.015957' file="test/squint_test.rb" name="test_finds_records_for_request_info_populated_with_array" assertions='1'>
14
+ </testcase>
15
+ <testcase time='0.012892' file="test/squint_test.rb" name="test_generates_SQL_for_properties" assertions='2'>
16
+ </testcase>
17
+ <testcase time='0.010305' file="test/squint_test.rb" name="test_finds_records_for_properties_populated_with_array" assertions='1'>
18
+ </testcase>
19
+ <testcase time='0.012353' file="test/squint_test.rb" name="test_finds_records_for_properties_with_nil" assertions='1'>
20
+ </testcase>
21
+ <testcase time='0.019733' file="test/squint_test.rb" name="test_handles_multiple_non-hash_parameters" assertions='1'>
22
+ </testcase>
23
+ <testcase time='0.011406' file="test/squint_test.rb" name="test_Doesn&#39;t_find_records_for_properties_missing_element_that_doesn&#39;t_exist_populated" assertions='1'>
24
+ </testcase>
25
+ <testcase time='0.009941' file="test/squint_test.rb" name="test_detects_default_Falseclass_storext_hstore_attributes" assertions='1'>
26
+ </testcase>
27
+ <testcase time='0.009810' file="test/squint_test.rb" name="test_finds_records_for_request_info_populated" assertions='1'>
28
+ </testcase>
29
+ <testcase time='0.015859' file="test/squint_test.rb" name="test_storext_jsonb_attributes_is_composeable_in_multiple_wheres" assertions='2'>
30
+ </testcase>
31
+ <testcase time='0.010980' file="test/squint_test.rb" name="test_detects_default_storext_jsonb_attributes" assertions='1'>
32
+ </testcase>
33
+ <testcase time='0.010904' file="test/squint_test.rb" name="test_detects_present_integer_storext_hstore_attributes" assertions='1'>
34
+ </testcase>
35
+ <testcase time='0.010792' file="test/squint_test.rb" name="test_finds_records_for_properties_populated_with_array_including_nil" assertions='1'>
36
+ </testcase>
37
+ <testcase time='0.009264' file="test/squint_test.rb" name="test_finds_records_for_request_info_populated_with_array_including_nil" assertions='1'>
38
+ </testcase>
39
+ <testcase time='0.015336' file="test/squint_test.rb" name="test_storext_jsonb_attributes_is_composeable_in_one_where" assertions='2'>
40
+ </testcase>
41
+ <testcase time='0.010052' file="test/squint_test.rb" name="test_detects_present_integer_storext_jsonb_attributes" assertions='1'>
42
+ </testcase>
43
+ <testcase time='0.011171' file="test/squint_test.rb" name="test_detects_default_storext_hstore_attributes" assertions='1'>
44
+ </testcase>
45
+ <testcase time='0.010303' file="test/squint_test.rb" name="test_finds_records_for_request_info_missing_element_that_doesn&#39;t_exist_with_nil" assertions='1'>
46
+ </testcase>
47
+ <testcase time='0.009981' file="test/squint_test.rb" name="test_Doesn&#39;t_find_records_for_request_info_missing_element_that_doesn&#39;t_exist_populated" assertions='1'>
48
+ </testcase>
49
+ <testcase time='0.011758' file="test/squint_test.rb" name="test_finds_records_for_properties_missing_element_that_doesn&#39;t_exist_with_nil" assertions='1'>
50
+ </testcase>
51
+ <testcase time='0.011404' file="test/squint_test.rb" name="test_finds_records_for_request_info_with_nil" assertions='1'>
52
+ </testcase>
53
+ <testcase time='0.012454' file="test/squint_test.rb" name="test_generates_SQL_for_request_info" assertions='2'>
54
+ </testcase>
55
+ <testcase time='0.011229' file="test/squint_test.rb" name="test_handles_string_parameters" assertions='1'>
56
+ </testcase>
57
+ </testsuite>
@@ -1,7 +1,6 @@
1
1
  require 'test_helper'
2
2
 
3
3
  class SquintTest < ActiveSupport::TestCase
4
- self.use_transactional_fixtures = true
5
4
 
6
5
  # Tests that should pass for both jsonb and hstore properties
7
6
  %i[request_info properties].each do |prop_name|
@@ -45,19 +44,21 @@ class SquintTest < ActiveSupport::TestCase
45
44
  end
46
45
  end
47
46
 
48
- [[:storext_jsonb_attributes, 'jsonb'],
49
- [:storext_hstore_attributes, 'hstore']].each do |prop_name, prefix|
47
+ [
48
+ [:storext_jsonb_attributes, 'jsonb'],
49
+ # [:storext_hstore_attributes, 'hstore']
50
+ ].each do |prop_name, prefix|
50
51
  test "detects present #{prop_name}" do
51
- reln = Post.where(prop_name => { "#{prefix}_zip_code": '35124' })
52
+ reln = Post.where(prop_name => { "#{prefix}_zip_code" => '35124' })
52
53
  # puts reln.to_sql
53
54
  assert_equal 1, reln.count, reln.to_sql
54
55
  end
55
56
 
56
57
  test "#{prop_name} is composeable in one where" do
57
58
  # get the first matching post
58
- posts = Post.where(prop_name => { "#{prefix}_zip_code": '90210' })
59
+ posts = Post.where(prop_name => { "#{prefix}_zip_code" => '90210' })
59
60
  # compose with previous query with the id of first post
60
- reln = Post.where(prop_name => { "#{prefix}_zip_code": '90210' }, id: posts.first.id)
61
+ reln = Post.where(prop_name => { "#{prefix}_zip_code" => '90210' }, id: posts.first.id)
61
62
  # puts reln.to_sql
62
63
  assert_operator posts.count, :>, 1
63
64
  assert_equal 1, reln.count, reln.to_sql
@@ -65,9 +66,9 @@ class SquintTest < ActiveSupport::TestCase
65
66
 
66
67
  test "#{prop_name} is composeable in multiple wheres" do
67
68
  # get the first matching post
68
- posts = Post.where(prop_name => { "#{prefix}_zip_code": '90210' })
69
+ posts = Post.where(prop_name => { "#{prefix}_zip_code" => '90210' })
69
70
  # compose with previous query with the id of first post
70
- reln = Post.where(prop_name => { "#{prefix}_zip_code": '90210' }).where(id: posts.first.id)
71
+ reln = Post.where(prop_name => { "#{prefix}_zip_code" => '90210' }).where(id: posts.first.id)
71
72
  # puts reln.to_sql
72
73
  assert posts.count > 1
73
74
  assert_equal 1, reln.count, reln.to_sql
@@ -76,39 +77,42 @@ class SquintTest < ActiveSupport::TestCase
76
77
 
77
78
  [[:storext_jsonb_attributes, 'jsonb'],
78
79
  [:storext_hstore_attributes, 'hstore']].each do |prop_name, prefix|
80
+
79
81
  test "detects default #{prop_name}" do
80
- reln = Post.where(prop_name => { "#{prefix}_zip_code": '90210' })
82
+ reln = Post.where(prop_name => { "#{prefix}_zip_code" => '90210' })
81
83
  # puts reln.to_sql
82
84
  assert_equal Post.all.count - 6, reln.count, reln.to_sql
83
85
  end
84
86
 
85
87
  test "detects present integer #{prop_name}" do
86
- reln = Post.where(prop_name => { "#{prefix}_friend_count": 10 })
88
+ reln = Post.where(prop_name => { "#{prefix}_friend_count" => 10 })
87
89
  # puts reln.to_sql
88
90
  assert_equal 1, reln.count, reln.to_sql
89
91
  end
90
92
 
91
93
  test "detects default integer #{prop_name}" do
92
- reln = Post.where(prop_name => { "#{prefix}_friend_count": 0 })
94
+ reln = Post.where(prop_name => { "#{prefix}_friend_count" => 0 })
93
95
  # puts reln.to_sql
94
96
  assert_equal Post.all.count - 5, reln.count, reln.to_sql
95
97
  end
96
98
 
97
99
  test "detects default Falseclass #{prop_name}" do
98
- reln = Post.where(prop_name => { "#{prefix}_is_awesome": false })
100
+ reln = Post.where(prop_name => { "#{prefix}_is_awesome" => false })
99
101
  # puts reln.to_sql
100
102
  assert_equal Post.all.count - 1, reln.count, reln.to_sql
101
103
  end
102
104
  end
105
+
103
106
  test "handles string parameters" do
104
- reln = Post.where(storext_jsonb_attributes: { "jsonb_friend_count": 11 }).
107
+ reln = Post.where(storext_jsonb_attributes: { "jsonb_friend_count" => 11 }).
105
108
  where("posts.title = ?", 'With Storext is aweesome not default title')
106
109
  assert_nothing_raised do
107
110
  assert_equal 1, reln.count
108
111
  end
109
112
  end
113
+
110
114
  test "handles multiple non-hash parameters" do
111
- reln = Post.where(storext_jsonb_attributes: { "jsonb_friend_count": 11 }).
115
+ reln = Post.where(storext_jsonb_attributes: { "jsonb_friend_count" => 11 }).
112
116
  where("posts.id between ? and ?",
113
117
  posts(:with_storext_is_awesome_not_default).id,
114
118
  posts(:with_storext_is_awesome_not_default).id + 1)
@@ -25,5 +25,9 @@ class ActiveSupport::TestCase
25
25
  fixtures :all
26
26
  # 'cuz I want to be able to login to the db and see things
27
27
  # and there aren't many tests here anyway, so speed isn't a problem
28
- self.use_transactional_fixtures = false
28
+ if ActiveRecord::VERSION::STRING < '5'
29
+ self.use_transactional_fixtures = false
30
+ elsif ActiveRecord::VERSION::STRING > '5'
31
+ self.use_transactional_tests = false
32
+ end
29
33
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: squint
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - David H. Wilkins
@@ -9,20 +9,20 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-06-30 00:00:00.000000000 Z
12
+ date: 2017-07-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - "~>"
18
+ - - ">="
19
19
  - !ruby/object:Gem::Version
20
20
  version: 4.2.8
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
- - - "~>"
25
+ - - ">="
26
26
  - !ruby/object:Gem::Version
27
27
  version: 4.2.8
28
28
  - !ruby/object:Gem::Dependency
@@ -39,6 +39,20 @@ dependencies:
39
39
  - - ">="
40
40
  - !ruby/object:Gem::Version
41
41
  version: '0'
42
+ - !ruby/object:Gem::Dependency
43
+ name: appraisal
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ">="
47
+ - !ruby/object:Gem::Version
48
+ version: '0'
49
+ type: :development
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
42
56
  description: Use rails semantics to search keys and values inside PostgreSQL jsonb,
43
57
  json and hstore columns. Compatible with StoreXT attributes.
44
58
  email:
@@ -48,10 +62,12 @@ executables: []
48
62
  extensions: []
49
63
  extra_rdoc_files: []
50
64
  files:
65
+ - ".all-contributorsrc"
51
66
  - MIT-LICENSE
52
67
  - Rakefile
53
68
  - lib/squint.rb
54
69
  - lib/squint/version.rb
70
+ - readme.md
55
71
  - test/dummy/Rakefile
56
72
  - test/dummy/app/models/post.rb
57
73
  - test/dummy/app/models/post.rb~
@@ -69,8 +85,8 @@ files:
69
85
  - test/dummy/log/test.log
70
86
  - test/dummy/test/fixtures/posts.yml
71
87
  - test/dummy/test/fixtures/posts.yml~
72
- - test/dummy/test/models/post_test.rb
73
88
  - test/dummy/test/models/post_test.rb~
89
+ - test/reports/TEST-SquintTest.xml
74
90
  - test/squint_test.rb
75
91
  - test/test_helper.rb
76
92
  - test/test_helper.rb~
@@ -94,16 +110,16 @@ required_rubygems_version: !ruby/object:Gem::Requirement
94
110
  version: '0'
95
111
  requirements: []
96
112
  rubyforge_project:
97
- rubygems_version: 2.6.11
113
+ rubygems_version: 2.6.12
98
114
  signing_key:
99
115
  specification_version: 4
100
116
  summary: Search PostgreSQL jsonb and hstore columns
101
117
  test_files:
118
+ - test/reports/TEST-SquintTest.xml
102
119
  - test/test_helper.rb
103
120
  - test/dummy/Rakefile
104
121
  - test/dummy/app/models/post.rb~
105
122
  - test/dummy/app/models/post.rb
106
- - test/dummy/test/models/post_test.rb
107
123
  - test/dummy/test/models/post_test.rb~
108
124
  - test/dummy/test/fixtures/posts.yml~
109
125
  - test/dummy/test/fixtures/posts.yml
@@ -1,4 +0,0 @@
1
- require 'test_helper'
2
-
3
- class PostTest < ActiveSupport::TestCase
4
- end