stretchy 0.5.4 → 0.6.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8e89b4db78287311b18d1964f21e210c549e3a20
4
- data.tar.gz: 002026655ed60c198509f4f67897d6329fc445e9
3
+ metadata.gz: e36573d3774c867031bf443889b538d83cd97976
4
+ data.tar.gz: 90490ce53bb095a4d160b25dc4db38bca87ea92f
5
5
  SHA512:
6
- metadata.gz: fa27184fa1228b2e6e5107b55087543295074d37e6d3cbae553d0642752f94e1609ddc90fe403b3707c38556207ac9c107f8be07ad2c40358d0d5f6b92eba54c
7
- data.tar.gz: 54852ff84be76940874ffd8275a4edbc9e1854de29d699aa25f8d5c1c180292546d3b9fd8a19bba2d31f2b9b596906c781f7de89ac389758d32b4bcab6f80221
6
+ metadata.gz: adcd1104eae7977fd773e29bfbaa1e28f56e5c79408c7c3b3d68533ed8afd7e53b9d12f8f12acbba2a33a27b8b9d97bdc32aebcb0a5ac004013fb084dfa4b51d
7
+ data.tar.gz: 6bc2768805817f20749aa6eb2f8ef615cc71b1b87a8ae5b3eca4cc5d85e2f08b702a4793bd1e5f11bc7cb1bc9c450f4c60af054ac23b4e300195dd153d62e25d
data/.rubocop.yml ADDED
@@ -0,0 +1,260 @@
1
+ # This configuration was generated by `rubocop --auto-gen-config`
2
+ # on 2015-12-09 14:43:24 -0800 using RuboCop version 0.32.1.
3
+ # The point is for the user to remove these configuration records
4
+ # one by one as the offenses are removed from the code base.
5
+ # Note that changes in the inspected code, or installation of new
6
+ # versions of RuboCop, may require this file to be generated again.
7
+
8
+ # Offense count: 1
9
+ # Cop supports --auto-correct.
10
+ Lint/BlockAlignment:
11
+ Enabled: false
12
+
13
+ # Offense count: 3
14
+ # Cop supports --auto-correct.
15
+ # Configuration parameters: AlignWith, SupportedStyles, AutoCorrect.
16
+ Lint/EndAlignment:
17
+ Enabled: false
18
+
19
+ # Offense count: 1
20
+ Lint/HandleExceptions:
21
+ Enabled: false
22
+
23
+ # Offense count: 3
24
+ # Cop supports --auto-correct.
25
+ Lint/UnusedBlockArgument:
26
+ Enabled: true
27
+
28
+ # Offense count: 2
29
+ Lint/UselessAssignment:
30
+ Enabled: true
31
+
32
+ # Offense count: 5
33
+ Metrics/AbcSize:
34
+ Max: 15
35
+
36
+ # Offense count: 2
37
+ # Configuration parameters: CountComments.
38
+ Metrics/ClassLength:
39
+ Max: 250
40
+
41
+ # Offense count: 1
42
+ Metrics/CyclomaticComplexity:
43
+ Max: 7
44
+
45
+ # Offense count: 3
46
+ # Configuration parameters: AllowURI, URISchemes.
47
+ Metrics/LineLength:
48
+ Max: 80
49
+
50
+ # Offense count: 8
51
+ # Configuration parameters: CountComments.
52
+ Metrics/MethodLength:
53
+ Max: 20
54
+
55
+ # Offense count: 2
56
+ # Configuration parameters: CountComments.
57
+ Metrics/ModuleLength:
58
+ Max: 250
59
+
60
+ # Offense count: 14
61
+ # Cop supports --auto-correct.
62
+ Style/Alias:
63
+ Enabled: false
64
+
65
+ # Offense count: 1
66
+ # Cop supports --auto-correct.
67
+ # Configuration parameters: EnforcedHashRocketStyle, EnforcedColonStyle, EnforcedLastArgumentHashStyle, SupportedLastArgumentHashStyles.
68
+ Style/AlignHash:
69
+ Enabled: false
70
+
71
+ # Offense count: 7
72
+ # Cop supports --auto-correct.
73
+ # Configuration parameters: EnforcedStyle, SupportedStyles, ProceduralMethods, FunctionalMethods, IgnoredMethods.
74
+ Style/BlockDelimiters:
75
+ Enabled: false
76
+
77
+ # Offense count: 3
78
+ # Cop supports --auto-correct.
79
+ Style/BlockEndNewline:
80
+ Enabled: false
81
+
82
+ # Offense count: 3
83
+ # Cop supports --auto-correct.
84
+ # Configuration parameters: EnforcedStyle, SupportedStyles.
85
+ Style/BracesAroundHashParameters:
86
+ Enabled: false
87
+
88
+ # Offense count: 1
89
+ # Cop supports --auto-correct.
90
+ Style/ClosingParenthesisIndentation:
91
+ Enabled: false
92
+
93
+ # Offense count: 18
94
+ Style/Documentation:
95
+ Enabled: false
96
+
97
+ # Offense count: 3
98
+ Style/DoubleNegation:
99
+ Enabled: false
100
+
101
+ # Offense count: 5
102
+ # Cop supports --auto-correct.
103
+ Style/ElseAlignment:
104
+ Enabled: false
105
+
106
+ # Offense count: 16
107
+ # Cop supports --auto-correct.
108
+ # Configuration parameters: EnforcedStyle, SupportedStyles.
109
+ Style/EmptyLinesAroundBlockBody:
110
+ Enabled: false
111
+
112
+ # Offense count: 6
113
+ # Cop supports --auto-correct.
114
+ # Configuration parameters: EnforcedStyle, SupportedStyles.
115
+ Style/EmptyLinesAroundClassBody:
116
+ Enabled: false
117
+
118
+ # Offense count: 6
119
+ # Cop supports --auto-correct.
120
+ # Configuration parameters: EnforcedStyle, SupportedStyles.
121
+ Style/EmptyLinesAroundModuleBody:
122
+ Enabled: false
123
+
124
+ # Offense count: 4
125
+ # Cop supports --auto-correct.
126
+ # Configuration parameters: EnforcedStyle, SupportedStyles.
127
+ Style/FirstParameterIndentation:
128
+ Enabled: false
129
+
130
+ # Offense count: 1
131
+ # Cop supports --auto-correct.
132
+ # Configuration parameters: EnforcedStyle, SupportedStyles, UseHashRocketsWithSymbolValues.
133
+ Style/HashSyntax:
134
+ Enabled: false
135
+
136
+ # Offense count: 16
137
+ # Cop supports --auto-correct.
138
+ # Configuration parameters: EnforcedStyle, SupportedStyles.
139
+ Style/IndentHash:
140
+ Enabled: false
141
+
142
+ # Offense count: 18
143
+ # Cop supports --auto-correct.
144
+ # Configuration parameters: EnforcedStyle, SupportedStyles.
145
+ Style/IndentationConsistency:
146
+ Enabled: false
147
+
148
+ # Offense count: 3
149
+ # Cop supports --auto-correct.
150
+ # Configuration parameters: Width.
151
+ Style/IndentationWidth:
152
+ Enabled: false
153
+
154
+ # Offense count: 1
155
+ # Cop supports --auto-correct.
156
+ Style/LineEndConcatenation:
157
+ Enabled: false
158
+
159
+ # Offense count: 3
160
+ # Cop supports --auto-correct.
161
+ Style/MultilineBlockLayout:
162
+ Enabled: false
163
+
164
+ # Offense count: 10
165
+ # Cop supports --auto-correct.
166
+ # Configuration parameters: EnforcedStyle, SupportedStyles.
167
+ Style/MultilineOperationIndentation:
168
+ Enabled: false
169
+
170
+ # Offense count: 2
171
+ # Cop supports --auto-correct.
172
+ # Configuration parameters: PreferredDelimiters.
173
+ Style/PercentLiteralDelimiters:
174
+ Enabled: false
175
+
176
+ # Offense count: 1
177
+ # Configuration parameters: NamePrefix, NamePrefixBlacklist.
178
+ Style/PredicateName:
179
+ Enabled: false
180
+
181
+ # Offense count: 3
182
+ # Configuration parameters: SupportedStyles.
183
+ Style/RaiseArgs:
184
+ EnforcedStyle: compact
185
+
186
+ # Offense count: 1
187
+ # Cop supports --auto-correct.
188
+ Style/RedundantSelf:
189
+ Enabled: false
190
+
191
+ # Offense count: 4
192
+ # Cop supports --auto-correct.
193
+ # Configuration parameters: EnforcedStyle, SupportedStyles.
194
+ Style/SignalException:
195
+ Enabled: false
196
+
197
+ # Offense count: 4
198
+ # Cop supports --auto-correct.
199
+ Style/SingleSpaceBeforeFirstArg:
200
+ Enabled: false
201
+
202
+ # Offense count: 9
203
+ # Cop supports --auto-correct.
204
+ Style/SpaceAfterComma:
205
+ Enabled: false
206
+
207
+ # Offense count: 6
208
+ # Cop supports --auto-correct.
209
+ # Configuration parameters: MultiSpaceAllowedForOperators.
210
+ Style/SpaceAroundOperators:
211
+ Enabled: false
212
+
213
+ # Offense count: 5
214
+ # Cop supports --auto-correct.
215
+ # Configuration parameters: EnforcedStyle, SupportedStyles.
216
+ Style/SpaceBeforeBlockBraces:
217
+ Enabled: false
218
+
219
+ # Offense count: 1
220
+ # Cop supports --auto-correct.
221
+ Style/SpaceBeforeSemicolon:
222
+ Enabled: false
223
+
224
+ # Offense count: 25
225
+ # Cop supports --auto-correct.
226
+ # Configuration parameters: EnforcedStyle, SupportedStyles, EnforcedStyleForEmptyBraces, SpaceBeforeBlockParameters.
227
+ Style/SpaceInsideBlockBraces:
228
+ Enabled: false
229
+
230
+ # Offense count: 145
231
+ # Cop supports --auto-correct.
232
+ # Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBraces, SupportedStyles.
233
+ Style/SpaceInsideHashLiteralBraces:
234
+ Enabled: false
235
+
236
+ # Offense count: 33
237
+ # Cop supports --auto-correct.
238
+ # Configuration parameters: EnforcedStyle, SupportedStyles.
239
+ Style/StringLiterals:
240
+ Enabled: false
241
+
242
+ # Offense count: 1
243
+ # Cop supports --auto-correct.
244
+ # Configuration parameters: ExactNameMatch, AllowPredicates, AllowDSLWriters, IgnoreClassMethods, Whitelist.
245
+ Style/TrivialAccessors:
246
+ Enabled: false
247
+
248
+ # Offense count: 2
249
+ # Cop supports --auto-correct.
250
+ Style/UnneededPercentQ:
251
+ Enabled: false
252
+
253
+ # Align with the style guide.
254
+ Style/CollectionMethods:
255
+ PreferredMethods:
256
+ collect: 'map'
257
+ collect!: 'map!'
258
+ inject: 'reduce'
259
+ detect: 'find'
260
+ find_all: 'select'
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.2.2
1
+ 2.2.3
data/CHANGELOG.md ADDED
@@ -0,0 +1,12 @@
1
+ # Change Log
2
+ All notable changes to this project will be documented in this file.
3
+ This project adheres to [Semantic Versioning](http://semver.org/), although
4
+ "minor" (0.x) changes will include breaking changes until a stable 1.0 release.
5
+
6
+ ## [Unreleased]
7
+
8
+ ## [0.6.0] - 2015-12-15
9
+ ### Changed
10
+
11
+ * [FEATURE] compatible with [new query / filter contexts](https://www.elastic.co/guide/en/elasticsearch/reference/current/query-filter-context.html) for Elasticsearch 2.0+
12
+
data/Dockerfile ADDED
@@ -0,0 +1,8 @@
1
+ FROM ruby:2.2.0
2
+ RUN apt-get update -qq && apt-get install -y build-essential libpq-dev
3
+ RUN gem install bundler
4
+ RUN mkdir /stretchy
5
+ WORKDIR /stretchy
6
+ ADD . /stretchy
7
+ RUN bundle install
8
+
@@ -0,0 +1,13 @@
1
+ elastic:
2
+ image: elasticsearch:2.1
3
+ web:
4
+ build: .
5
+ command: bundle exec rake
6
+ environment:
7
+ ELASTICSEARCH_URL: 'elastic:9200'
8
+ volumes:
9
+ - .:/stretchy
10
+ ports:
11
+ - "3000:3000"
12
+ links:
13
+ - elastic
@@ -24,131 +24,54 @@ module Stretchy
24
24
  def node
25
25
  @node ||= if boost_nodes.any?
26
26
  function_score_node
27
- elsif filter_nodes.any?
28
- filtered_query_node
29
27
  elsif query_nodes.any?
30
- single_query_node
28
+ query_node
31
29
  else
32
30
  Node.new({match_all: {}}, context)
33
31
  end
34
32
  end
35
33
 
36
34
  def query_nodes
37
- @query_nodes ||= collect_nodes nodes do |n|
38
- n.context?(:query) &&
39
- !n.context?(:boost) &&
40
- !n.context?(:filter)
41
- end
42
- end
43
-
44
- def filter_node
45
- @filter_node ||= if query_nodes.any?
46
- if boost_nodes.any?
47
- Node.new({query: function_score_node.json}, context)
48
- elsif filter_nodes.any?
49
- Node.new({query: filtered_query_node.json}, context)
50
- else
51
- Node.new({query: single_query_node.json}, context)
52
- end
53
- else
54
- Node.new(compile_nodes(filter_nodes).json, context)
55
- end
56
- end
57
-
58
- def filter_json
59
- filter_node.json
60
- end
61
-
62
- def filter_nodes
63
- @filter_nodes ||= begin
64
- node_arr = collect_nodes nodes do |n|
65
- n.context?(:filter) &&
66
- !n.context?(:query) &&
67
- !n.context?(:boost)
68
- end
69
- node_arr += Array(compile_query_filter_node)
70
- node_arr.compact
71
- end
72
- end
73
-
74
- def query_filter_nodes
75
- @query_filter_nodes ||= collect_nodes nodes do |n|
76
- n.context?(:filter) &&
77
- n.context?(:query) &&
78
- !n.context?(:boost)
79
- end
35
+ @query_nodes ||= nodes.reject {|n| n.context? :boost }
80
36
  end
81
37
 
82
38
  def boost_nodes
83
- @boost_nodes ||= collect_nodes nodes do |n|
84
- n.context?(:boost)
85
- end
39
+ @boost_nodes ||= nodes.select {|n| n.context? :boost }
86
40
  end
87
41
 
88
42
  private
89
43
 
90
- def collect_nodes(node_arr)
91
- coll = []
92
- node_arr.each do |n|
93
- next unless yield(n)
94
-
95
- if n.respond_to? :node
96
- coll << Node.new(n.node.json, n.context)
97
- else
98
- coll << n
99
- end
44
+ def query_node
45
+ if query_nodes.size > 1 || multicontext?(query_nodes)
46
+ compile_bool query_nodes
47
+ else
48
+ query_nodes.first
100
49
  end
101
- coll.compact
102
50
  end
103
51
 
104
- def compile_nodes(node_arr)
105
- if node_arr.size > 1 ||
106
- node_arr.any?{|n| n.context?(:must_not) || n.context?(:should)}
107
-
108
- compile_bool(node_arr)
109
- else
110
- node_arr.first
111
- end
52
+ def multicontext?(node_arr)
53
+ Array(node_arr).any? {|n| n.context?(:must_not) || n.context?(:should) }
112
54
  end
113
55
 
114
56
  def compile_bool(bool_nodes)
115
57
  split_nodes = split_nodes_for_bool(bool_nodes)
116
- bool_json = {}
117
- if split_nodes[:should_not].size > 0
118
- bool_json[:should] = [
119
- {
120
- bool: {
121
- must: split_nodes[:should].map(&:as_json),
122
- must_not: split_nodes[:should_not].map(&:as_json)
123
- }
124
- }
125
- ]
126
- else
127
- bool_json[:should] = split_nodes[:should].map(&:as_json)
58
+ refined = bool_ctx.each_with_object(split_nodes) do |k, hash|
59
+ hash[k] = Array(compile_bool(hash[k])) if multicontext? hash[k]
128
60
  end
129
- bool_json[:must_not] = split_nodes[:must_not].map(&:as_json)
130
- bool_json[:must] = split_nodes[:must].map(&:as_json)
61
+ bool_json = Hash[refined.map{|k,v| [k, v.map(&:as_json)] }]
131
62
  Node.new(bool: bool_json)
132
63
  end
133
64
 
65
+ def bool_ctx
66
+ [:filter, :must_not, :should]
67
+ end
68
+
134
69
  def split_nodes_for_bool(bool_nodes)
135
- split_nodes = {must: [], must_not: [], should: [], should_not: []}
136
- bool_nodes.each do |n|
137
- if n.context?(:should)
138
- if n.context?(:must_not)
139
- split_nodes[:should_not] << n
140
- else
141
- split_nodes[:should] << n
142
- end
143
- else
144
- if n.context?(:must_not)
145
- split_nodes[:must_not] << n
146
- else
147
- split_nodes[:must] << n
148
- end
149
- end
70
+ bool_nodes.each_with_object({}) do |n, hash|
71
+ key = bool_ctx.find{|c| n.context? c } || :must
72
+ hash[key] ||= []
73
+ hash[key] << Node.new(n.json, n.context.merge(key => nil))
150
74
  end
151
- split_nodes
152
75
  end
153
76
 
154
77
  def compile_boost_functions
@@ -164,36 +87,13 @@ module Stretchy
164
87
  end
165
88
  end
166
89
 
167
- def compile_query_filter_node
168
- compiled = compile_nodes(query_filter_nodes)
169
- Node.new(query: compiled.json) if compiled
170
- end
171
-
172
90
  def function_score_node
173
91
  function_score_json = compile_function_score_options
174
92
  function_score_json[:functions] = compile_boost_functions
175
-
176
- if query_nodes.any?
177
- function_score_json[:query] = filtered_query_node.json
178
- elsif filter_nodes.any?
179
- function_score_json[:filter] = filter_node.json
180
- end
93
+ function_score_json[:query] = query_node.json if query_nodes.any?
181
94
 
182
95
  Node.new({function_score: function_score_json}, context)
183
96
  end
184
97
 
185
- def filtered_query_node
186
- filtered_json = {}
187
- q = compile_nodes(query_nodes)
188
- f = compile_nodes(filter_nodes)
189
- filtered_json[:query] = q.json if q
190
- filtered_json[:filter] = f.json if f
191
- Node.new({filtered: filtered_json}, context)
192
- end
193
-
194
- def single_query_node
195
- Node.new(compile_nodes(query_nodes).json, context)
196
- end
197
-
198
98
  end
199
99
  end
data/lib/stretchy/api.rb CHANGED
@@ -11,19 +11,11 @@ module Stretchy
11
11
 
12
12
  attr_reader :collector, :opts, :root, :body, :context
13
13
 
14
+ delegate [:with_context, :json, :as_json] => :collector
15
+
14
16
  delegate [
15
- :total,
16
- :total_count,
17
- :length,
18
- :size,
19
- :total_pages,
20
- :results,
21
- :hits,
22
- :to_a,
23
- :ids,
24
- :scores,
25
- :explanations,
26
- :aggregations
17
+ :total, :total_count, :length, :size, :total_pages, :results, :hits,
18
+ :to_a, :ids, :scores, :explanations, :aggregations, :each
27
19
  ] => :results_obj
28
20
 
29
21
  def initialize(opts = {})
@@ -130,20 +122,19 @@ module Stretchy
130
122
  end
131
123
 
132
124
  def range(params = {})
133
- require_context!
134
125
  add_params params, nil, :range_node
135
126
  end
136
127
 
137
128
  def geo_distance(params = {})
138
- add_params params, :filter, :geo_distance_node
129
+ add_params params, nil, :geo_distance_node
139
130
  end
140
131
 
141
132
  def boost(params = {}, options = {})
142
- return add_context(:boost) unless params.any?
133
+ return add_context(:boost) if Utils.is_empty? params
143
134
 
144
135
  subcontext = context.merge(boost: true)
145
136
  if params.is_a? self.class
146
- boost_json = options.merge(filter: params.filter_node.json)
137
+ boost_json = options.merge(filter: params.json)
147
138
  add_nodes Node.new(boost_json, subcontext)
148
139
  else
149
140
  add_nodes Factory.raw_boost_node(params, subcontext)
@@ -184,21 +175,8 @@ module Stretchy
184
175
  results_obj.ids.count
185
176
  end
186
177
 
187
- def method_missing(method, *args, &block)
188
- if collector.respond_to?(method)
189
- collector.send(method, *args, &block)
190
- else
191
- super
192
- end
193
- end
194
-
195
178
  private
196
179
 
197
- def require_context!
198
- return true if context?(:query) || context?(:filter)
199
- raise 'You must specify either query or filter context'
200
- end
201
-
202
180
  def args_to_context(*args)
203
181
  args.reduce({}) do |ctx, item|
204
182
  next ctx if item.nil?
@@ -58,12 +58,13 @@ module Stretchy
58
58
  end
59
59
 
60
60
  def context_nodes(params, context = default_context)
61
+ # binding.pry
61
62
  if context[:boost]
62
63
  params_to_boost(params, context)
63
- elsif context[:query]
64
- params_to_queries(dotify_params(params, context), context)
65
- else
64
+ elsif context[:filter] && !context[:query]
66
65
  params_to_filters(dotify_params(params, context), context)
66
+ else
67
+ params_to_queries(dotify_params(params, context), context)
67
68
  end
68
69
  end
69
70
 
@@ -74,14 +75,7 @@ module Stretchy
74
75
  nodes = context_nodes(params, subcontext)
75
76
  collector = AndCollector.new(nodes, subcontext)
76
77
 
77
- if context[:query]
78
- Node.new(boost_params.merge(filter: {query: collector.json}), context)
79
- else
80
- Node.new(
81
- boost_params.merge(filter: collector.filter_node.json),
82
- context
83
- )
84
- end
78
+ Node.new(boost_params.merge(filter: collector.json), context)
85
79
  end
86
80
 
87
81
  def params_to_queries(params, context = default_context)
@@ -119,19 +113,16 @@ module Stretchy
119
113
  end
120
114
 
121
115
  def nested(params, path, context = default_context)
122
- type, json = if context[:query]
123
- nodes = params_to_queries(params, context)
124
- json = AndCollector.new(nodes, context).json
125
- [:query, json]
116
+ nodes = if context[:filter] && !context[:query]
117
+ params_to_filters(params, context)
126
118
  else
127
- nodes = params_to_filters(params, context)
128
- json = AndCollector.new(nodes, context).filter_json
129
- [:filter, json]
119
+ params_to_queries(params, context)
130
120
  end
121
+ json = AndCollector.new(nodes, context).json
131
122
 
132
123
  Node.new({nested: {
133
124
  path: path,
134
- type => json
125
+ query: json
135
126
  }}, context)
136
127
  end
137
128
 
@@ -5,7 +5,9 @@ module Stretchy
5
5
  # detects empty string, empty array, empty hash, nil
6
6
  def is_empty?(arg = nil)
7
7
  return true if arg.nil?
8
- if arg.respond_to?(:any?)
8
+ if arg.respond_to?(:collector)
9
+ !arg.collector.any?
10
+ elsif arg.respond_to?(:any?)
9
11
  !arg.any? {|a| !is_empty?(a) }
10
12
  elsif arg.respond_to?(:empty?)
11
13
  arg.empty?
@@ -1,3 +1,3 @@
1
1
  module Stretchy
2
- VERSION = "0.5.4"
2
+ VERSION = "0.6.0"
3
3
  end
data/solano.yml CHANGED
@@ -1,9 +1,9 @@
1
1
  ---
2
- ruby_version: ruby-2.2.2
2
+ ruby_version: ruby-2.2.3
3
3
  bundler_version: 1.9.4
4
4
  test_pattern:
5
5
  - spec/**/*_spec.rb
6
6
  elasticsearch:
7
- version: '1.6'
7
+ version: '2.1'
8
8
  java:
9
- java_version: java-7-openjdk
9
+ java_version: java-7-openjdk
data/stretchy.gemspec CHANGED
@@ -22,8 +22,7 @@ Gem::Specification.new do |spec|
22
22
  spec.add_dependency "elasticsearch", "~> 1.0"
23
23
  spec.add_dependency "excon", "~> 0.45"
24
24
 
25
- spec.add_development_dependency "bundler", "~> 1.8"
26
- spec.add_development_dependency "rake", "~> 10.0"
25
+ spec.add_development_dependency "rake", "~> 10.4"
27
26
  spec.add_development_dependency "rspec", "~> 3.2"
28
27
  spec.add_development_dependency "fuubar", "~> 2.0"
29
28
  spec.add_development_dependency "pry", "~> 0.10"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stretchy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.4
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - agius
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-11-12 00:00:00.000000000 Z
11
+ date: 2015-12-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: elasticsearch
@@ -38,34 +38,20 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0.45'
41
- - !ruby/object:Gem::Dependency
42
- name: bundler
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: '1.8'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: '1.8'
55
41
  - !ruby/object:Gem::Dependency
56
42
  name: rake
57
43
  requirement: !ruby/object:Gem::Requirement
58
44
  requirements:
59
45
  - - "~>"
60
46
  - !ruby/object:Gem::Version
61
- version: '10.0'
47
+ version: '10.4'
62
48
  type: :development
63
49
  prerelease: false
64
50
  version_requirements: !ruby/object:Gem::Requirement
65
51
  requirements:
66
52
  - - "~>"
67
53
  - !ruby/object:Gem::Version
68
- version: '10.0'
54
+ version: '10.4'
69
55
  - !ruby/object:Gem::Dependency
70
56
  name: rspec
71
57
  requirement: !ruby/object:Gem::Requirement
@@ -145,14 +131,18 @@ extra_rdoc_files: []
145
131
  files:
146
132
  - ".editorconfig"
147
133
  - ".gitignore"
134
+ - ".rubocop.yml"
148
135
  - ".ruby-version"
149
136
  - ".yardopts"
137
+ - CHANGELOG.md
150
138
  - CONTRIBUTING.md
139
+ - Dockerfile
151
140
  - Gemfile
152
141
  - README.md
153
142
  - Rakefile
154
143
  - bin/console
155
144
  - bin/setup
145
+ - docker-compose.yml
156
146
  - lib/stretchy.rb
157
147
  - lib/stretchy/and_collector.rb
158
148
  - lib/stretchy/api.rb
@@ -185,7 +175,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
185
175
  version: '0'
186
176
  requirements: []
187
177
  rubyforge_project:
188
- rubygems_version: 2.4.5
178
+ rubygems_version: 2.4.5.1
189
179
  signing_key:
190
180
  specification_version: 4
191
181
  summary: Query builder for Elasticsearch