counterwise 0.1.5 → 0.1.6
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 +4 -4
- data/lib/counter/integration/counters.rb +20 -8
- data/lib/counter/version.rb +1 -1
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1246c81e123d325511e259e5382592fdb52b4a10ea034c007bf3abc7f2b50148
|
4
|
+
data.tar.gz: 9a37bacf70d97d5199ebc945ceb72027e02752bcb0f6aa3abe853d77ff5b76ad
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5f01c473682cc7720d7801b31da1e728cd9e0b0f3c2ec8b4556ffbb4f220734cb950f37b08111af5c712bd85fd2fd1993bbb0932a12d0c353c3beb122aee15db
|
7
|
+
data.tar.gz: d6f9b153dc5fd8f78e4b652d58b9cf5a660c30f5a260bcec5b6c1e6d3378e60343730c074d9fbdc1cd76459d31ddc1f5c9ccaf4bb074f693ba15fb8ca0d96c0a
|
@@ -57,13 +57,24 @@ module Counter::Counters
|
|
57
57
|
definition = definition_class.instance
|
58
58
|
definition.model = self
|
59
59
|
|
60
|
+
counter_subquery = ->(counter_class) do
|
61
|
+
record_name = counter_class.instance.record_name
|
62
|
+
|
63
|
+
Counter::Value
|
64
|
+
.select(:value)
|
65
|
+
.where("parent_id = #{table_name}.id AND parent_type = '#{name}' AND name = '#{record_name}'")
|
66
|
+
.limit(1)
|
67
|
+
.to_sql
|
68
|
+
end
|
69
|
+
|
60
70
|
scope :with_counter_data_from, ->(*counter_classes) {
|
61
71
|
subqueries = ["#{table_name}.*"]
|
72
|
+
|
62
73
|
counter_classes.each do |counter_class|
|
63
|
-
|
64
|
-
|
65
|
-
subqueries << "(#{sql}) AS #{counter_class.instance.name}_data"
|
74
|
+
subquery = counter_subquery.call(counter_class)
|
75
|
+
subqueries << Arel.sql("(#{subquery}) AS #{"#{counter_class.instance.name}_data"}")
|
66
76
|
end
|
77
|
+
|
67
78
|
select(subqueries)
|
68
79
|
}
|
69
80
|
|
@@ -74,15 +85,16 @@ module Counter::Counters
|
|
74
85
|
counter_class.is_a?(Class) &&
|
75
86
|
counter_class.ancestors.include?(Counter::Definition)
|
76
87
|
}
|
77
|
-
|
78
|
-
order_hash.map do |counter_class, direction|
|
88
|
+
|
89
|
+
order_clauses = order_hash.map do |counter_class, direction|
|
79
90
|
if counter_class.is_a?(String) || counter_class.is_a?(Symbol)
|
80
|
-
|
91
|
+
"#{counter_class} #{direction.to_s.upcase}"
|
81
92
|
elsif counter_class.ancestors.include?(Counter::Definition)
|
82
|
-
|
93
|
+
"(#{counter_subquery.call(counter_class)}) #{direction.to_s.upcase}"
|
83
94
|
end
|
84
95
|
end
|
85
|
-
|
96
|
+
|
97
|
+
with_counter_data_from(*counter_classes).order(Arel.sql(order_clauses.join(", ")))
|
86
98
|
}
|
87
99
|
|
88
100
|
scope :with_counters, -> { includes(:counters) }
|
data/lib/counter/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: counterwise
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jamie Lawrence
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2025-07-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '8'
|
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
|
-
version: '
|
26
|
+
version: '8'
|
27
27
|
description: Counting and aggregation library for Rails.
|
28
28
|
email:
|
29
29
|
- jamie@ideasasylum.com
|
@@ -80,14 +80,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
80
80
|
requirements:
|
81
81
|
- - ">="
|
82
82
|
- !ruby/object:Gem::Version
|
83
|
-
version:
|
83
|
+
version: 3.4.0
|
84
84
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
85
85
|
requirements:
|
86
86
|
- - ">="
|
87
87
|
- !ruby/object:Gem::Version
|
88
88
|
version: '0'
|
89
89
|
requirements: []
|
90
|
-
rubygems_version: 3.
|
90
|
+
rubygems_version: 3.5.16
|
91
91
|
signing_key:
|
92
92
|
specification_version: 4
|
93
93
|
summary: Counters and the counting counters that count them
|