plunk 0.2.5 → 0.2.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.ruby-version +1 -0
- data/Gemfile.lock +1 -1
- data/README.md +9 -1
- data/lib/plunk.rb +2 -1
- data/lib/plunk/result_set.rb +2 -2
- data/plunk.gemspec +1 -1
- data/spec/basic_spec.rb +1 -1
- data/spec/chained_search_spec.rb +1 -1
- data/spec/last_spec.rb +6 -6
- data/spec/nested_search_spec.rb +2 -2
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1bc1207f69f06280c177f65cdce11a259502ac58
|
4
|
+
data.tar.gz: 909ee371c459abed454a019ac37f46fd48c3bfd5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b45c80c41996d29e5391ab23368e27e50de2c00780d1d652d95adbf60c20ef471830821f3bfd4e8e0a1f8d12ff5041edb7b8d90782f80380e4a7633aa0fede4a
|
7
|
+
data.tar.gz: 8a6d79f487a627265335408439504726f5293e7e1ec8f81e275da83110e8cf55ad0b80f35e0af25baba46c3cf6c63b2c09fcf8864a538e7e91f9a2b83eac5757
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
2.0.0
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -3,6 +3,12 @@ Plunk
|
|
3
3
|
|
4
4
|
Human-friendly query language for Elasticsearch
|
5
5
|
|
6
|
+
## About
|
7
|
+
|
8
|
+
Plunk is a ruby gem to take a human-friendly search command and translate it
|
9
|
+
to something Elasticsearch understands. Currently it only supports a few
|
10
|
+
commands, but the framework is in place
|
11
|
+
|
6
12
|
## Installation
|
7
13
|
```
|
8
14
|
gem install plunk
|
@@ -31,7 +37,9 @@ Plunk.search 'foo.field = (bar OR baz)'
|
|
31
37
|
```
|
32
38
|
|
33
39
|
|
34
|
-
## Translation
|
40
|
+
## Translation
|
41
|
+
|
42
|
+
Plunk takes your command and translates
|
35
43
|
|
36
44
|
```last 24h _type=syslog```
|
37
45
|
|
data/lib/plunk.rb
CHANGED
@@ -8,11 +8,12 @@ require 'plunk/result_set'
|
|
8
8
|
module Plunk
|
9
9
|
class << self
|
10
10
|
attr_accessor :elasticsearch_options, :elasticsearch_client,
|
11
|
-
:parser, :transformer, :max_number_of_hits
|
11
|
+
:parser, :transformer, :max_number_of_hits, :timestamp_field
|
12
12
|
end
|
13
13
|
|
14
14
|
def self.configure(&block)
|
15
15
|
class_eval(&block)
|
16
|
+
self.timestamp_field ||= :timestamp
|
16
17
|
initialize_parser
|
17
18
|
initialize_transformer
|
18
19
|
initialize_elasticsearch
|
data/lib/plunk/result_set.rb
CHANGED
@@ -13,7 +13,7 @@ module Plunk
|
|
13
13
|
@query[:query][:filtered][:filter] = {
|
14
14
|
and: [
|
15
15
|
range: {
|
16
|
-
|
16
|
+
Plunk.timestamp_field => {
|
17
17
|
gte: opts[:start_time],
|
18
18
|
lte: opts[:end_time] }}]}
|
19
19
|
else
|
@@ -24,7 +24,7 @@ module Plunk
|
|
24
24
|
elsif opts[:start_time] and opts[:end_time]
|
25
25
|
@query[:query][:filtered][:query] = {
|
26
26
|
range: {
|
27
|
-
|
27
|
+
Plunk.timestamp_field => {
|
28
28
|
gte: opts[:start_time],
|
29
29
|
lte: opts[:end_time] }}}
|
30
30
|
end
|
data/plunk.gemspec
CHANGED
data/spec/basic_spec.rb
CHANGED
data/spec/chained_search_spec.rb
CHANGED
data/spec/last_spec.rb
CHANGED
@@ -5,7 +5,7 @@ describe 'the last command' do
|
|
5
5
|
result = @transformer.apply @parser.parse('last 24h')
|
6
6
|
expect(result.query.to_s).to eq({query:{filtered:{query:{
|
7
7
|
range: {
|
8
|
-
|
8
|
+
Plunk.timestamp_field => {
|
9
9
|
gte: 24.hours.ago.utc.to_datetime.iso8601(3),
|
10
10
|
lte: Time.now.utc.to_datetime.iso8601(3)
|
11
11
|
}}}}}}.to_s)
|
@@ -15,7 +15,7 @@ describe 'the last command' do
|
|
15
15
|
result = @transformer.apply @parser.parse('last 24d')
|
16
16
|
expect(result.query.to_s).to eq({query:{filtered:{query:{
|
17
17
|
range: {
|
18
|
-
|
18
|
+
Plunk.timestamp_field => {
|
19
19
|
gte: 24.days.ago.utc.to_datetime.iso8601(3),
|
20
20
|
lte: Time.now.utc.to_datetime.iso8601(3)
|
21
21
|
}}}}}}.to_s)
|
@@ -25,7 +25,7 @@ describe 'the last command' do
|
|
25
25
|
result = @transformer.apply @parser.parse('last 24w')
|
26
26
|
expect(result.query.to_s).to eq({query:{filtered:{query:{
|
27
27
|
range: {
|
28
|
-
|
28
|
+
Plunk.timestamp_field => {
|
29
29
|
gte: 24.weeks.ago.utc.to_datetime.iso8601(3),
|
30
30
|
lte: Time.now.utc.to_datetime.iso8601(3)
|
31
31
|
}}}}}}.to_s)
|
@@ -35,7 +35,7 @@ describe 'the last command' do
|
|
35
35
|
result = @transformer.apply @parser.parse('last 24s')
|
36
36
|
expect(result.query.to_s).to eq({query:{filtered:{query:{
|
37
37
|
range: {
|
38
|
-
|
38
|
+
Plunk.timestamp_field => {
|
39
39
|
gte: 24.seconds.ago.utc.to_datetime.iso8601(3),
|
40
40
|
lte: Time.now.utc.to_datetime.iso8601(3)
|
41
41
|
}}}}}}.to_s)
|
@@ -45,7 +45,7 @@ describe 'the last command' do
|
|
45
45
|
result = @transformer.apply @parser.parse('last 24m')
|
46
46
|
expect(result.query.to_s).to eq({query:{filtered:{query:{
|
47
47
|
range: {
|
48
|
-
|
48
|
+
Plunk.timestamp_field => {
|
49
49
|
gte: 24.minutes.ago.utc.to_datetime.iso8601(3),
|
50
50
|
lte: Time.now.utc.to_datetime.iso8601(3)
|
51
51
|
}}}}}}.to_s)
|
@@ -61,7 +61,7 @@ describe 'the last command' do
|
|
61
61
|
filter: {
|
62
62
|
and: [
|
63
63
|
range: {
|
64
|
-
|
64
|
+
Plunk.timestamp_field => {
|
65
65
|
gte: 1.hour.ago.utc.to_datetime.iso8601(3),
|
66
66
|
lte: Time.now.utc.to_datetime.iso8601(3)
|
67
67
|
}}]}}}}.to_s)
|
data/spec/nested_search_spec.rb
CHANGED
@@ -6,13 +6,13 @@ describe 'nested searches' do
|
|
6
6
|
foo: 'bar',
|
7
7
|
baz: 5,
|
8
8
|
arr: [ 0, 1, 2, 3 ],
|
9
|
-
|
9
|
+
:timestamp => Time.now.utc.iso8601(3)
|
10
10
|
}.to_json
|
11
11
|
Plunk::ResultSet.any_instance.stub(:eval).and_return(fake_results)
|
12
12
|
end
|
13
13
|
|
14
14
|
it 'should transform' do
|
15
|
-
results = @transformer.apply @parser.parse('foo=`bar=baz|baz`')
|
15
|
+
results = @transformer.apply @parser.parse('foo=`bar=baz|baz,fass,fdsd`')
|
16
16
|
expect(results.query).to eq({query:{filtered:{query:{query_string:{
|
17
17
|
query: 'foo:(5)'
|
18
18
|
}}}}})
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: plunk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ram Mehta
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-01-
|
12
|
+
date: 2014-01-28 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: json
|
@@ -90,6 +90,7 @@ extensions: []
|
|
90
90
|
extra_rdoc_files: []
|
91
91
|
files:
|
92
92
|
- .gitignore
|
93
|
+
- .ruby-version
|
93
94
|
- AUTHORS
|
94
95
|
- Gemfile
|
95
96
|
- Gemfile.lock
|