metacrunch-elasticsearch 2.1.1 → 3.0.0

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: 26718380b20c6d344d4f356604d8800711f721a4
4
- data.tar.gz: e4e38880f4709aebb74c76332d2e18f95fd0a2ae
3
+ metadata.gz: 3c8e449f5c84fd5b22946dc75c52b1693830e6c4
4
+ data.tar.gz: b698c9cc5904719a37d6902e4cee9528ea03577e
5
5
  SHA512:
6
- metadata.gz: 9662ded772976b51e221caf81938795a91da1dcb0b66c939143480ebad25b2292e5ccf657a9e86e52c77b9fe2444e0910f9e2f591d62aba2927714718efd0a2c
7
- data.tar.gz: d7007c5911b76fbc3815fdff41a4b3aa8e55efe190d114b304ce46527986b8123e936e8a34d6f37a9e4ac2b2ca4062f8a272f5c4dd801bdae796d229953ca686
6
+ metadata.gz: 396ae218ce4e493aa8d96bc7a5061e5941a65ea56c9d8cd791a9bcaeb0de11f5f83fc1df5f97379f967d969c86626b084dd9d39ed6fbeb3e6dbed7aacf88f2ae
7
+ data.tar.gz: 4254f096d00cb3d113e43f5b5b9e215699002972f6661a335a1c4683bdcaf76bcbe12128d2a45b30e8a4bb5043138a16887f6c049d6c52db9fe3e1af23e5cebe
data/Gemfile CHANGED
@@ -1,27 +1,21 @@
1
1
  source "https://rubygems.org"
2
2
 
3
- # Specify your gem's dependencies in your gemspec
4
3
  gemspec
5
4
 
6
5
  group :development do
7
- gem "bundler", ">= 1.10"
8
- gem "rake"
9
- gem "rspec", ">= 3.0.0", "< 4.0.0"
10
- gem "simplecov", ">= 0.8.0"
11
- gem "vcr", ">= 2.9.0", "< 3.0.0"
12
- gem "webmock", ">= 1.19.0", "< 2.0.0"
6
+ gem "bundler", ">= 1.7"
7
+ gem "rake", ">= 11.1"
8
+ gem "rspec", ">= 3.0.0", "< 4.0.0"
9
+ gem "simplecov", ">= 0.11.0"
13
10
 
14
11
  if !ENV["CI"]
15
- gem "hashdiff"
16
- gem "pry", "~> 0.10.3"
17
- gem "pry-byebug", "~> 3.3.0"
18
- gem "pry-rescue", "~> 1.4.2"
19
- gem "pry-state", "~> 0.1.7"
12
+ gem "hashdiff", ">= 0.3.0", platform: :ruby
13
+ gem "pry-byebug", ">= 3.3.0", platform: :ruby
14
+ gem "pry-rescue", ">= 1.4.2", platform: :ruby
15
+ gem "pry-state", ">= 0.1.7", platform: :ruby
20
16
  end
21
17
  end
22
18
 
23
19
  group :test do
24
- gem "codeclimate-test-reporter", require: nil
20
+ gem "codeclimate-test-reporter", ">= 0.5.0", require: nil
25
21
  end
26
-
27
- gem "metacrunch", github: "ubpb/metacrunch", branch: :master
@@ -1,9 +1,7 @@
1
- require "metacrunch"
2
1
  require "elasticsearch"
3
2
 
4
3
  module Metacrunch
5
4
  module Elasticsearch
6
- require_relative "./elasticsearch/cli"
7
5
  require_relative "./elasticsearch/index_creator"
8
6
  require_relative "./elasticsearch/indexer"
9
7
  require_relative "./elasticsearch/reader"
@@ -1,10 +1,9 @@
1
1
  require "elasticsearch"
2
- require "metacrunch/processor"
3
2
  require_relative "../elasticsearch"
4
3
  require_relative "./client_factory"
5
4
  require_relative "./options_helpers"
6
5
 
7
- class Metacrunch::Elasticsearch::IndexCreator < Metacrunch::Processor
6
+ class Metacrunch::Elasticsearch::IndexCreator
8
7
  include Metacrunch::Elasticsearch::ClientFactory
9
8
  include Metacrunch::Elasticsearch::OptionsHelpers
10
9
 
@@ -19,9 +18,9 @@ class Metacrunch::Elasticsearch::IndexCreator < Metacrunch::Processor
19
18
  raise ArgumentError.new("You have to supply an index name!") if @client_args[:index].blank?
20
19
  end
21
20
 
22
- def call(items = [], pipeline = nil)
21
+ def call(items = [])
23
22
  client = client_factory
24
- logger = pipeline.try(:logger) || @logger
23
+ logger = @logger
25
24
 
26
25
  if client.indices.exists?(@client_args)
27
26
  if @delete_existing_index == true
@@ -1,10 +1,9 @@
1
1
  require "elasticsearch"
2
- require "metacrunch/processor"
3
2
  require_relative "../elasticsearch"
4
3
  require_relative "./client_factory"
5
4
  require_relative "./options_helpers"
6
5
 
7
- class Metacrunch::Elasticsearch::Indexer < Metacrunch::Processor
6
+ class Metacrunch::Elasticsearch::Indexer
8
7
  include Metacrunch::Elasticsearch::ClientFactory
9
8
  include Metacrunch::Elasticsearch::OptionsHelpers
10
9
 
@@ -14,15 +13,15 @@ class Metacrunch::Elasticsearch::Indexer < Metacrunch::Processor
14
13
  attr_accessor :index
15
14
  attr_accessor :logger
16
15
  attr_accessor :type
17
-
16
+
18
17
  def initialize(options = {})
19
18
  (@client_args = options).deep_symbolize_keys!
20
19
  extract_options!(@client_args, :_client_options_, :bulk_size, :callbacks, :id_accessor, :index, :logger, :type)
21
20
  raise ArgumentError.new("You have to supply an index name!") if @index.blank?
22
21
  end
23
22
 
24
- def call(items = [], pipeline = nil)
25
- logger = pipeline.try(:logger) || @logger
23
+ def call(items = [])
24
+ logger = @logger
26
25
 
27
26
  if (slice_size = @bulk_size || items.length) > 0
28
27
  client = client_factory
@@ -1,10 +1,9 @@
1
1
  require "elasticsearch"
2
- require "metacrunch/processor"
3
2
  require_relative "../elasticsearch"
4
3
  require_relative "./client_factory"
5
4
  require_relative "./options_helpers"
6
5
 
7
- class Metacrunch::Elasticsearch::Searcher < Metacrunch::Processor
6
+ class Metacrunch::Elasticsearch::Searcher
8
7
  include Enumerable
9
8
  include Metacrunch::Elasticsearch::ClientFactory
10
9
  include Metacrunch::Elasticsearch::OptionsHelpers
@@ -18,21 +17,16 @@ class Metacrunch::Elasticsearch::Searcher < Metacrunch::Processor
18
17
  attr_accessor :scan_size
19
18
  attr_accessor :scroll_expiry_time
20
19
  attr_accessor :type
21
-
20
+
22
21
  def initialize(options = {})
23
22
  options.deep_symbolize_keys!
24
23
  extract_options!(options, :_client_options_, :bulk_size, :index, :scan_size, :scroll_expiry_time, :type)
25
24
  @body = options.presence || DEFAULT_BODY
26
25
  end
27
26
 
28
- def call(items = [], pipeline = nil)
27
+ def call(items = [])
29
28
  @docs_enumerator ||= @bulk_size ? each_slice(@bulk_size) : [each.to_a].to_enum
30
-
31
- begin
32
- items.concat(@docs_enumerator.next)
33
- rescue StopIteration
34
- pipeline.terminate!
35
- end
29
+ items.concat(@docs_enumerator.next)
36
30
  end
37
31
 
38
32
  def each
@@ -1,5 +1,5 @@
1
1
  module Metacrunch
2
2
  module Elasticsearch
3
- VERSION = "2.1.1"
3
+ VERSION = "3.0.0"
4
4
  end
5
5
  end
@@ -16,8 +16,7 @@ Gem::Specification.new do |spec|
16
16
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
17
17
  spec.require_paths = ["lib"]
18
18
 
19
- spec.add_dependency "activesupport", ">= 4.0.0"
20
- spec.add_dependency "elasticsearch", "~> 1.0"
21
- spec.add_dependency "metacrunch", "~> 2.1"
19
+ spec.add_dependency "activesupport", ">= 4.0.0"
20
+ spec.add_dependency "elasticsearch", "~> 1.0"
22
21
  end
23
22
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metacrunch-elasticsearch
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.1
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - René Sprotte
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2016-01-11 00:00:00.000000000 Z
12
+ date: 2016-05-18 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -39,20 +39,6 @@ dependencies:
39
39
  - - "~>"
40
40
  - !ruby/object:Gem::Version
41
41
  version: '1.0'
42
- - !ruby/object:Gem::Dependency
43
- name: metacrunch
44
- requirement: !ruby/object:Gem::Requirement
45
- requirements:
46
- - - "~>"
47
- - !ruby/object:Gem::Version
48
- version: '2.1'
49
- type: :runtime
50
- prerelease: false
51
- version_requirements: !ruby/object:Gem::Requirement
52
- requirements:
53
- - - "~>"
54
- - !ruby/object:Gem::Version
55
- version: '2.1'
56
42
  description:
57
43
  email:
58
44
  executables: []
@@ -69,9 +55,6 @@ files:
69
55
  - bin/console
70
56
  - bin/setup
71
57
  - lib/metacrunch/elasticsearch.rb
72
- - lib/metacrunch/elasticsearch/cli.rb
73
- - lib/metacrunch/elasticsearch/cli/dump_metadata.rb
74
- - lib/metacrunch/elasticsearch/cli/list_indices.rb
75
58
  - lib/metacrunch/elasticsearch/client_factory.rb
76
59
  - lib/metacrunch/elasticsearch/index_creator.rb
77
60
  - lib/metacrunch/elasticsearch/indexer.rb
@@ -81,7 +64,6 @@ files:
81
64
  - lib/metacrunch/elasticsearch/uri.rb
82
65
  - lib/metacrunch/elasticsearch/version.rb
83
66
  - lib/metacrunch/elasticsearch/writer.rb
84
- - lib/metacrunch_plugin.rb
85
67
  - metacrunch-elasticsearch.gemspec
86
68
  homepage: http://github.com/ubpb/metacrunch-elasticsearch
87
69
  licenses:
@@ -1,59 +0,0 @@
1
- module Metacrunch
2
- module Elasticsearch
3
- module Cli
4
- require_relative "./cli/dump_metadata"
5
- require_relative "./cli/list_indices"
6
- #require_relative "./cli/reindex_command"
7
- end
8
- end
9
- end
10
-
11
- Metacrunch::Cli.setup("elasticsearch", "Commands for Elasticsearch") do |r|
12
- #
13
- #
14
- #
15
- r.register(Metacrunch::Elasticsearch::Cli::DumpMetadata) do |c|
16
- c.name "dump_metadata"
17
- c.usage "dump_metadata"
18
- c.desc "Dump index metadata"
19
-
20
- c.option :url,
21
- desc: "Elasticsearch url",
22
- type: :string,
23
- aliases: "-u",
24
- required: true
25
- c.option :format,
26
- desc: "Output format",
27
- type: :string,
28
- aliases: "-f",
29
- default: :yaml
30
- c.option :mappings_filename,
31
- desc: "Dump mappings",
32
- aliases: "-m"
33
- c.option :settings_filename,
34
- desc: "Dump settings",
35
- aliases: "-s",
36
- default: false
37
- c.option :index,
38
- desc: "Index name",
39
- aliases: "-i",
40
- required: true
41
- c.option :type,
42
- desc: "Type to dump mapping for",
43
- aliases: "-t",
44
- default: "_default_"
45
-
46
- end
47
-
48
- r.register(Metacrunch::Elasticsearch::Cli::ListIndices) do |c|
49
- c.name "list_indices"
50
- c.usage "list_indices"
51
- c.desc "List indices"
52
-
53
- c.option :url,
54
- desc: "Elasticsearch url",
55
- type: :string,
56
- aliases: "-u",
57
- required: true
58
- end
59
- end
@@ -1,84 +0,0 @@
1
- require "elasticsearch"
2
- require_relative "../cli"
3
-
4
- class Metacrunch::Elasticsearch::Cli::DumpMetadata < Metacrunch::Command
5
- def call
6
- [:mappings, :settings].each do |_element|
7
- _filename_option = "#{_element}_filename"
8
-
9
- if options[_filename_option].present?
10
- options["dump_#{_element}"] = true
11
- end
12
-
13
- if options[_filename_option] == _filename_option
14
- options.delete(_filename_option)
15
- end
16
-
17
- if options["dump_#{_element}"]
18
- if filename = options["#{_element}_filename"]
19
- File.write(filename, format(send(_element), format_from_filename(filename)))
20
- else
21
- puts send(_element)
22
- end
23
- end
24
- end
25
-
26
- if !options[:dump_mapping] && !options[:dump_settings]
27
- puts format(settings.merge(mappings), options[:format])
28
-
29
- if options[:format] == :yaml
30
- $stderr.puts <<-MESSAGE.strip_heredoc
31
-
32
- You have requested to dump settings and mapping into YAML. Please keep in mind
33
- that if you are trying to create an index with both, settings and mapping, this
34
- request has to be JSON formatted. Nevertheless you can create the index with YAML
35
- settings and put a YAML formatted mapping afterwards.
36
-
37
- https://github.com/elastic/elasticsearch/issues/1755
38
-
39
- MESSAGE
40
- end
41
- end
42
- end
43
- alias_method :perform, :call
44
-
45
- private
46
-
47
- def client
48
- @client ||= Elasticsearch::Client.new(url: options[:url])
49
- end
50
-
51
- def format(obj, format)
52
- if format.to_sym == :json
53
- JSON.pretty_generate(obj)
54
- elsif format.to_sym == :yaml
55
- YAML.dump(obj)
56
- else
57
- raise "Unknown output format!"
58
- end
59
- end
60
-
61
- def format_from_filename(filename)
62
- return nil if filename.blank?
63
-
64
- case File.extname(filename)
65
- when /json\Z/i then :json
66
- when /yml\Z|yaml\Z/i then :yaml
67
- end
68
- end
69
-
70
- def mappings
71
- client.indices.get_mapping(index: @options[:index], type: @options[:type]).try(:values).try(:first)
72
- end
73
-
74
- def settings
75
- client.indices.get_settings(index: @options[:index])
76
- .try(:values)
77
- .try(:first)
78
- .try(:tap) do |_obj|
79
- _obj["settings"]["index"].reject! do |_key, _|
80
- ["creation_date", "uuid", "version"].include?(_key)
81
- end
82
- end
83
- end
84
- end
@@ -1,19 +0,0 @@
1
- require "elasticsearch"
2
- require_relative "../cli"
3
-
4
- class Metacrunch::Elasticsearch::Cli::ListIndices < Metacrunch::Command
5
- def call
6
- puts indices
7
- end
8
- alias_method :perform, :call
9
-
10
- private
11
-
12
- def client
13
- @client ||= Elasticsearch::Client.new(url: @options[:url])
14
- end
15
-
16
- def indices
17
- client.cat.indices(h: "index", format: :json).map { |_element| _element["index"] }
18
- end
19
- end
@@ -1 +0,0 @@
1
- require "metacrunch/elasticsearch"