elastics-client 1.0.7 → 1.0.8

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.7
1
+ 1.0.8
@@ -4,7 +4,8 @@ version = File.read(File.expand_path('../VERSION', __FILE__)).strip
4
4
  Gem::Specification.new do |s|
5
5
  s.name = 'elastics-client'
6
6
  s.summary = 'Client gem for elasticsearch'
7
- s.description = 'Core gem used by all the elastics gems.'
7
+ s.description = 'Core gem used by all the elastics gems. Provides the core resources: HTTP clients,
8
+ Elasticsearch API Methods, Templating System, Cascading Variables Management, Result Extenders, Logging & Debugging, Self-documenting Tool, Rake Tasks, ...'
8
9
  s.homepage = 'http://elastics.github.io/elastics'
9
10
  s.authors = ['Domizio Demichelis']
10
11
  s.email = 'dd.nexus@gmail.com'
@@ -30,4 +31,5 @@ EOM
30
31
  s.add_runtime_dependency 'multi_json', '>= 1.3.4'
31
32
  s.add_runtime_dependency 'ruby-progressbar', '>= 1.2.0'
32
33
  s.add_runtime_dependency 'dye', '~> 0.1.4'
34
+ s.add_runtime_dependency 'prompter', '~> 0.1.6'
33
35
  end
@@ -1,4 +1,6 @@
1
1
  require 'dye'
2
+ require 'prompter'
3
+ require 'ruby-progressbar'
2
4
  require 'yaml'
3
5
  require 'ostruct'
4
6
  require 'erb'
@@ -42,7 +44,6 @@ require 'elastics/http_clients/loader'
42
44
  require 'elastics/configuration'
43
45
  require 'elastics/utility_methods'
44
46
 
45
- require 'ruby-progressbar'
46
47
  require 'elastics/prog_bar'
47
48
  require 'elastics/client_live_reindex'
48
49
 
@@ -38,12 +38,12 @@ end
38
38
 
39
39
  meth
40
40
  end
41
- puts doc
41
+ Prompter.say_log doc
42
42
  end
43
43
 
44
44
  def usage(name)
45
45
  meth_call = [context, name].join('.')
46
- puts build_usage(meth_call, templates[name])
46
+ Prompter.say_log build_usage(meth_call, templates[name])
47
47
  end
48
48
 
49
49
  private
@@ -10,7 +10,7 @@ module Elastics
10
10
  :params => {},
11
11
  :no_pruning => [] ),
12
12
  :config_file => './config/elastics.yml',
13
- :elastics_dir => './elastics',
13
+ :elastics_dir => './elastics',
14
14
  :http_client => HttpClients::Loader.new_http_client
15
15
 
16
16
  # shorter alias
@@ -20,6 +20,14 @@ module Elastics
20
20
  def configure
21
21
  yield self
22
22
  end
23
+ # force color in console (used with jruby)
24
+ def ansi=(bool)
25
+ Dye.color = bool
26
+ end
27
+
28
+ def ansi
29
+ Dye.color?
30
+ end
23
31
  end
24
32
 
25
33
  end
@@ -24,14 +24,5 @@ module Elastics
24
24
  msg.split("\n").map{|l| prefix + l}.join("\n") + "\n"
25
25
  end
26
26
 
27
- # force color in console (used with jruby)
28
- def color=(bool)
29
- Dye.color = bool
30
- end
31
-
32
- def color
33
- Dye.color?
34
- end
35
-
36
27
  end
37
28
  end
@@ -1,21 +1,52 @@
1
+ class ProgressBar
2
+ module Format
3
+ class Base
4
+ # see https://github.com/jfelchner/ruby-progressbar/pull/50
5
+ def process(environment)
6
+ processed_string = @format_string.dup
7
+
8
+ non_bar_molecules.each do |molecule|
9
+ processed_string.gsub!("%#{molecule.key}", environment.send(molecule.method_name).to_s)
10
+ end
11
+
12
+ remaining_molecules = bar_molecules.size
13
+ placeholder_length = remaining_molecules * 2
14
+
15
+ processed_string.gsub! '%%', '%'
16
+ processed_string_length = processed_string.gsub(/\e\[[\d;]+m/, '').length
17
+ leftover_bar_length = environment.send(:length) - processed_string_length + placeholder_length
18
+ leftover_bar_length = leftover_bar_length < 0 ? 0 : leftover_bar_length
19
+
20
+ bar_molecules.each do |molecule|
21
+ processed_string.gsub!("%#{molecule.key}", environment.send(molecule.method_name, leftover_bar_length).to_s)
22
+ end
23
+
24
+ processed_string
25
+ end
26
+ end
27
+ end
28
+ end
29
+
1
30
  module Elastics
2
31
  class ProgBar
3
32
 
4
33
  attr_reader :pbar, :total_count
5
34
 
6
35
  def initialize(total_count, batch_size=nil, prefix_message=nil)
7
- @total_count = total_count
36
+ bar_style = [:green, :reversed, :bold]
8
37
  @successful_count = 0
9
38
  @failed_count = 0
39
+ format = Dye.dye(' processing... ', 'processing... ', bar_style) +
40
+ Dye.dye('%b%i', '|%b%i|', bar_style) +
41
+ Dye.dye(' %p%% %E ', ' %p%% %E', bar_style)
10
42
  @pbar = ::ProgressBar.create(:total => total_count,
11
- :progress_mark => '|',
12
- :format => 'processing... |%b%i| %p%% %E',
13
- :length => 80)
43
+ :progress_mark => Dye.dye(' ', '|', bar_style),
44
+ :format => format )
14
45
  @pbar.clear
15
- puts '_' * @pbar.send(:length)
46
+ Prompter.say_log '_' * @pbar.send(:length)
16
47
  message = "#{prefix_message}Processing #{total_count} documents"
17
48
  message << " in batches of #{batch_size}:" unless batch_size.nil?
18
- puts message
49
+ Prompter.say_log message
19
50
  @pbar.start
20
51
  end
21
52
 
@@ -23,18 +54,24 @@ module Elastics
23
54
  unless result.nil? || result.empty?
24
55
  unless result.failed.size == 0
25
56
  Conf.logger.error "Failed load:\n#{result.failed.to_yaml}"
26
- @pbar.progress_mark = 'F'
57
+ @pbar.progress_mark = Dye.dye(' ', 'F', :reed, :reversed, :bold)
27
58
  end
28
59
  @failed_count += result.failed.size
29
60
  @successful_count += result.successful.size
30
61
  end
31
- @pbar.progress += inc
62
+ new_progress = @pbar.progress + inc
63
+ # avoids an error in case progress > total (may happen in import)
64
+ @pbar.total = (new_progress + 1) if new_progress > @pbar.total
65
+ @pbar.progress = new_progress
32
66
  end
33
67
 
34
68
  def finish
35
69
  @pbar.finish unless @pbar.finished?
36
- puts "Processed #@total_count. Successful #@successful_count. Skipped #{@total_count - @successful_count - @failed_count}. Failed #@failed_count."
37
- puts 'See the log for the details about the failures.' unless @failed_count == 0
70
+ Prompter.say_log "Processed #{@pbar.total}. "
71
+ Prompter.say_ok "Successful #{@successful_count}. "
72
+ Prompter.say_notice "Skipped #{@pbar.total - @successful_count - @failed_count}. "
73
+ Prompter.say_warning "Failed #{@failed_count}.", :mute => true
74
+ Prompter.say_warning "See the log for the details about the #{@failed_count} failures." unless @failed_count == 0
38
75
  end
39
76
 
40
77
  end
@@ -116,7 +116,7 @@ module Elastics
116
116
 
117
117
  def to_bulk_string(meta, source, options)
118
118
  action = options[:action] || 'index'
119
- return '' if source.nil? || source.empty? &&! (action == 'delete')
119
+ return '' if (source.nil? || source.empty?) && (action != 'delete')
120
120
  meta['_index'] = LiveReindex.prefix_index(meta['_index']) if LiveReindex.should_prefix_index?
121
121
  bulk_string = MultiJson.encode(action => meta) + "\n"
122
122
  unless action == 'delete'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: elastics-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.7
4
+ version: 1.0.8
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-08-22 00:00:00.000000000 Z
12
+ date: 2013-08-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: multi_json
@@ -59,7 +59,27 @@ dependencies:
59
59
  - - ~>
60
60
  - !ruby/object:Gem::Version
61
61
  version: 0.1.4
62
- description: Core gem used by all the elastics gems.
62
+ - !ruby/object:Gem::Dependency
63
+ name: prompter
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ~>
68
+ - !ruby/object:Gem::Version
69
+ version: 0.1.6
70
+ type: :runtime
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ version: 0.1.6
78
+ description: ! 'Core gem used by all the elastics gems. Provides the core resources:
79
+ HTTP clients,
80
+
81
+ Elasticsearch API Methods, Templating System, Cascading Variables Management, Result
82
+ Extenders, Logging & Debugging, Self-documenting Tool, Rake Tasks, ...'
63
83
  email: dd.nexus@gmail.com
64
84
  executables: []
65
85
  extensions: []