desi 0.6.4 → 0.6.5

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: 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: