plunk 0.3.11 → 0.3.12
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/.ruby-version +1 -1
- data/Gemfile.lock +26 -22
- data/README.md +1 -116
- data/bin/plunk +42 -7
- data/lib/plunk/version.rb +1 -1
- data/plunk.gemspec +8 -3
- data/spec/basic_spec.rb +4 -4
- data/spec/binstub_spec.rb +33 -0
- data/spec/nested_search_spec.rb +8 -8
- data/spec/shared/plunk_stubs.rb +1 -1
- metadata +12 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c74090ae720297508b3052f062ce3376ecde58d3
|
4
|
+
data.tar.gz: 1d61ecb3d0d944391f80ea30be02470fad915c08
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5ab3dadd247100ca75f8cc39661adc5a80e3f586d1599a3c10f81a964ee04beffa01cfa13a516c707decde2f37bce0259df252f758156264fcd063c22f93118f
|
7
|
+
data.tar.gz: 33b135c700a1a800e0d7b4a7f0a96f67af97cf5345bd4b285d0239ba08771976febd035f6668fb5e2e0f8a24814616afc62511a47865ea26b501972fbadc214f
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.1
|
1
|
+
2.1
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
plunk (0.3.
|
4
|
+
plunk (0.3.11)
|
5
5
|
activesupport (~> 4.0, >= 4.0.0)
|
6
6
|
chronic (~> 0.10, >= 0.10.0)
|
7
7
|
elasticsearch (~> 1.0, >= 1.0.0)
|
@@ -11,7 +11,7 @@ PATH
|
|
11
11
|
GEM
|
12
12
|
remote: https://rubygems.org/
|
13
13
|
specs:
|
14
|
-
activesupport (4.1.
|
14
|
+
activesupport (4.1.4)
|
15
15
|
i18n (~> 0.6, >= 0.6.9)
|
16
16
|
json (~> 1.7, >= 1.7.7)
|
17
17
|
minitest (~> 5.1)
|
@@ -20,34 +20,38 @@ GEM
|
|
20
20
|
blankslate (2.1.2.4)
|
21
21
|
chronic (0.10.2)
|
22
22
|
diff-lcs (1.2.5)
|
23
|
-
elasticsearch (1.0.
|
24
|
-
elasticsearch-api (= 1.0.
|
25
|
-
elasticsearch-transport (= 1.0.
|
26
|
-
elasticsearch-api (1.0.
|
23
|
+
elasticsearch (1.0.4)
|
24
|
+
elasticsearch-api (= 1.0.4)
|
25
|
+
elasticsearch-transport (= 1.0.4)
|
26
|
+
elasticsearch-api (1.0.4)
|
27
27
|
multi_json
|
28
|
-
elasticsearch-transport (1.0.
|
28
|
+
elasticsearch-transport (1.0.4)
|
29
29
|
faraday
|
30
30
|
multi_json
|
31
31
|
faraday (0.9.0)
|
32
32
|
multipart-post (>= 1.2, < 3)
|
33
|
-
i18n (0.6.
|
33
|
+
i18n (0.6.11)
|
34
34
|
json (1.8.1)
|
35
|
-
minitest (5.
|
36
|
-
multi_json (1.
|
35
|
+
minitest (5.4.0)
|
36
|
+
multi_json (1.10.1)
|
37
37
|
multipart-post (2.0.0)
|
38
|
-
parslet (1.
|
38
|
+
parslet (1.6.1)
|
39
39
|
blankslate (~> 2.0)
|
40
|
-
rspec (
|
41
|
-
rspec-core (~>
|
42
|
-
rspec-expectations (~>
|
43
|
-
rspec-mocks (~>
|
44
|
-
rspec-core (
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
40
|
+
rspec (3.1.0)
|
41
|
+
rspec-core (~> 3.1.0)
|
42
|
+
rspec-expectations (~> 3.1.0)
|
43
|
+
rspec-mocks (~> 3.1.0)
|
44
|
+
rspec-core (3.1.3)
|
45
|
+
rspec-support (~> 3.1.0)
|
46
|
+
rspec-expectations (3.1.1)
|
47
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
48
|
+
rspec-support (~> 3.1.0)
|
49
|
+
rspec-mocks (3.1.0)
|
50
|
+
rspec-support (~> 3.1.0)
|
51
|
+
rspec-support (3.1.0)
|
52
|
+
thread_safe (0.3.4)
|
49
53
|
timecop (0.7.1)
|
50
|
-
tzinfo (1.1
|
54
|
+
tzinfo (1.2.1)
|
51
55
|
thread_safe (~> 0.1)
|
52
56
|
|
53
57
|
PLATFORMS
|
@@ -55,5 +59,5 @@ PLATFORMS
|
|
55
59
|
|
56
60
|
DEPENDENCIES
|
57
61
|
plunk!
|
58
|
-
rspec (~>
|
62
|
+
rspec (~> 3.1, >= 3.1.0)
|
59
63
|
timecop (~> 0.7, >= 0.7.1)
|
data/README.md
CHANGED
@@ -1,116 +1 @@
|
|
1
|
-
|
2
|
-
=====
|
3
|
-
|
4
|
-
Human-friendly query language for Elasticsearch
|
5
|
-
|
6
|
-
## About
|
7
|
-
|
8
|
-
Plunk is a ruby gem to take a human-friendly, one-line search command and
|
9
|
-
translate it to full-fledged JSON to send to Elasticsearch. Currently it only
|
10
|
-
supports a few commands, but the goal is to support a large subset of what
|
11
|
-
Elasticsearch offers.
|
12
|
-
|
13
|
-
## Installation
|
14
|
-
```
|
15
|
-
gem install plunk
|
16
|
-
```
|
17
|
-
|
18
|
-
Plunk uses [Parslet](https://github.com/kschiess/parslet) to first parse your
|
19
|
-
query, and then [Elasticsearch's official ruby library](https://github.com/elasticsearch/elasticsearch-ruby)
|
20
|
-
to send it to Elasticsearch.
|
21
|
-
|
22
|
-
## Usage
|
23
|
-
```ruby
|
24
|
-
require 'plunk'
|
25
|
-
|
26
|
-
#
|
27
|
-
# Configuration is required before using Plunk
|
28
|
-
#
|
29
|
-
# Elasticsearch_options accepts the same params as Elasticsearch::Client
|
30
|
-
# from the elasticsearch-ruby library
|
31
|
-
Plunk.configure do |config|
|
32
|
-
config.elasticsearch_options = { host: 'localhost' }
|
33
|
-
end
|
34
|
-
|
35
|
-
# Restrict timeframe to last 1 week and match documents with _type=syslog
|
36
|
-
# s = seconds
|
37
|
-
# m = minutes
|
38
|
-
# h = hours
|
39
|
-
# d = days
|
40
|
-
# w = weeks
|
41
|
-
# All times in Plunk are converted to UTC
|
42
|
-
Plunk.search 'last 1w AND _type = syslog'
|
43
|
-
|
44
|
-
# The ```window``` command can also be used to filter by time
|
45
|
-
Plunk.search 'window -2d to -1d'
|
46
|
-
|
47
|
-
# Plunk tries to parse the date with Chronic, so this works too. Note the
|
48
|
-
# double quotes around the time string. This is needed if it contains a space.
|
49
|
-
Plunk.search 'window "last monday" to "last thursday"'
|
50
|
-
|
51
|
-
# Of course, absolute dates are supported as well. Date format is American style
|
52
|
-
# e.g. MM/DD/YY
|
53
|
-
Plunk.search 'window 3/14/12 to 3/15/12'
|
54
|
-
|
55
|
-
# Use double quotes to wrap space-containing strings
|
56
|
-
Plunk.search 'http.header = "UserAgent: Mozilla/5.0"'
|
57
|
-
|
58
|
-
# Commands are joined using parenthesized booleans
|
59
|
-
Plunk.search '(last 1h AND severity = 5) OR (last 1w AND severity = 3)'
|
60
|
-
|
61
|
-
# "AND" is aliased to "and" and "&". Similarly, "OR" is aliased to "or" and "|".
|
62
|
-
# The following queries are identical to one above
|
63
|
-
Plunk.search '(last 1h and severity = 5) or (last 1w and severity = 3)'
|
64
|
-
Plunk.search '(last 1h & severity = 5) | (last 1w & severity = 3)'
|
65
|
-
|
66
|
-
# Use the NOT keyword to negate the following command or boolean chain
|
67
|
-
Plunk.search 'NOT message = Error'
|
68
|
-
|
69
|
-
# Like AND and OR, "NOT" is aliased to "not" and "~"
|
70
|
-
Plunk.search 'not message = Error'
|
71
|
-
Plunk.search '~ message = Error'
|
72
|
-
|
73
|
-
# Regexp is supported as well
|
74
|
-
Plunk.search 'http.headers = /.*User-Agent: Mozilla.*/ OR http.headers = /.*application\/json.*/'
|
75
|
-
```
|
76
|
-
|
77
|
-
|
78
|
-
## Translation
|
79
|
-
|
80
|
-
Under the hood, Plunk takes your query and translates it to
|
81
|
-
Elasticsearch-compatible JSON. For example,
|
82
|
-
|
83
|
-
```last 24h & _type=syslog```
|
84
|
-
|
85
|
-
gets translated to:
|
86
|
-
|
87
|
-
```json
|
88
|
-
{
|
89
|
-
"query": {
|
90
|
-
"filtered": {
|
91
|
-
"filter": {
|
92
|
-
"and": [
|
93
|
-
{
|
94
|
-
"range": {
|
95
|
-
"timestamp": {
|
96
|
-
"gte": "2013-08-23T05:43:13.770Z",
|
97
|
-
"lte": "2013-08-24T05:43:13.770Z"
|
98
|
-
}
|
99
|
-
}
|
100
|
-
},
|
101
|
-
{
|
102
|
-
"query": {
|
103
|
-
"query_string": {
|
104
|
-
"query": "_type:syslog"
|
105
|
-
}
|
106
|
-
}
|
107
|
-
}
|
108
|
-
]
|
109
|
-
}
|
110
|
-
}
|
111
|
-
}
|
112
|
-
}
|
113
|
-
```
|
114
|
-
|
115
|
-
In general, commands are combined into a single filter using Elasticsearch's,
|
116
|
-
```and```, ```or```, and ```not``` filters.
|
1
|
+
This gem has been renamed to <a href="https://github.com/elbii/peruse">Peruse</a>.
|
data/bin/plunk
CHANGED
@@ -3,6 +3,8 @@ $LOAD_PATH << './lib'
|
|
3
3
|
require 'plunk'
|
4
4
|
require 'optparse'
|
5
5
|
|
6
|
+
warn "[DEPRECATION] This gem has been renamed to peruse and will no longer be supported. Please switch to peruse as soon as possible."
|
7
|
+
|
6
8
|
options = {}
|
7
9
|
OptionParser.new do |opts|
|
8
10
|
opts.banner = "Usage: plunk [options]"
|
@@ -13,29 +15,62 @@ OptionParser.new do |opts|
|
|
13
15
|
"-h",
|
14
16
|
"--host HOST",
|
15
17
|
"comma-separated list of Elasticsearch hosts to use"
|
16
|
-
) do |
|
17
|
-
|
18
|
-
options[:host] = h
|
18
|
+
) do |option|
|
19
|
+
options[:host] = option
|
19
20
|
end
|
20
21
|
|
21
22
|
opts.on(
|
22
23
|
"-p",
|
23
24
|
"--parse-only",
|
24
25
|
"parse but don't execute query, returning ES-compatible JSON"
|
25
|
-
) do |
|
26
|
+
) do |option|
|
27
|
+
options[:parse_only] = option
|
28
|
+
end
|
26
29
|
|
27
|
-
|
30
|
+
opts.on(
|
31
|
+
"-s",
|
32
|
+
"--size SIZE",
|
33
|
+
"max number of hits to return"
|
34
|
+
) do |option|
|
35
|
+
options[:size] = option
|
36
|
+
end
|
37
|
+
|
38
|
+
opts.on(
|
39
|
+
"-r",
|
40
|
+
"--randomize-hosts",
|
41
|
+
"randomize hosts used for each search"
|
42
|
+
) do |option|
|
43
|
+
options[:randomize_hosts] = option
|
28
44
|
end
|
29
45
|
|
46
|
+
opts.on(
|
47
|
+
"-t",
|
48
|
+
"--timestamp-field FIELD",
|
49
|
+
"timestamp field to use for timerange searches"
|
50
|
+
) do |option|
|
51
|
+
options[:timestamp_field] = option
|
52
|
+
end
|
53
|
+
|
54
|
+
opts.on(
|
55
|
+
"-d",
|
56
|
+
"--debug",
|
57
|
+
"turn on debugging output"
|
58
|
+
) do |option|
|
59
|
+
options[:debug] = option
|
60
|
+
end
|
30
61
|
|
31
62
|
end.parse!
|
32
63
|
|
33
64
|
Plunk.configure do |c|
|
34
65
|
c.parse_only = options[:parse_only]
|
66
|
+
c.max_number_of_hits = options[:size].to_i if options[:size]
|
67
|
+
c.timestamp_field =
|
68
|
+
options[:timestamp_field].strip if options[:timstamp_field]
|
69
|
+
c.logger = Logger.new(STDOUT) if options[:debug]
|
35
70
|
|
36
71
|
c.elasticsearch_client = Elasticsearch::Client.new(
|
37
|
-
host: options[:host].split(','),
|
38
|
-
randomize_hosts:
|
72
|
+
host: options[:host].split(',').collect! { |h| h.strip },
|
73
|
+
randomize_hosts: options[:randomize_hosts]
|
39
74
|
) unless c.parse_only
|
40
75
|
end
|
41
76
|
|
data/lib/plunk/version.rb
CHANGED
data/plunk.gemspec
CHANGED
@@ -4,19 +4,24 @@ require File.expand_path('../lib/plunk/version', __FILE__)
|
|
4
4
|
Gem::Specification.new do |s|
|
5
5
|
s.name = "plunk"
|
6
6
|
s.version = Plunk::VERSION
|
7
|
+
s.required_ruby_version = ">= 1.9.3"
|
7
8
|
s.add_runtime_dependency "json", "~> 1.8", ">= 1.8.0"
|
8
9
|
s.add_runtime_dependency "parslet", "~> 1.5", ">= 1.5.0"
|
9
10
|
s.add_runtime_dependency "elasticsearch", "~> 1.0", ">= 1.0.0"
|
10
11
|
s.add_runtime_dependency "activesupport", "~> 4.0", ">= 4.0.0"
|
11
12
|
s.add_runtime_dependency "chronic", "~> 0.10", ">= 0.10.0"
|
12
|
-
s.add_development_dependency "rspec", "~>
|
13
|
+
s.add_development_dependency "rspec", "~> 3.1", ">= 3.1.0"
|
13
14
|
s.add_development_dependency "timecop", "~> 0.7", ">= 0.7.1"
|
14
15
|
s.executables << "plunk"
|
15
16
|
s.summary = "Elasticsearch query language"
|
16
17
|
s.description = "Human-friendly query language for Elasticsearch"
|
17
|
-
s.authors = ["Ram Mehta", "Jamil Bou Kheir"
|
18
|
-
s.email = ["ram.mehta@gmail.com", "jamil@elbii.com"
|
18
|
+
s.authors = ["Ram Mehta", "Jamil Bou Kheir"]
|
19
|
+
s.email = ["ram.mehta@gmail.com", "jamil@elbii.com"]
|
19
20
|
s.files = `git ls-files`.split("\n")
|
20
21
|
s.homepage = "https://github.com/elbii/plunk"
|
21
22
|
s.license = "MIT"
|
23
|
+
s.post_install_message = <<-MESSAGE
|
24
|
+
! The 'plunk' gem has been deprecated and replaced by 'peruse'. Please switch to the new gem as soon as possible.
|
25
|
+
! See more at https://github.com/elbii/plunk
|
26
|
+
MESSAGE
|
22
27
|
end
|
data/spec/basic_spec.rb
CHANGED
@@ -19,21 +19,21 @@ describe 'basic searches' do
|
|
19
19
|
|
20
20
|
it 'should parse bar' do
|
21
21
|
result = Plunk.search 'bar'
|
22
|
-
result.
|
22
|
+
expect(result).to eq(basic_builder('bar'))
|
23
23
|
end
|
24
24
|
|
25
25
|
it 'should parse bar ' do
|
26
26
|
result = Plunk.search 'bar '
|
27
|
-
result.
|
27
|
+
expect(result).to eq(basic_builder('bar'))
|
28
28
|
end
|
29
29
|
|
30
30
|
it 'should parse (bar) ' do
|
31
31
|
result = Plunk.search '(bar) '
|
32
|
-
result.
|
32
|
+
expect(result).to eq(basic_builder('bar'))
|
33
33
|
end
|
34
34
|
|
35
35
|
it 'should parse bar ' do
|
36
36
|
result = Plunk.search ' bar '
|
37
|
-
result.
|
37
|
+
expect(result).to eq(basic_builder('bar'))
|
38
38
|
end
|
39
39
|
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'open3'
|
2
|
+
|
3
|
+
describe 'binstub' do
|
4
|
+
it 'should execute a valid query from stdin' do
|
5
|
+
result = ""
|
6
|
+
|
7
|
+
Open3.popen3(
|
8
|
+
"bin/plunk",
|
9
|
+
"-h localhost,127.0.0.1",
|
10
|
+
"-s 1",
|
11
|
+
"-r",
|
12
|
+
"-d",
|
13
|
+
"-t timestamp"
|
14
|
+
) do |stdin, stdout, stderr|
|
15
|
+
stdin.puts "last 1w"
|
16
|
+
stdin.close
|
17
|
+
result = stdout.read.chomp
|
18
|
+
end
|
19
|
+
|
20
|
+
expect(result).to be_present
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'should not allow invalid options' do
|
24
|
+
exit_status = -1
|
25
|
+
|
26
|
+
Open3.popen3("bin/plunk", "-z") do |stdin, stdout, stderr, thread|
|
27
|
+
exit_status = thread.value.exitstatus
|
28
|
+
end
|
29
|
+
|
30
|
+
|
31
|
+
expect(exit_status).to eq 1
|
32
|
+
end
|
33
|
+
end
|
data/spec/nested_search_spec.rb
CHANGED
@@ -13,17 +13,17 @@ describe 'nested searches' do
|
|
13
13
|
arr: [ 0, 1, 2, 3 ],
|
14
14
|
:timestamp => @time.utc.to_datetime.iso8601(3)
|
15
15
|
}.to_json
|
16
|
-
Plunk::ResultSet.
|
16
|
+
allow_any_instance_of(Plunk::ResultSet).to receive(:eval).and_return(fake_results)
|
17
17
|
end
|
18
18
|
|
19
|
-
|
19
|
+
skip 'should transform' do
|
20
20
|
results = @transformer.apply @parser.parse('foo=`bar=baz|baz,fass,fdsd`')
|
21
21
|
expect(results.query).to eq({query:{filtered:{query:{query_string:{
|
22
22
|
query: 'foo:(5)'
|
23
23
|
}}}}})
|
24
24
|
end
|
25
25
|
|
26
|
-
|
26
|
+
skip 'should parse a nested basic search' do
|
27
27
|
@parsed = @parser.parse 'tshark.len = ` 226 | tshark.frame.time_epoch,tshark.ip.src`'
|
28
28
|
expect(@parsed[:field].to_s).to eq 'tshark.len'
|
29
29
|
expect(@parsed[:op].to_s).to eq '='
|
@@ -31,7 +31,7 @@ describe 'nested searches' do
|
|
31
31
|
expect(@parsed[:value][:extractors].to_s).to eq 'tshark.frame.time_epoch,tshark.ip.src'
|
32
32
|
end
|
33
33
|
|
34
|
-
|
34
|
+
skip 'should parse a nested regexp' do
|
35
35
|
@parsed = @parser.parse 'tshark.len = ` cif.malicious_ips=/foo/ | tshark.frame.time_epoch,tshark.ip.src`'
|
36
36
|
expect(@parsed[:field].to_s).to eq 'tshark.len'
|
37
37
|
expect(@parsed[:op].to_s).to eq '='
|
@@ -41,7 +41,7 @@ describe 'nested searches' do
|
|
41
41
|
expect(@parsed[:value][:extractors].to_s).to eq 'tshark.frame.time_epoch,tshark.ip.src'
|
42
42
|
end
|
43
43
|
|
44
|
-
|
44
|
+
skip 'should parse a nested basic boolean' do
|
45
45
|
@parsed = @parser.parse 'tshark.len = `(foo OR bar) | tshark.frame.time_epoch,tshark.ip.src`'
|
46
46
|
expect(@parsed[:field].to_s).to eq 'tshark.len'
|
47
47
|
expect(@parsed[:op].to_s).to eq '='
|
@@ -49,7 +49,7 @@ describe 'nested searches' do
|
|
49
49
|
expect(@parsed[:value][:extractors].to_s).to eq 'tshark.frame.time_epoch,tshark.ip.src'
|
50
50
|
end
|
51
51
|
|
52
|
-
|
52
|
+
skip 'should parse a nested field / value boolean' do
|
53
53
|
@parsed = @parser.parse 'tshark.len = `baz=(foo OR bar AND (bar OR fez)) | tshark.frame.time_epoch,tshark.ip.src`'
|
54
54
|
expect(@parsed[:field].to_s).to eq 'tshark.len'
|
55
55
|
expect(@parsed[:op].to_s).to eq '='
|
@@ -59,7 +59,7 @@ describe 'nested searches' do
|
|
59
59
|
expect(@parsed[:value][:extractors].to_s).to eq 'tshark.frame.time_epoch,tshark.ip.src'
|
60
60
|
end
|
61
61
|
|
62
|
-
|
62
|
+
skip 'should parse a nested last standalone timerange' do
|
63
63
|
@parsed = @parser.parse 'tshark.len = `last 24h | tshark.frame.time_epoch,tshark.ip.src`'
|
64
64
|
expect(@parsed[:field].to_s).to eq 'tshark.len'
|
65
65
|
expect(@parsed[:op].to_s).to eq '='
|
@@ -68,7 +68,7 @@ describe 'nested searches' do
|
|
68
68
|
expect(@parsed[:value][:extractors].to_s).to eq 'tshark.frame.time_epoch,tshark.ip.src'
|
69
69
|
end
|
70
70
|
|
71
|
-
|
71
|
+
skip 'should parse a nested last timerange and field / value pair' do
|
72
72
|
@parsed = @parser.parse 'tshark.len = `last 24h foo=bar | tshark.frame.time_epoch,tshark.ip.src`'
|
73
73
|
expect(@parsed[:field].to_s).to eq 'tshark.len'
|
74
74
|
expect(@parsed[:op].to_s).to eq '='
|
data/spec/shared/plunk_stubs.rb
CHANGED
metadata
CHANGED
@@ -1,16 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: plunk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.12
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ram Mehta
|
8
8
|
- Jamil Bou Kheir
|
9
|
-
- Roman Heinrich
|
10
9
|
autorequire:
|
11
10
|
bindir: bin
|
12
11
|
cert_chain: []
|
13
|
-
date: 2014-
|
12
|
+
date: 2014-10-28 00:00:00.000000000 Z
|
14
13
|
dependencies:
|
15
14
|
- !ruby/object:Gem::Dependency
|
16
15
|
name: json
|
@@ -118,20 +117,20 @@ dependencies:
|
|
118
117
|
requirements:
|
119
118
|
- - "~>"
|
120
119
|
- !ruby/object:Gem::Version
|
121
|
-
version: '
|
120
|
+
version: '3.1'
|
122
121
|
- - ">="
|
123
122
|
- !ruby/object:Gem::Version
|
124
|
-
version:
|
123
|
+
version: 3.1.0
|
125
124
|
type: :development
|
126
125
|
prerelease: false
|
127
126
|
version_requirements: !ruby/object:Gem::Requirement
|
128
127
|
requirements:
|
129
128
|
- - "~>"
|
130
129
|
- !ruby/object:Gem::Version
|
131
|
-
version: '
|
130
|
+
version: '3.1'
|
132
131
|
- - ">="
|
133
132
|
- !ruby/object:Gem::Version
|
134
|
-
version:
|
133
|
+
version: 3.1.0
|
135
134
|
- !ruby/object:Gem::Dependency
|
136
135
|
name: timecop
|
137
136
|
requirement: !ruby/object:Gem::Requirement
|
@@ -156,7 +155,6 @@ description: Human-friendly query language for Elasticsearch
|
|
156
155
|
email:
|
157
156
|
- ram.mehta@gmail.com
|
158
157
|
- jamil@elbii.com
|
159
|
-
- roman.heinrich@gmail.com
|
160
158
|
executables:
|
161
159
|
- plunk
|
162
160
|
extensions: []
|
@@ -182,6 +180,7 @@ files:
|
|
182
180
|
- lib/plunk/version.rb
|
183
181
|
- plunk.gemspec
|
184
182
|
- spec/basic_spec.rb
|
183
|
+
- spec/binstub_spec.rb
|
185
184
|
- spec/boolean_spec.rb
|
186
185
|
- spec/chained_search_spec.rb
|
187
186
|
- spec/field_value_spec.rb
|
@@ -199,7 +198,9 @@ homepage: https://github.com/elbii/plunk
|
|
199
198
|
licenses:
|
200
199
|
- MIT
|
201
200
|
metadata: {}
|
202
|
-
post_install_message:
|
201
|
+
post_install_message: |2
|
202
|
+
! The 'plunk' gem has been deprecated and replaced by 'peruse'. Please switch to the new gem as soon as possible.
|
203
|
+
! See more at https://github.com/elbii/plunk
|
203
204
|
rdoc_options: []
|
204
205
|
require_paths:
|
205
206
|
- lib
|
@@ -207,7 +208,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
207
208
|
requirements:
|
208
209
|
- - ">="
|
209
210
|
- !ruby/object:Gem::Version
|
210
|
-
version:
|
211
|
+
version: 1.9.3
|
211
212
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
212
213
|
requirements:
|
213
214
|
- - ">="
|
@@ -215,7 +216,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
215
216
|
version: '0'
|
216
217
|
requirements: []
|
217
218
|
rubyforge_project:
|
218
|
-
rubygems_version: 2.
|
219
|
+
rubygems_version: 2.4.2
|
219
220
|
signing_key:
|
220
221
|
specification_version: 4
|
221
222
|
summary: Elasticsearch query language
|