orchestrate 0.11.0 → 0.11.1
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/README.md +21 -2
- data/lib/orchestrate/search/aggregate_builder.rb +15 -2
- data/lib/orchestrate/version.rb +1 -1
- data/test/orchestrate/collection_aggregates_test.rb +20 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4d0d0f4b8f59826a8f9dbba17f58a94d74a56051
|
4
|
+
data.tar.gz: 43ad3fb8c92dddd44e4f4757b94b57c48a142f06
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7e114a8889c720f8cb505c39fa32e5526f7ad8e47f60cb6acbacd9175e963692c1d2f19cf07388c5482d2098e67e6a44d21b0fc78afe8adb18e22b1d1e342b03
|
7
|
+
data.tar.gz: bd4bb4b0a7720b99a906247f6e8eb7d8ec1dfd7516cc7996418e6a09912f0ab435c9e66f6a683967f0ee0b9f553142f6fd8b028876c3ce83e9c50f50b5090960
|
data/README.md
CHANGED
@@ -127,6 +127,7 @@ cafes.near(:location, 12, 19, 4, 'mi').aggregate # Start the near search query
|
|
127
127
|
# Accepted intervals are: year, quarter, month, week, day, and hour
|
128
128
|
comments.search("*").aggregate # Start the near search query and aggregate param builder
|
129
129
|
.time_series("posted", "day") # get count of comments posted by day
|
130
|
+
.time_zone("+1100") # set a specific time zone
|
130
131
|
.find # return SearchResults object to execute our query
|
131
132
|
.each_aggregate # return enumerator for iterating over each aggregate result
|
132
133
|
|
@@ -279,6 +280,21 @@ response = client.search(:comments, query, options)
|
|
279
280
|
response.aggregates # return aggregate results
|
280
281
|
|
281
282
|
|
283
|
+
# Time-Series Aggregate with Time Zone
|
284
|
+
|
285
|
+
options = {
|
286
|
+
# get count of comments posted by day
|
287
|
+
aggregate: "value.posted:time_series:day:+1100"
|
288
|
+
}
|
289
|
+
|
290
|
+
query = "*"
|
291
|
+
|
292
|
+
response = client.search(:comments, query, options)
|
293
|
+
|
294
|
+
response.aggregates # return aggregate results
|
295
|
+
|
296
|
+
|
297
|
+
|
282
298
|
# Multiple Aggregate Functions
|
283
299
|
options = {
|
284
300
|
# multiple aggregate params are separated by commas
|
@@ -396,7 +412,10 @@ end
|
|
396
412
|
|
397
413
|
## Release Notes
|
398
414
|
|
399
|
-
###
|
415
|
+
### February 17, 2015: release 0.11.1
|
416
|
+
- Implement `Search::TimeSeriesBuilder#time_zone` to designate time zone when calculating time series bucket boundaries.
|
417
|
+
|
418
|
+
### January 7, 2015: release 0.11.0
|
400
419
|
- **BACKWARDS-INCOMPATIBLE** `Orchestrate::Collection` searches require `#find` method at the end of the method call/chain. Example: `users.search('foo').find`.
|
401
420
|
- Implement `Orchestrate::Search` module, refactor functionality of prior `Orchestrate::Collection::SearchResults`.
|
402
421
|
- Implement results enumeration & request firing functionality in prior `Orchestrate::Collection::SearchResults` to `Orchestrate::Search::Results`
|
@@ -474,4 +493,4 @@ end
|
|
474
493
|
### May 21, 2014: release 0.5.0
|
475
494
|
Initial Port from @jimcar
|
476
495
|
- Uses Faraday HTTP Library as backend, with examples of alternate adapters
|
477
|
-
- Cleanup client method signatures
|
496
|
+
- Cleanup client method signatures
|
@@ -220,6 +220,7 @@ module Orchestrate::Search
|
|
220
220
|
@builder = builder
|
221
221
|
@field_name = field_name
|
222
222
|
@interval = nil
|
223
|
+
@time_zone = nil
|
223
224
|
end
|
224
225
|
|
225
226
|
def_delegator :@builder, :options
|
@@ -236,13 +237,17 @@ module Orchestrate::Search
|
|
236
237
|
|
237
238
|
# @return Pretty-Printed string representation of the TimeSeriesBuilder object
|
238
239
|
def to_s
|
239
|
-
"#<Orchestrate::Search::TimeSeriesBuilder collection=#{collection.name} field_name=#{field_name} interval=#{interval}>"
|
240
|
+
"#<Orchestrate::Search::TimeSeriesBuilder collection=#{collection.name} field_name=#{field_name} interval=#{interval} time_zone=#{@time_zone}>"
|
240
241
|
end
|
241
242
|
alias :inspect :to_s
|
242
243
|
|
243
244
|
# @return [#to_s] constructed aggregate string clause
|
244
245
|
def to_param
|
245
|
-
|
246
|
+
if @time_zone.nil?
|
247
|
+
"#{field_name}:time_series:#{interval}"
|
248
|
+
else
|
249
|
+
"#{field_name}:time_series:#{interval}:#{@time_zone}"
|
250
|
+
end
|
246
251
|
end
|
247
252
|
|
248
253
|
# Set time series interval to year
|
@@ -286,5 +291,13 @@ module Orchestrate::Search
|
|
286
291
|
@interval = 'hour'
|
287
292
|
self
|
288
293
|
end
|
294
|
+
|
295
|
+
# Use the designated time zone (e.g., "-0500" or "+0430") when calculating bucket boundaries
|
296
|
+
# @param zone [String]
|
297
|
+
# @return [RangeBuilder]
|
298
|
+
def time_zone(zone)
|
299
|
+
@time_zone = zone
|
300
|
+
self
|
301
|
+
end
|
289
302
|
end
|
290
303
|
end
|
data/lib/orchestrate/version.rb
CHANGED
@@ -49,6 +49,17 @@ class CollectionAggregates < MiniTest::Unit::TestCase
|
|
49
49
|
"count" => 17
|
50
50
|
}]
|
51
51
|
}]
|
52
|
+
@time_series_with_time_zone = [{
|
53
|
+
"aggregate_kind" => "time_series",
|
54
|
+
"field_name" => "value.bar",
|
55
|
+
"interval" => "day",
|
56
|
+
"time_zone" => "+1100",
|
57
|
+
"value_count" => 100,
|
58
|
+
"buckets" => [{
|
59
|
+
"bucket" => "2014-11-01",
|
60
|
+
"count" => 17
|
61
|
+
}]
|
62
|
+
}]
|
52
63
|
@limit = 100
|
53
64
|
@total = 110
|
54
65
|
|
@@ -67,6 +78,9 @@ class CollectionAggregates < MiniTest::Unit::TestCase
|
|
67
78
|
when 'bar:time_series:day'
|
68
79
|
{ "results" => 100.times.map{|i| @make_listing.call(i)}, "count" => 100, "total_count" => @total,
|
69
80
|
"aggregates" => @time_series }
|
81
|
+
when 'bar:time_series:day:+1100'
|
82
|
+
{ "results" => 100.times.map{|i| @make_listing.call(i)}, "count" => 100, "total_count" => @total,
|
83
|
+
"aggregates" => @time_series_with_time_zone }
|
70
84
|
else
|
71
85
|
raise ArgumentError.new("unexpected aggregate: #{aggregate}")
|
72
86
|
end
|
@@ -107,6 +121,12 @@ class CollectionAggregates < MiniTest::Unit::TestCase
|
|
107
121
|
assert_equal @time_series, results.aggregates
|
108
122
|
end
|
109
123
|
|
124
|
+
def test_basic_time_series_aggregate_with_time_zone
|
125
|
+
results = @items.search("foo").aggregate.time_series("bar").day.time_zone("+1100").find
|
126
|
+
results.each_aggregate
|
127
|
+
assert_equal @time_series_with_time_zone, results.aggregates
|
128
|
+
end
|
129
|
+
|
110
130
|
def test_each_aggregate_enum
|
111
131
|
results = @items.search("foo").aggregate.time_series("bar").day.find
|
112
132
|
enum = results.each_aggregate
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: orchestrate
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.11.
|
4
|
+
version: 0.11.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matthew Lyon
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2015-
|
14
|
+
date: 2015-02-17 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: faraday
|