flurry 0.4.1 → 0.5.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.
- checksums.yaml +4 -4
- data/lib/flurry/helper.rb +13 -0
- data/lib/flurry/request.rb +9 -5
- data/lib/flurry/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7dfb857e76e829fc5ef38c907de8ac00e8433071bbf8ffca566dfce7c5bc2020
|
4
|
+
data.tar.gz: f16bd69eb991bee0be3dbc5845c82b0ff6697e4d08ebccbf7cfe0ce6801f0d41
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2de8d6cb00b1ee989c2211808ff11fd2f0185b8411a229ad250346cf4e622e51d6aab1d62b19deeaada6edaad45797f93e76d767e0eac0472a25a11277434f5c
|
7
|
+
data.tar.gz: e08caab0c91b15427444eff98b503cdf447ebf20215f2acc69c3d389dda6fa829c2aa966f86cc589e52b5a9c31e33bcefa4ffe5d218a6b87db185af1ccc197ee
|
data/lib/flurry/helper.rb
CHANGED
@@ -20,5 +20,18 @@ module Flurry
|
|
20
20
|
tomorrow = Date.parse(date.to_s) if date.is_a?(Time)
|
21
21
|
(tomorrow || date) + 1
|
22
22
|
end
|
23
|
+
|
24
|
+
def merge(hsh, other)
|
25
|
+
(hsh || {}).merge(other || {}) do |_key, old_val, new_val|
|
26
|
+
case old_val
|
27
|
+
when Hash
|
28
|
+
merge old_val, new_val
|
29
|
+
when Array
|
30
|
+
old_val | new_val
|
31
|
+
else
|
32
|
+
new_val
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
23
36
|
end
|
24
37
|
end
|
data/lib/flurry/request.rb
CHANGED
@@ -16,14 +16,17 @@ module Flurry
|
|
16
16
|
end
|
17
17
|
|
18
18
|
def showing(**dimensions)
|
19
|
-
dup.tap { |it| it.dimensions = clean_dimensions(dimensions || {}) }
|
19
|
+
dup.tap { |it| it.dimensions = merge(it.dimensions, clean_dimensions(dimensions || {})) }
|
20
20
|
end
|
21
21
|
|
22
22
|
def select(*metrics)
|
23
23
|
metrics = metrics.flatten.reject(&:nil?) || []
|
24
24
|
raise Flurry::Error, 'at least one metric has to be provided' if metrics.empty?
|
25
25
|
|
26
|
-
dup.tap
|
26
|
+
dup.tap do |it|
|
27
|
+
it.metrics ||= []
|
28
|
+
it.metrics |= metrics.map { |m| camelize(m.to_s) }
|
29
|
+
end
|
27
30
|
end
|
28
31
|
|
29
32
|
def between(start, finish = nil, format: '%Y-%m-%d')
|
@@ -41,7 +44,7 @@ module Flurry
|
|
41
44
|
|
42
45
|
sorts = { sorts => nil } unless sorts.is_a?(Hash)
|
43
46
|
dup.tap do |it|
|
44
|
-
it.sorts = clean_sorts(sorts || {})
|
47
|
+
it.sorts = merge(it.sorts, clean_sorts(sorts || {}))
|
45
48
|
it.top = top
|
46
49
|
end
|
47
50
|
end
|
@@ -49,7 +52,7 @@ module Flurry
|
|
49
52
|
def having(**havings)
|
50
53
|
raise Flurry::Error, 'metrics must be provided before having' unless @metrics
|
51
54
|
|
52
|
-
dup.tap { |it| it.havings = clean_havings(havings || {}) }
|
55
|
+
dup.tap { |it| it.havings = merge(it.havings, clean_havings(havings || {})) }
|
53
56
|
end
|
54
57
|
|
55
58
|
def time_zone(time_zone)
|
@@ -68,7 +71,8 @@ module Flurry
|
|
68
71
|
|
69
72
|
protected
|
70
73
|
|
71
|
-
attr_writer :table, :grain, :
|
74
|
+
attr_writer :table, :grain, :range, :top, :time_zone, :format
|
75
|
+
attr_accessor :dimensions, :metrics, :sorts, :havings
|
72
76
|
|
73
77
|
private
|
74
78
|
|
data/lib/flurry/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: flurry
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Roger Bagué
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-03
|
11
|
+
date: 2019-05-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|