plunk 0.2.5 → 0.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 47c7f2be3a089ccdd46d4a90f3c4daf103d8b0e2
4
- data.tar.gz: f0295f181f0e4ddb39690e8c9ab3edb577aed630
3
+ metadata.gz: 1bc1207f69f06280c177f65cdce11a259502ac58
4
+ data.tar.gz: 909ee371c459abed454a019ac37f46fd48c3bfd5
5
5
  SHA512:
6
- metadata.gz: f61912b33e14323fac6f3362ba668188d0753abdf864861868f031c1f53519114e394228871a82ba3c1c57fbade29f0b7f40680ba5bfd8c4939cefe7cbaf28eb
7
- data.tar.gz: 8cb23366a7cbff74d9fd1e29647ce88deb976bc787c1d566f74a5fb454ea7b6e8c0e9852841b1576bec391276b57dafe7ba2d8367cdfd58be251423a8570e554
6
+ metadata.gz: b45c80c41996d29e5391ab23368e27e50de2c00780d1d652d95adbf60c20ef471830821f3bfd4e8e0a1f8d12ff5041edb7b8d90782f80380e4a7633aa0fede4a
7
+ data.tar.gz: 8a6d79f487a627265335408439504726f5293e7e1ec8f81e275da83110e8cf55ad0b80f35e0af25baba46c3cf6c63b2c09fcf8864a538e7e91f9a2b83eac5757
@@ -0,0 +1 @@
1
+ 2.0.0
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- plunk (0.2.4)
4
+ plunk (0.2.5)
5
5
  activesupport
6
6
  elasticsearch
7
7
  json
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
 
@@ -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
@@ -13,7 +13,7 @@ module Plunk
13
13
  @query[:query][:filtered][:filter] = {
14
14
  and: [
15
15
  range: {
16
- '@timestamp' => {
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
- '@timestamp' => {
27
+ Plunk.timestamp_field => {
28
28
  gte: opts[:start_time],
29
29
  lte: opts[:end_time] }}}
30
30
  end
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "plunk"
3
- s.version = "0.2.5"
3
+ s.version = "0.2.6"
4
4
  s.add_runtime_dependency "json"
5
5
  s.add_runtime_dependency "parslet"
6
6
  s.add_runtime_dependency "elasticsearch"
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe 'basic searches' do
4
- it 'should parse' do
4
+ it 'should parse bar' do
5
5
  result = @transformer.apply @parser.parse('bar')
6
6
  result.query.should eq({query:{filtered:{query:{query_string:{
7
7
  query: 'bar'
@@ -13,7 +13,7 @@ describe 'chained searches' do
13
13
  filter: {
14
14
  and: [{
15
15
  range: {
16
- '@timestamp' => {
16
+ :timestamp => {
17
17
  gte: 1.day.ago.utc.iso8601(3),
18
18
  lte: Time.now.utc.iso8601(3)
19
19
  }
@@ -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
- '@timestamp' => {
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
- '@timestamp' => {
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
- '@timestamp' => {
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
- '@timestamp' => {
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
- '@timestamp' => {
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
- '@timestamp' => {
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)
@@ -6,13 +6,13 @@ describe 'nested searches' do
6
6
  foo: 'bar',
7
7
  baz: 5,
8
8
  arr: [ 0, 1, 2, 3 ],
9
- '@timestamp' => Time.now.utc.iso8601(3)
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.5
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-07 00:00:00.000000000 Z
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