desi 0.6.4 → 0.6.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4bbf6d3d53ed7358dffef0e2431bc331a48efb95
4
- data.tar.gz: 22e5876b8ad096baafb0c4a0add1fced2588d9a2
3
+ metadata.gz: f68fa604db570820065691f9020d4d66b7c53aab
4
+ data.tar.gz: 2411c64577dc4280f95b95ec10964ef637b8fb15
5
5
  SHA512:
6
- metadata.gz: fb0d17121ebf72b739d48620c8ee75bc95af65f34da79541620504aa24b6c9f6530f9f82c5691abab1529bc0fdb37990e895ffb4645f0ed1151a3e43d3f0ab86
7
- data.tar.gz: 59e50ba2f1f4d71394ea87a1f911ba354ae29e16945fdd70f8e39ef38527f5c4fb9af820800d303480c72b9791e858975e14a801439ee3a951add045949e3e46
6
+ metadata.gz: ca300972e1b07658e55e37c5dc48c24ca9d7b523e5cc5b857b3097e6de1f33f106cff314d005b3afc6cb7969fadb1f36b92af6e871b5ef746ebd26782c52ebd6
7
+ data.tar.gz: 3941edfe968d9b5c130cecc451367f7194ea13791a1b9988a80eacd3fb40ad35d57c6986e2b93db6cdb6cc010066f866dd9bbbec090f55757db2a0cf27cabbc6
data/desi.gemspec CHANGED
@@ -17,6 +17,7 @@ an Elastic Search local install for development purposes.}
17
17
  gem.add_dependency "boson"
18
18
  gem.add_dependency "cocaine", "~> 0.5.3"
19
19
  gem.add_dependency "addressable"
20
+ gem.add_dependency "semantic", "~> 1.3.0"
20
21
 
21
22
  gem.add_development_dependency "rake"
22
23
  gem.add_development_dependency "rspec"
@@ -1,6 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  require "pathname"
4
+ require "semantic"
4
5
 
5
6
  module Desi
6
7
  class LocalInstall
@@ -26,7 +27,7 @@ module Desi
26
27
  end
27
28
 
28
29
  def version
29
- @version ||= /^elasticsearch\-(?<version>.*)$/.match(name.to_s)[:version]
30
+ @version ||= Semantic::Version.new /^elasticsearch\-(?<version>.*)$/.match(name.to_s)[:version]
30
31
  end
31
32
 
32
33
  def to_s
@@ -39,6 +40,10 @@ module Desi
39
40
  name <=> other.name
40
41
  end
41
42
 
43
+ def pre_one_zero?
44
+ @pre_one_zero ||= (version < Semantic::Version.new("1.0.0-alpha"))
45
+ end
46
+
42
47
  private
43
48
 
44
49
  def current_symlink
@@ -48,6 +53,12 @@ module Desi
48
53
  def current_symlink?
49
54
  current_symlink.exist?
50
55
  end
56
+ end # Release
57
+
58
+
59
+ def self.current_release_is_pre_one_zero?
60
+ current = new.current_release
61
+ current && current.pre_one_zero?
51
62
  end
52
63
 
53
64
  def initialize(workdir = nil, opts = {})
@@ -80,6 +91,10 @@ module Desi
80
91
  Release.all_in(@workdir)
81
92
  end
82
93
 
94
+ def current_release
95
+ releases.find {|r| r.current? }
96
+ end
97
+
83
98
  def to_path
84
99
  @workdir.to_s
85
100
  end
@@ -27,6 +27,7 @@ module Desi
27
27
  @host = opts.fetch(:host) { Desi.configuration.server }
28
28
  @verbose = opts[:verbose]
29
29
  @foreground = opts[:foreground]
30
+ @background = opts[:background]
30
31
  @local_install = LocalInstall.new
31
32
  @client = opts.fetch(:http_client_factory, Desi::HttpClient).new(@host)
32
33
 
@@ -213,7 +214,7 @@ module Desi
213
214
 
214
215
  def cluster_ready?
215
216
  begin
216
- JSON.parse(@client.get('/').body)["ok"]
217
+ JSON.parse(@client.get('/').body)["status"] == 200
217
218
  rescue
218
219
  false
219
220
  end
@@ -236,11 +237,23 @@ module Desi
236
237
  end
237
238
 
238
239
  def start_command_options
239
- ['-p :pidfile', @foreground ? '-f' : nil].compact.join(' ')
240
+ ['-p :pidfile', foreground_or_background_flag].compact.join(' ')
241
+ end
242
+
243
+ def foreground_or_background_flag
244
+ if legacy_release?
245
+ !! @foreground ? '-f' : ''
246
+ else
247
+ !! @background ? '-d' : ''
248
+ end
240
249
  end
241
250
 
242
251
  def foreground?
243
- !!@foreground
252
+ if legacy_release?
253
+ !! @foreground
254
+ else
255
+ ! @background
256
+ end
244
257
  end
245
258
 
246
259
  def tail_after_start?
@@ -260,5 +273,9 @@ module Desi
260
273
  end
261
274
  end
262
275
 
276
+ def legacy_release?
277
+ @legacy_release ||= Desi::LocalInstall.current_release_is_pre_one_zero?
278
+ end
279
+
263
280
  end
264
281
  end
data/lib/desi/runner.rb CHANGED
@@ -12,7 +12,12 @@ module Desi
12
12
  end
13
13
 
14
14
  def self.start_options
15
- option :foreground, type: :boolean, desc: "Run ES in the foreground", default: false
15
+ if Desi::LocalInstall.current_release_is_pre_one_zero?
16
+ option :foreground, type: :boolean, desc: "Run ES in the foreground", default: false
17
+ else
18
+ option :background, type: :boolean, desc: "Run ES in the background", default: false
19
+ end
20
+
16
21
  option :tail, type: :boolean, desc: "Run tail after (re)starting", default: false
17
22
  end
18
23
 
data/lib/desi/upstream.rb CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  require "desi/http_client"
4
4
  require "json"
5
+ require "semantic"
5
6
 
6
7
  module Desi
7
8
  class Upstream
@@ -34,7 +35,7 @@ module Desi
34
35
  protected
35
36
 
36
37
  def sortable_version
37
- version_name.split('.').map {|c| c.to_i }
38
+ @sortable_version ||= Semantic::Version.new(version.sub(%r{.(beta|alpha|rc)}i, '-\1'))
38
39
  end
39
40
  end
40
41
 
data/lib/desi/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Desi
2
- VERSION = "0.6.4"
2
+ VERSION = "0.6.5"
3
3
  end
@@ -13,7 +13,7 @@ describe Desi::IndexManager do
13
13
 
14
14
  def stub_request(method, path, payload)
15
15
  http_client.stub(method).with(path).and_return(
16
- mock("response", body: JSON.unparse(payload))
16
+ double("response", body: JSON.unparse(payload))
17
17
  )
18
18
  end
19
19
 
@@ -0,0 +1,30 @@
1
+ # encoding: utf-8
2
+ require "spec_helper"
3
+ require "desi/upstream"
4
+
5
+ describe Desi::Upstream::Release do
6
+ context "sort" do
7
+ let(:v1) { Desi::Upstream::Release.new("v1.0.0", "") }
8
+ let(:v09) { Desi::Upstream::Release.new("v0.90.10", "") }
9
+
10
+ it "sorts the v1.0.0 before v0.90.10" do
11
+ expect([v09, v1].sort).to eql([v1, v09])
12
+ end
13
+
14
+ it "sorts 1.0.0.RC2 before 1.0.0" do
15
+ expect([
16
+ Desi::Upstream::Release.new("v1.0.0.Beta1", ""),
17
+ Desi::Upstream::Release.new("v1.0.0.RC2", ""),
18
+ Desi::Upstream::Release.new("v1.0.0", ""),
19
+ Desi::Upstream::Release.new("v1.0.0.Beta2", ""),
20
+ Desi::Upstream::Release.new("v1.0.0.RC1", ""),
21
+ ].sort).to eql([
22
+ Desi::Upstream::Release.new("v1.0.0", ""),
23
+ Desi::Upstream::Release.new("v1.0.0.RC2", ""),
24
+ Desi::Upstream::Release.new("v1.0.0.RC1", ""),
25
+ Desi::Upstream::Release.new("v1.0.0.Beta2", ""),
26
+ Desi::Upstream::Release.new("v1.0.0.Beta1", "")
27
+ ])
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,8 @@
1
+ # encoding: utf-8
2
+
3
+ desc "Open a Pry console"
4
+ task :console do
5
+ require "desi"
6
+ require "pry"
7
+ Pry.start
8
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: desi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.4
4
+ version: 0.6.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dominique Rose-Rosette
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-02-09 00:00:00.000000000 Z
11
+ date: 2014-02-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: boson
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: semantic
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 1.3.0
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 1.3.0
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: rake
57
71
  requirement: !ruby/object:Gem::Requirement
@@ -185,7 +199,9 @@ files:
185
199
  - lib/desi/upstream.rb
186
200
  - lib/desi/version.rb
187
201
  - spec/desi/index_manager_spec.rb
202
+ - spec/desi/upstream_spec.rb
188
203
  - spec/spec_helper.rb
204
+ - tasks/console.rake
189
205
  - tasks/spec.rake
190
206
  - tasks/yard.rake
191
207
  homepage: https://github.com/AF83/desi/
@@ -208,11 +224,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
208
224
  version: '0'
209
225
  requirements: []
210
226
  rubyforge_project:
211
- rubygems_version: 2.2.0
227
+ rubygems_version: 2.0.13
212
228
  signing_key:
213
229
  specification_version: 4
214
230
  summary: A developer tool to quickly set up an Elastic Search local install.
215
231
  test_files:
216
232
  - spec/desi/index_manager_spec.rb
233
+ - spec/desi/upstream_spec.rb
217
234
  - spec/spec_helper.rb
218
235
  has_rdoc: