active_hash_relation 1.1.0 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rspec +2 -0
- data/.travis.yml +15 -0
- data/README.md +68 -11
- data/active_hash_relation.gemspec +13 -0
- data/lib/active_hash_relation.rb +18 -12
- data/lib/active_hash_relation/aggregation.rb +3 -0
- data/lib/active_hash_relation/association_filters.rb +3 -0
- data/lib/active_hash_relation/column_filters.rb +45 -11
- data/lib/active_hash_relation/filter_applier.rb +37 -23
- data/lib/active_hash_relation/helpers.rb +22 -2
- data/lib/active_hash_relation/scope_filters.rb +8 -1
- data/lib/active_hash_relation/sort_filters.rb +12 -0
- data/lib/active_hash_relation/version.rb +1 -1
- data/lib/active_record/scope_names.rb +4 -19
- data/lib/generators/active_hash_relation/initialize_generator.rb +13 -0
- data/lib/generators/active_hash_relation/templates/active_hash_relation.rb +12 -0
- data/spec/config/initializers/active_hash_relation.rb +16 -0
- data/spec/db/migrate/001_basic_schema.rb +53 -0
- data/spec/dummy-rails4/.gitignore +13 -0
- data/spec/dummy-rails4/.ruby-version +1 -0
- data/spec/dummy-rails4/Gemfile +18 -0
- data/spec/dummy-rails4/README.md +3 -0
- data/spec/dummy-rails4/Rakefile +6 -0
- data/spec/dummy-rails4/app/controllers/application_controller.rb +5 -0
- data/spec/dummy-rails4/app/models/.keep +0 -0
- data/spec/dummy-rails4/app/models/address.rb +1 -0
- data/spec/dummy-rails4/app/models/micropost.rb +1 -0
- data/spec/dummy-rails4/app/models/relationship.rb +1 -0
- data/spec/dummy-rails4/app/models/user.rb +1 -0
- data/spec/dummy-rails4/bin/bundle +3 -0
- data/spec/dummy-rails4/bin/rails +4 -0
- data/spec/dummy-rails4/bin/rake +4 -0
- data/spec/dummy-rails4/bin/setup +29 -0
- data/spec/dummy-rails4/config.ru +4 -0
- data/spec/dummy-rails4/config/application.rb +35 -0
- data/spec/dummy-rails4/config/boot.rb +3 -0
- data/spec/dummy-rails4/config/database.yml +18 -0
- data/spec/dummy-rails4/config/environment.rb +5 -0
- data/spec/dummy-rails4/config/environments/development.rb +41 -0
- data/spec/dummy-rails4/config/environments/production.rb +79 -0
- data/spec/dummy-rails4/config/environments/test.rb +42 -0
- data/spec/dummy-rails4/config/initializers/active_hash_relation.rb +3 -0
- data/spec/dummy-rails4/config/initializers/assets.rb +11 -0
- data/spec/dummy-rails4/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy-rails4/config/initializers/cookies_serializer.rb +3 -0
- data/spec/dummy-rails4/config/initializers/filter_parameter_logging.rb +4 -0
- data/spec/dummy-rails4/config/initializers/inflections.rb +16 -0
- data/spec/dummy-rails4/config/initializers/mime_types.rb +4 -0
- data/spec/dummy-rails4/config/initializers/session_store.rb +3 -0
- data/spec/dummy-rails4/config/initializers/wrap_parameters.rb +14 -0
- data/spec/dummy-rails4/config/locales/en.yml +23 -0
- data/spec/dummy-rails4/config/routes.rb +56 -0
- data/spec/dummy-rails4/config/secrets.yml +22 -0
- data/spec/dummy-rails4/db/migrate/001_basic_schema.rb +1 -0
- data/spec/dummy-rails4/db/schema.rb +69 -0
- data/spec/dummy-rails4/spec/factories/factories.rb +1 -0
- data/spec/dummy-rails4/spec/rails_helper.rb +19 -0
- data/spec/dummy-rails4/spec/spec_helper.rb +99 -0
- data/spec/dummy-rails4/spec/support/support.rb +1 -0
- data/spec/dummy-rails4/spec/tests/tests_spec.rb +3 -0
- data/spec/dummy-rails5/.gitignore +17 -0
- data/spec/dummy-rails5/.rspec +2 -0
- data/spec/dummy-rails5/.ruby-version +1 -0
- data/spec/dummy-rails5/Gemfile +19 -0
- data/spec/dummy-rails5/README.md +3 -0
- data/spec/dummy-rails5/Rakefile +6 -0
- data/spec/dummy-rails5/app/controllers/application_controller.rb +3 -0
- data/spec/dummy-rails5/app/models/address.rb +1 -0
- data/spec/dummy-rails5/app/models/micropost.rb +1 -0
- data/spec/dummy-rails5/app/models/relationship.rb +1 -0
- data/spec/dummy-rails5/app/models/user.rb +1 -0
- data/spec/dummy-rails5/bin/bundle +3 -0
- data/spec/dummy-rails5/bin/rails +4 -0
- data/spec/dummy-rails5/bin/rake +4 -0
- data/spec/dummy-rails5/bin/setup +34 -0
- data/spec/dummy-rails5/bin/update +29 -0
- data/spec/dummy-rails5/config.ru +5 -0
- data/spec/dummy-rails5/config/application.rb +25 -0
- data/spec/dummy-rails5/config/boot.rb +3 -0
- data/spec/dummy-rails5/config/cable.yml +9 -0
- data/spec/dummy-rails5/config/database.yml +18 -0
- data/spec/dummy-rails5/config/environment.rb +5 -0
- data/spec/dummy-rails5/config/environments/development.rb +54 -0
- data/spec/dummy-rails5/config/environments/production.rb +86 -0
- data/spec/dummy-rails5/config/environments/test.rb +42 -0
- data/spec/dummy-rails5/config/initializers/active_hash_relation.rb +3 -0
- data/spec/dummy-rails5/config/initializers/application_controller_renderer.rb +6 -0
- data/spec/dummy-rails5/config/initializers/assets.rb +11 -0
- data/spec/dummy-rails5/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy-rails5/config/initializers/cookies_serializer.rb +5 -0
- data/spec/dummy-rails5/config/initializers/filter_parameter_logging.rb +4 -0
- data/spec/dummy-rails5/config/initializers/inflections.rb +16 -0
- data/spec/dummy-rails5/config/initializers/mime_types.rb +4 -0
- data/spec/dummy-rails5/config/initializers/new_framework_defaults.rb +24 -0
- data/spec/dummy-rails5/config/initializers/session_store.rb +3 -0
- data/spec/dummy-rails5/config/initializers/wrap_parameters.rb +14 -0
- data/spec/dummy-rails5/config/locales/en.yml +23 -0
- data/spec/dummy-rails5/config/puma.rb +47 -0
- data/spec/dummy-rails5/config/routes.rb +3 -0
- data/spec/dummy-rails5/config/secrets.yml +22 -0
- data/spec/dummy-rails5/config/spring.rb +6 -0
- data/spec/dummy-rails5/db/migrate/001_basic_schema.rb +2 -0
- data/spec/dummy-rails5/db/schema.rb +64 -0
- data/spec/dummy-rails5/spec/factories/factories.rb +1 -0
- data/spec/dummy-rails5/spec/rails_helper.rb +19 -0
- data/spec/dummy-rails5/spec/spec_helper.rb +99 -0
- data/spec/dummy-rails5/spec/support/support.rb +1 -0
- data/spec/dummy-rails5/spec/tests/tests_spec.rb +3 -0
- data/spec/factories/factories.rb +39 -0
- data/spec/models/address.rb +7 -0
- data/spec/models/application_record.rb +3 -0
- data/spec/models/micropost.rb +9 -0
- data/spec/models/relationship.rb +9 -0
- data/spec/models/user.rb +32 -0
- data/spec/support/support.rb +62 -0
- data/spec/tests/aggregations/avg_spec.rb +45 -0
- data/spec/tests/aggregations/max_spec.rb +45 -0
- data/spec/tests/aggregations/min_spec.rb +46 -0
- data/spec/tests/aggregations/sum_spec.rb +43 -0
- data/spec/tests/associations/belongs_to_spec.rb +96 -0
- data/spec/tests/associations/has_many_spec.rb +91 -0
- data/spec/tests/associations/has_one_spec.rb +89 -0
- data/spec/tests/booleans_spec.rb +29 -0
- data/spec/tests/limit_spec.rb +30 -0
- data/spec/tests/null_spec.rb +44 -0
- data/spec/tests/numbers_spec.rb +142 -0
- data/spec/tests/or_filter_spec.rb +98 -0
- data/spec/tests/primary_key_spec.rb +29 -0
- data/spec/tests/scopes_spec.rb +48 -0
- data/spec/tests/sorting_spec.rb +100 -0
- data/spec/tests/strings_spec.rb +86 -0
- metadata +392 -4
@@ -0,0 +1,48 @@
|
|
1
|
+
describe ActiveHashRelation do
|
2
|
+
include Helpers
|
3
|
+
|
4
|
+
context 'scopes' do
|
5
|
+
context 'without parameters' do
|
6
|
+
it "one scope clause" do
|
7
|
+
hash = {scopes: {unsocial: true}}
|
8
|
+
|
9
|
+
query = HelperClass.new.apply_filters(User.all, hash).to_sql
|
10
|
+
expected_query = q(
|
11
|
+
"SELECT users.* FROM users",
|
12
|
+
"WHERE users.followings_count = 0",
|
13
|
+
"AND users.followers_count = 0"
|
14
|
+
)
|
15
|
+
|
16
|
+
expect(strip(query)).to eq expected_query.to_s
|
17
|
+
end
|
18
|
+
|
19
|
+
it "multiple scope clauses" do
|
20
|
+
hash = {scopes: {unsocial: true, unverified: true}}
|
21
|
+
|
22
|
+
query = HelperClass.new.apply_filters(User.all, hash).to_sql
|
23
|
+
expected_query = q(
|
24
|
+
"SELECT users.* FROM users",
|
25
|
+
"WHERE users.verified = 'f'",
|
26
|
+
"AND users.followings_count = 0",
|
27
|
+
"AND users.followers_count = 0"
|
28
|
+
)
|
29
|
+
|
30
|
+
expect(strip(query)).to eq expected_query.to_s
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
context 'with parameters' do
|
35
|
+
it "one scope clause" do
|
36
|
+
hash = {scopes: {created_on: [Date.parse("12-12-1988")]}}
|
37
|
+
|
38
|
+
query = HelperClass.new.apply_filters(User.all, hash).to_sql
|
39
|
+
expected_query = q(
|
40
|
+
"SELECT users.* FROM users",
|
41
|
+
"WHERE (date(created_at) = '1988-12-12')",
|
42
|
+
)
|
43
|
+
|
44
|
+
expect(strip(query)).to eq expected_query.to_s
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,100 @@
|
|
1
|
+
describe ActiveHashRelation do
|
2
|
+
include Helpers
|
3
|
+
|
4
|
+
context 'sorting' do
|
5
|
+
context "one where clause" do
|
6
|
+
it "asc" do
|
7
|
+
hash = {
|
8
|
+
microposts_count: 10,
|
9
|
+
sort: {property: :microposts_count, order: :asc}
|
10
|
+
}
|
11
|
+
|
12
|
+
query = HelperClass.new.apply_filters(User.all, hash).to_sql
|
13
|
+
expected_query = q(
|
14
|
+
"SELECT users.* FROM users",
|
15
|
+
"WHERE (users.microposts_count = 10)",
|
16
|
+
"ORDER BY users.microposts_count ASC"
|
17
|
+
)
|
18
|
+
|
19
|
+
expect(strip(query)).to eq expected_query.to_s
|
20
|
+
end
|
21
|
+
|
22
|
+
it "multiple where clause" do
|
23
|
+
hash = {
|
24
|
+
microposts_count: 10,
|
25
|
+
sort: {property: :microposts_count, order: :desc}
|
26
|
+
}
|
27
|
+
|
28
|
+
query = HelperClass.new.apply_filters(User.all, hash).to_sql
|
29
|
+
expected_query = q(
|
30
|
+
"SELECT users.* FROM users",
|
31
|
+
"WHERE (users.microposts_count = 10)",
|
32
|
+
"ORDER BY users.microposts_count DESC"
|
33
|
+
)
|
34
|
+
|
35
|
+
expect(strip(query)).to eq expected_query.to_s
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
context "multiple where clauses" do
|
40
|
+
it "asc" do
|
41
|
+
hash = {
|
42
|
+
followers_count: {leq: 20},
|
43
|
+
microposts_count: 10,
|
44
|
+
sort: {property: :microposts_count, order: :asc}
|
45
|
+
}
|
46
|
+
|
47
|
+
query = HelperClass.new.apply_filters(User.all, hash).to_sql
|
48
|
+
expected_query = q(
|
49
|
+
"SELECT users.* FROM users",
|
50
|
+
"WHERE (users.microposts_count = 10)",
|
51
|
+
"AND (users.followers_count <= 20)",
|
52
|
+
"ORDER BY users.microposts_count ASC"
|
53
|
+
)
|
54
|
+
|
55
|
+
expect(strip(query)).to eq expected_query.to_s
|
56
|
+
end
|
57
|
+
|
58
|
+
it "multiple where clause" do
|
59
|
+
hash = {
|
60
|
+
followers_count: {leq: 20},
|
61
|
+
microposts_count: 10,
|
62
|
+
sort: {property: :microposts_count, order: :desc}
|
63
|
+
}
|
64
|
+
|
65
|
+
query = HelperClass.new.apply_filters(User.all, hash).to_sql
|
66
|
+
expected_query = q(
|
67
|
+
"SELECT users.* FROM users",
|
68
|
+
"WHERE (users.microposts_count = 10)",
|
69
|
+
"AND (users.followers_count <= 20)",
|
70
|
+
"ORDER BY users.microposts_count DESC"
|
71
|
+
)
|
72
|
+
|
73
|
+
expect(strip(query)).to eq expected_query.to_s
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
context "multiple sorting properties" do
|
78
|
+
it "with single where clause" do
|
79
|
+
hash = {
|
80
|
+
microposts_count: 10,
|
81
|
+
sort: [{
|
82
|
+
property: :microposts_count, order: :asc,
|
83
|
+
}, {
|
84
|
+
property: :followings_count, order: :desc
|
85
|
+
}]
|
86
|
+
}
|
87
|
+
|
88
|
+
query = HelperClass.new.apply_filters(User.all, hash).to_sql
|
89
|
+
expected_query = q(
|
90
|
+
"SELECT users.* FROM users",
|
91
|
+
"WHERE (users.microposts_count = 10)",
|
92
|
+
"ORDER BY users.microposts_count ASC, users.followings_count DESC"
|
93
|
+
)
|
94
|
+
|
95
|
+
expect(strip(query)).to eq expected_query.to_s
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
end
|
@@ -0,0 +1,86 @@
|
|
1
|
+
describe ActiveHashRelation do
|
2
|
+
include Helpers
|
3
|
+
|
4
|
+
context 'strings' do
|
5
|
+
it "one where clause" do
|
6
|
+
hash = {name: 'Filippos'}
|
7
|
+
|
8
|
+
query = HelperClass.new.apply_filters(User.all, hash).to_sql
|
9
|
+
expected_query = q(
|
10
|
+
"SELECT users.* FROM users WHERE (users.name = 'Filippos')"
|
11
|
+
)
|
12
|
+
|
13
|
+
expect(strip(query)).to eq expected_query.to_s
|
14
|
+
end
|
15
|
+
|
16
|
+
it "multiple where clause" do
|
17
|
+
hash = {name: 'Filippos', token: '123'}
|
18
|
+
|
19
|
+
query = HelperClass.new.apply_filters(User.all, hash).to_sql
|
20
|
+
expected_query = q(
|
21
|
+
"SELECT users.* FROM users WHERE (users.name = 'Filippos')",
|
22
|
+
"AND (users.token = '123')"
|
23
|
+
)
|
24
|
+
|
25
|
+
expect(strip(query)).to eq expected_query.to_s
|
26
|
+
end
|
27
|
+
|
28
|
+
it "multiple values" do
|
29
|
+
hash = {name: ['Filippos', 'Vasilakis']}
|
30
|
+
|
31
|
+
query = HelperClass.new.apply_filters(User.all, hash).to_sql
|
32
|
+
expected_query = q(
|
33
|
+
"SELECT users.* FROM users",
|
34
|
+
"WHERE (users.name IN ('Filippos', 'Vasilakis'))"
|
35
|
+
)
|
36
|
+
|
37
|
+
expect(strip(query)).to eq expected_query.to_s
|
38
|
+
end
|
39
|
+
|
40
|
+
context "queries" do
|
41
|
+
it 'eq' do
|
42
|
+
hash = {name: {eq: 'Filippos'}}
|
43
|
+
|
44
|
+
query = HelperClass.new.apply_filters(User.all, hash).to_sql
|
45
|
+
expected_query = q(
|
46
|
+
"SELECT users.* FROM users WHERE (users.name = 'Filippos')"
|
47
|
+
)
|
48
|
+
|
49
|
+
expect(strip(query)).to eq expected_query.to_s
|
50
|
+
end
|
51
|
+
|
52
|
+
it 'starts_with' do
|
53
|
+
hash = {name: {starts_with: 'Filippos'}}
|
54
|
+
|
55
|
+
query = HelperClass.new.apply_filters(User.all, hash).to_sql
|
56
|
+
expected_query = q(
|
57
|
+
"SELECT users.* FROM users WHERE (users.name LIKE 'Filippos%')"
|
58
|
+
)
|
59
|
+
|
60
|
+
expect(strip(query)).to eq expected_query.to_s
|
61
|
+
end
|
62
|
+
|
63
|
+
it 'ends_with' do
|
64
|
+
hash = {name: {ends_with: 'Filippos'}}
|
65
|
+
|
66
|
+
query = HelperClass.new.apply_filters(User.all, hash).to_sql
|
67
|
+
expected_query = q(
|
68
|
+
"SELECT users.* FROM users WHERE (users.name LIKE '%Filippos')"
|
69
|
+
)
|
70
|
+
|
71
|
+
expect(strip(query)).to eq expected_query.to_s
|
72
|
+
end
|
73
|
+
|
74
|
+
it 'like' do
|
75
|
+
hash = {name: {like: 'Filippos'}}
|
76
|
+
|
77
|
+
query = HelperClass.new.apply_filters(User.all, hash).to_sql
|
78
|
+
expected_query = q(
|
79
|
+
"SELECT users.* FROM users WHERE (users.name LIKE '%Filippos%')"
|
80
|
+
)
|
81
|
+
|
82
|
+
expect(strip(query)).to eq expected_query.to_s
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: active_hash_relation
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Filippos Vasilakis
|
@@ -9,8 +9,36 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2017-02-12 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: activerecord
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - ">="
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: '0'
|
21
|
+
type: :runtime
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - ">="
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: '0'
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: activerecord
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - ">="
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '0'
|
35
|
+
type: :development
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - ">="
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '0'
|
14
42
|
- !ruby/object:Gem::Dependency
|
15
43
|
name: bundler
|
16
44
|
requirement: !ruby/object:Gem::Requirement
|
@@ -39,6 +67,132 @@ dependencies:
|
|
39
67
|
- - "~>"
|
40
68
|
- !ruby/object:Gem::Version
|
41
69
|
version: '10.0'
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: rspec
|
72
|
+
requirement: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - ">="
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
77
|
+
type: :development
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - ">="
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '0'
|
84
|
+
- !ruby/object:Gem::Dependency
|
85
|
+
name: factory_girl_rails
|
86
|
+
requirement: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - "~>"
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: '4.0'
|
91
|
+
type: :development
|
92
|
+
prerelease: false
|
93
|
+
version_requirements: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - "~>"
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: '4.0'
|
98
|
+
- !ruby/object:Gem::Dependency
|
99
|
+
name: faker
|
100
|
+
requirement: !ruby/object:Gem::Requirement
|
101
|
+
requirements:
|
102
|
+
- - ">="
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: '0'
|
105
|
+
type: :development
|
106
|
+
prerelease: false
|
107
|
+
version_requirements: !ruby/object:Gem::Requirement
|
108
|
+
requirements:
|
109
|
+
- - ">="
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: '0'
|
112
|
+
- !ruby/object:Gem::Dependency
|
113
|
+
name: database_cleaner
|
114
|
+
requirement: !ruby/object:Gem::Requirement
|
115
|
+
requirements:
|
116
|
+
- - ">="
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
version: '0'
|
119
|
+
type: :development
|
120
|
+
prerelease: false
|
121
|
+
version_requirements: !ruby/object:Gem::Requirement
|
122
|
+
requirements:
|
123
|
+
- - ">="
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '0'
|
126
|
+
- !ruby/object:Gem::Dependency
|
127
|
+
name: pry
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
129
|
+
requirements:
|
130
|
+
- - ">="
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
version: '0'
|
133
|
+
type: :development
|
134
|
+
prerelease: false
|
135
|
+
version_requirements: !ruby/object:Gem::Requirement
|
136
|
+
requirements:
|
137
|
+
- - ">="
|
138
|
+
- !ruby/object:Gem::Version
|
139
|
+
version: '0'
|
140
|
+
- !ruby/object:Gem::Dependency
|
141
|
+
name: sqlite3
|
142
|
+
requirement: !ruby/object:Gem::Requirement
|
143
|
+
requirements:
|
144
|
+
- - ">="
|
145
|
+
- !ruby/object:Gem::Version
|
146
|
+
version: '0'
|
147
|
+
type: :development
|
148
|
+
prerelease: false
|
149
|
+
version_requirements: !ruby/object:Gem::Requirement
|
150
|
+
requirements:
|
151
|
+
- - ">="
|
152
|
+
- !ruby/object:Gem::Version
|
153
|
+
version: '0'
|
154
|
+
- !ruby/object:Gem::Dependency
|
155
|
+
name: pg
|
156
|
+
requirement: !ruby/object:Gem::Requirement
|
157
|
+
requirements:
|
158
|
+
- - ">="
|
159
|
+
- !ruby/object:Gem::Version
|
160
|
+
version: '0'
|
161
|
+
type: :development
|
162
|
+
prerelease: false
|
163
|
+
version_requirements: !ruby/object:Gem::Requirement
|
164
|
+
requirements:
|
165
|
+
- - ">="
|
166
|
+
- !ruby/object:Gem::Version
|
167
|
+
version: '0'
|
168
|
+
- !ruby/object:Gem::Dependency
|
169
|
+
name: rails
|
170
|
+
requirement: !ruby/object:Gem::Requirement
|
171
|
+
requirements:
|
172
|
+
- - ">="
|
173
|
+
- !ruby/object:Gem::Version
|
174
|
+
version: '0'
|
175
|
+
type: :development
|
176
|
+
prerelease: false
|
177
|
+
version_requirements: !ruby/object:Gem::Requirement
|
178
|
+
requirements:
|
179
|
+
- - ">="
|
180
|
+
- !ruby/object:Gem::Version
|
181
|
+
version: '0'
|
182
|
+
- !ruby/object:Gem::Dependency
|
183
|
+
name: rspec-rails
|
184
|
+
requirement: !ruby/object:Gem::Requirement
|
185
|
+
requirements:
|
186
|
+
- - ">="
|
187
|
+
- !ruby/object:Gem::Version
|
188
|
+
version: '0'
|
189
|
+
type: :development
|
190
|
+
prerelease: false
|
191
|
+
version_requirements: !ruby/object:Gem::Requirement
|
192
|
+
requirements:
|
193
|
+
- - ">="
|
194
|
+
- !ruby/object:Gem::Version
|
195
|
+
version: '0'
|
42
196
|
description: Simple gem that allows you to run multiple ActiveRecord::Relation using
|
43
197
|
hash. Perfect for APIs.
|
44
198
|
email:
|
@@ -49,6 +203,8 @@ extensions: []
|
|
49
203
|
extra_rdoc_files: []
|
50
204
|
files:
|
51
205
|
- ".gitignore"
|
206
|
+
- ".rspec"
|
207
|
+
- ".travis.yml"
|
52
208
|
- Gemfile
|
53
209
|
- LICENSE.txt
|
54
210
|
- README.md
|
@@ -65,6 +221,123 @@ files:
|
|
65
221
|
- lib/active_hash_relation/sort_filters.rb
|
66
222
|
- lib/active_hash_relation/version.rb
|
67
223
|
- lib/active_record/scope_names.rb
|
224
|
+
- lib/generators/active_hash_relation/initialize_generator.rb
|
225
|
+
- lib/generators/active_hash_relation/templates/active_hash_relation.rb
|
226
|
+
- spec/config/initializers/active_hash_relation.rb
|
227
|
+
- spec/db/migrate/001_basic_schema.rb
|
228
|
+
- spec/dummy-rails4/.gitignore
|
229
|
+
- spec/dummy-rails4/.ruby-version
|
230
|
+
- spec/dummy-rails4/Gemfile
|
231
|
+
- spec/dummy-rails4/README.md
|
232
|
+
- spec/dummy-rails4/Rakefile
|
233
|
+
- spec/dummy-rails4/app/controllers/application_controller.rb
|
234
|
+
- spec/dummy-rails4/app/models/.keep
|
235
|
+
- spec/dummy-rails4/app/models/address.rb
|
236
|
+
- spec/dummy-rails4/app/models/micropost.rb
|
237
|
+
- spec/dummy-rails4/app/models/relationship.rb
|
238
|
+
- spec/dummy-rails4/app/models/user.rb
|
239
|
+
- spec/dummy-rails4/bin/bundle
|
240
|
+
- spec/dummy-rails4/bin/rails
|
241
|
+
- spec/dummy-rails4/bin/rake
|
242
|
+
- spec/dummy-rails4/bin/setup
|
243
|
+
- spec/dummy-rails4/config.ru
|
244
|
+
- spec/dummy-rails4/config/application.rb
|
245
|
+
- spec/dummy-rails4/config/boot.rb
|
246
|
+
- spec/dummy-rails4/config/database.yml
|
247
|
+
- spec/dummy-rails4/config/environment.rb
|
248
|
+
- spec/dummy-rails4/config/environments/development.rb
|
249
|
+
- spec/dummy-rails4/config/environments/production.rb
|
250
|
+
- spec/dummy-rails4/config/environments/test.rb
|
251
|
+
- spec/dummy-rails4/config/initializers/active_hash_relation.rb
|
252
|
+
- spec/dummy-rails4/config/initializers/assets.rb
|
253
|
+
- spec/dummy-rails4/config/initializers/backtrace_silencers.rb
|
254
|
+
- spec/dummy-rails4/config/initializers/cookies_serializer.rb
|
255
|
+
- spec/dummy-rails4/config/initializers/filter_parameter_logging.rb
|
256
|
+
- spec/dummy-rails4/config/initializers/inflections.rb
|
257
|
+
- spec/dummy-rails4/config/initializers/mime_types.rb
|
258
|
+
- spec/dummy-rails4/config/initializers/session_store.rb
|
259
|
+
- spec/dummy-rails4/config/initializers/wrap_parameters.rb
|
260
|
+
- spec/dummy-rails4/config/locales/en.yml
|
261
|
+
- spec/dummy-rails4/config/routes.rb
|
262
|
+
- spec/dummy-rails4/config/secrets.yml
|
263
|
+
- spec/dummy-rails4/db/migrate/001_basic_schema.rb
|
264
|
+
- spec/dummy-rails4/db/schema.rb
|
265
|
+
- spec/dummy-rails4/spec/factories/factories.rb
|
266
|
+
- spec/dummy-rails4/spec/rails_helper.rb
|
267
|
+
- spec/dummy-rails4/spec/spec_helper.rb
|
268
|
+
- spec/dummy-rails4/spec/support/support.rb
|
269
|
+
- spec/dummy-rails4/spec/tests/tests_spec.rb
|
270
|
+
- spec/dummy-rails5/.gitignore
|
271
|
+
- spec/dummy-rails5/.rspec
|
272
|
+
- spec/dummy-rails5/.ruby-version
|
273
|
+
- spec/dummy-rails5/Gemfile
|
274
|
+
- spec/dummy-rails5/README.md
|
275
|
+
- spec/dummy-rails5/Rakefile
|
276
|
+
- spec/dummy-rails5/app/controllers/application_controller.rb
|
277
|
+
- spec/dummy-rails5/app/models/address.rb
|
278
|
+
- spec/dummy-rails5/app/models/micropost.rb
|
279
|
+
- spec/dummy-rails5/app/models/relationship.rb
|
280
|
+
- spec/dummy-rails5/app/models/user.rb
|
281
|
+
- spec/dummy-rails5/bin/bundle
|
282
|
+
- spec/dummy-rails5/bin/rails
|
283
|
+
- spec/dummy-rails5/bin/rake
|
284
|
+
- spec/dummy-rails5/bin/setup
|
285
|
+
- spec/dummy-rails5/bin/update
|
286
|
+
- spec/dummy-rails5/config.ru
|
287
|
+
- spec/dummy-rails5/config/application.rb
|
288
|
+
- spec/dummy-rails5/config/boot.rb
|
289
|
+
- spec/dummy-rails5/config/cable.yml
|
290
|
+
- spec/dummy-rails5/config/database.yml
|
291
|
+
- spec/dummy-rails5/config/environment.rb
|
292
|
+
- spec/dummy-rails5/config/environments/development.rb
|
293
|
+
- spec/dummy-rails5/config/environments/production.rb
|
294
|
+
- spec/dummy-rails5/config/environments/test.rb
|
295
|
+
- spec/dummy-rails5/config/initializers/active_hash_relation.rb
|
296
|
+
- spec/dummy-rails5/config/initializers/application_controller_renderer.rb
|
297
|
+
- spec/dummy-rails5/config/initializers/assets.rb
|
298
|
+
- spec/dummy-rails5/config/initializers/backtrace_silencers.rb
|
299
|
+
- spec/dummy-rails5/config/initializers/cookies_serializer.rb
|
300
|
+
- spec/dummy-rails5/config/initializers/filter_parameter_logging.rb
|
301
|
+
- spec/dummy-rails5/config/initializers/inflections.rb
|
302
|
+
- spec/dummy-rails5/config/initializers/mime_types.rb
|
303
|
+
- spec/dummy-rails5/config/initializers/new_framework_defaults.rb
|
304
|
+
- spec/dummy-rails5/config/initializers/session_store.rb
|
305
|
+
- spec/dummy-rails5/config/initializers/wrap_parameters.rb
|
306
|
+
- spec/dummy-rails5/config/locales/en.yml
|
307
|
+
- spec/dummy-rails5/config/puma.rb
|
308
|
+
- spec/dummy-rails5/config/routes.rb
|
309
|
+
- spec/dummy-rails5/config/secrets.yml
|
310
|
+
- spec/dummy-rails5/config/spring.rb
|
311
|
+
- spec/dummy-rails5/db/migrate/001_basic_schema.rb
|
312
|
+
- spec/dummy-rails5/db/schema.rb
|
313
|
+
- spec/dummy-rails5/spec/factories/factories.rb
|
314
|
+
- spec/dummy-rails5/spec/rails_helper.rb
|
315
|
+
- spec/dummy-rails5/spec/spec_helper.rb
|
316
|
+
- spec/dummy-rails5/spec/support/support.rb
|
317
|
+
- spec/dummy-rails5/spec/tests/tests_spec.rb
|
318
|
+
- spec/factories/factories.rb
|
319
|
+
- spec/models/address.rb
|
320
|
+
- spec/models/application_record.rb
|
321
|
+
- spec/models/micropost.rb
|
322
|
+
- spec/models/relationship.rb
|
323
|
+
- spec/models/user.rb
|
324
|
+
- spec/support/support.rb
|
325
|
+
- spec/tests/aggregations/avg_spec.rb
|
326
|
+
- spec/tests/aggregations/max_spec.rb
|
327
|
+
- spec/tests/aggregations/min_spec.rb
|
328
|
+
- spec/tests/aggregations/sum_spec.rb
|
329
|
+
- spec/tests/associations/belongs_to_spec.rb
|
330
|
+
- spec/tests/associations/has_many_spec.rb
|
331
|
+
- spec/tests/associations/has_one_spec.rb
|
332
|
+
- spec/tests/booleans_spec.rb
|
333
|
+
- spec/tests/limit_spec.rb
|
334
|
+
- spec/tests/null_spec.rb
|
335
|
+
- spec/tests/numbers_spec.rb
|
336
|
+
- spec/tests/or_filter_spec.rb
|
337
|
+
- spec/tests/primary_key_spec.rb
|
338
|
+
- spec/tests/scopes_spec.rb
|
339
|
+
- spec/tests/sorting_spec.rb
|
340
|
+
- spec/tests/strings_spec.rb
|
68
341
|
homepage: https://github.com/kollegorna/active_hash_relation
|
69
342
|
licenses:
|
70
343
|
- MIT
|
@@ -85,9 +358,124 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
85
358
|
version: '0'
|
86
359
|
requirements: []
|
87
360
|
rubyforge_project:
|
88
|
-
rubygems_version: 2.
|
361
|
+
rubygems_version: 2.6.8
|
89
362
|
signing_key:
|
90
363
|
specification_version: 4
|
91
364
|
summary: Simple gem that allows you to run multiple ActiveRecord::Relation using hash.
|
92
365
|
Perfect for APIs.
|
93
|
-
test_files:
|
366
|
+
test_files:
|
367
|
+
- spec/config/initializers/active_hash_relation.rb
|
368
|
+
- spec/db/migrate/001_basic_schema.rb
|
369
|
+
- spec/dummy-rails4/.gitignore
|
370
|
+
- spec/dummy-rails4/.ruby-version
|
371
|
+
- spec/dummy-rails4/Gemfile
|
372
|
+
- spec/dummy-rails4/README.md
|
373
|
+
- spec/dummy-rails4/Rakefile
|
374
|
+
- spec/dummy-rails4/app/controllers/application_controller.rb
|
375
|
+
- spec/dummy-rails4/app/models/.keep
|
376
|
+
- spec/dummy-rails4/app/models/address.rb
|
377
|
+
- spec/dummy-rails4/app/models/micropost.rb
|
378
|
+
- spec/dummy-rails4/app/models/relationship.rb
|
379
|
+
- spec/dummy-rails4/app/models/user.rb
|
380
|
+
- spec/dummy-rails4/bin/bundle
|
381
|
+
- spec/dummy-rails4/bin/rails
|
382
|
+
- spec/dummy-rails4/bin/rake
|
383
|
+
- spec/dummy-rails4/bin/setup
|
384
|
+
- spec/dummy-rails4/config.ru
|
385
|
+
- spec/dummy-rails4/config/application.rb
|
386
|
+
- spec/dummy-rails4/config/boot.rb
|
387
|
+
- spec/dummy-rails4/config/database.yml
|
388
|
+
- spec/dummy-rails4/config/environment.rb
|
389
|
+
- spec/dummy-rails4/config/environments/development.rb
|
390
|
+
- spec/dummy-rails4/config/environments/production.rb
|
391
|
+
- spec/dummy-rails4/config/environments/test.rb
|
392
|
+
- spec/dummy-rails4/config/initializers/active_hash_relation.rb
|
393
|
+
- spec/dummy-rails4/config/initializers/assets.rb
|
394
|
+
- spec/dummy-rails4/config/initializers/backtrace_silencers.rb
|
395
|
+
- spec/dummy-rails4/config/initializers/cookies_serializer.rb
|
396
|
+
- spec/dummy-rails4/config/initializers/filter_parameter_logging.rb
|
397
|
+
- spec/dummy-rails4/config/initializers/inflections.rb
|
398
|
+
- spec/dummy-rails4/config/initializers/mime_types.rb
|
399
|
+
- spec/dummy-rails4/config/initializers/session_store.rb
|
400
|
+
- spec/dummy-rails4/config/initializers/wrap_parameters.rb
|
401
|
+
- spec/dummy-rails4/config/locales/en.yml
|
402
|
+
- spec/dummy-rails4/config/routes.rb
|
403
|
+
- spec/dummy-rails4/config/secrets.yml
|
404
|
+
- spec/dummy-rails4/db/migrate/001_basic_schema.rb
|
405
|
+
- spec/dummy-rails4/db/schema.rb
|
406
|
+
- spec/dummy-rails4/spec/factories/factories.rb
|
407
|
+
- spec/dummy-rails4/spec/rails_helper.rb
|
408
|
+
- spec/dummy-rails4/spec/spec_helper.rb
|
409
|
+
- spec/dummy-rails4/spec/support/support.rb
|
410
|
+
- spec/dummy-rails4/spec/tests/tests_spec.rb
|
411
|
+
- spec/dummy-rails5/.gitignore
|
412
|
+
- spec/dummy-rails5/.rspec
|
413
|
+
- spec/dummy-rails5/.ruby-version
|
414
|
+
- spec/dummy-rails5/Gemfile
|
415
|
+
- spec/dummy-rails5/README.md
|
416
|
+
- spec/dummy-rails5/Rakefile
|
417
|
+
- spec/dummy-rails5/app/controllers/application_controller.rb
|
418
|
+
- spec/dummy-rails5/app/models/address.rb
|
419
|
+
- spec/dummy-rails5/app/models/micropost.rb
|
420
|
+
- spec/dummy-rails5/app/models/relationship.rb
|
421
|
+
- spec/dummy-rails5/app/models/user.rb
|
422
|
+
- spec/dummy-rails5/bin/bundle
|
423
|
+
- spec/dummy-rails5/bin/rails
|
424
|
+
- spec/dummy-rails5/bin/rake
|
425
|
+
- spec/dummy-rails5/bin/setup
|
426
|
+
- spec/dummy-rails5/bin/update
|
427
|
+
- spec/dummy-rails5/config.ru
|
428
|
+
- spec/dummy-rails5/config/application.rb
|
429
|
+
- spec/dummy-rails5/config/boot.rb
|
430
|
+
- spec/dummy-rails5/config/cable.yml
|
431
|
+
- spec/dummy-rails5/config/database.yml
|
432
|
+
- spec/dummy-rails5/config/environment.rb
|
433
|
+
- spec/dummy-rails5/config/environments/development.rb
|
434
|
+
- spec/dummy-rails5/config/environments/production.rb
|
435
|
+
- spec/dummy-rails5/config/environments/test.rb
|
436
|
+
- spec/dummy-rails5/config/initializers/active_hash_relation.rb
|
437
|
+
- spec/dummy-rails5/config/initializers/application_controller_renderer.rb
|
438
|
+
- spec/dummy-rails5/config/initializers/assets.rb
|
439
|
+
- spec/dummy-rails5/config/initializers/backtrace_silencers.rb
|
440
|
+
- spec/dummy-rails5/config/initializers/cookies_serializer.rb
|
441
|
+
- spec/dummy-rails5/config/initializers/filter_parameter_logging.rb
|
442
|
+
- spec/dummy-rails5/config/initializers/inflections.rb
|
443
|
+
- spec/dummy-rails5/config/initializers/mime_types.rb
|
444
|
+
- spec/dummy-rails5/config/initializers/new_framework_defaults.rb
|
445
|
+
- spec/dummy-rails5/config/initializers/session_store.rb
|
446
|
+
- spec/dummy-rails5/config/initializers/wrap_parameters.rb
|
447
|
+
- spec/dummy-rails5/config/locales/en.yml
|
448
|
+
- spec/dummy-rails5/config/puma.rb
|
449
|
+
- spec/dummy-rails5/config/routes.rb
|
450
|
+
- spec/dummy-rails5/config/secrets.yml
|
451
|
+
- spec/dummy-rails5/config/spring.rb
|
452
|
+
- spec/dummy-rails5/db/migrate/001_basic_schema.rb
|
453
|
+
- spec/dummy-rails5/db/schema.rb
|
454
|
+
- spec/dummy-rails5/spec/factories/factories.rb
|
455
|
+
- spec/dummy-rails5/spec/rails_helper.rb
|
456
|
+
- spec/dummy-rails5/spec/spec_helper.rb
|
457
|
+
- spec/dummy-rails5/spec/support/support.rb
|
458
|
+
- spec/dummy-rails5/spec/tests/tests_spec.rb
|
459
|
+
- spec/factories/factories.rb
|
460
|
+
- spec/models/address.rb
|
461
|
+
- spec/models/application_record.rb
|
462
|
+
- spec/models/micropost.rb
|
463
|
+
- spec/models/relationship.rb
|
464
|
+
- spec/models/user.rb
|
465
|
+
- spec/support/support.rb
|
466
|
+
- spec/tests/aggregations/avg_spec.rb
|
467
|
+
- spec/tests/aggregations/max_spec.rb
|
468
|
+
- spec/tests/aggregations/min_spec.rb
|
469
|
+
- spec/tests/aggregations/sum_spec.rb
|
470
|
+
- spec/tests/associations/belongs_to_spec.rb
|
471
|
+
- spec/tests/associations/has_many_spec.rb
|
472
|
+
- spec/tests/associations/has_one_spec.rb
|
473
|
+
- spec/tests/booleans_spec.rb
|
474
|
+
- spec/tests/limit_spec.rb
|
475
|
+
- spec/tests/null_spec.rb
|
476
|
+
- spec/tests/numbers_spec.rb
|
477
|
+
- spec/tests/or_filter_spec.rb
|
478
|
+
- spec/tests/primary_key_spec.rb
|
479
|
+
- spec/tests/scopes_spec.rb
|
480
|
+
- spec/tests/sorting_spec.rb
|
481
|
+
- spec/tests/strings_spec.rb
|