elasticsearch-api 0.4.0 → 0.4.1

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.
Files changed (115) hide show
  1. data/README.md +8 -2
  2. data/Rakefile +15 -1
  3. data/elasticsearch-api.gemspec +12 -0
  4. data/lib/{elasticsearch-api → elasticsearch-api.rb} +0 -0
  5. data/lib/elasticsearch/api.rb +9 -0
  6. data/lib/elasticsearch/api/actions/bulk.rb +9 -9
  7. data/lib/elasticsearch/api/actions/cluster/health.rb +12 -12
  8. data/lib/elasticsearch/api/actions/cluster/node_hot_threads.rb +9 -9
  9. data/lib/elasticsearch/api/actions/cluster/node_info.rb +16 -16
  10. data/lib/elasticsearch/api/actions/cluster/node_shutdown.rb +7 -7
  11. data/lib/elasticsearch/api/actions/cluster/node_stats.rb +16 -18
  12. data/lib/elasticsearch/api/actions/cluster/reroute.rb +4 -6
  13. data/lib/elasticsearch/api/actions/cluster/state.rb +12 -12
  14. data/lib/elasticsearch/api/actions/count.rb +9 -9
  15. data/lib/elasticsearch/api/actions/delete.rb +16 -13
  16. data/lib/elasticsearch/api/actions/delete_by_query.rb +15 -14
  17. data/lib/elasticsearch/api/actions/exists.rb +13 -11
  18. data/lib/elasticsearch/api/actions/explain.rb +28 -17
  19. data/lib/elasticsearch/api/actions/get.rb +20 -11
  20. data/lib/elasticsearch/api/actions/get_source.rb +23 -11
  21. data/lib/elasticsearch/api/actions/index.rb +20 -18
  22. data/lib/elasticsearch/api/actions/indices/analyze.rb +12 -13
  23. data/lib/elasticsearch/api/actions/indices/clear_cache.rb +15 -15
  24. data/lib/elasticsearch/api/actions/indices/close.rb +5 -6
  25. data/lib/elasticsearch/api/actions/indices/create.rb +5 -6
  26. data/lib/elasticsearch/api/actions/indices/delete.rb +5 -6
  27. data/lib/elasticsearch/api/actions/indices/delete_alias.rb +5 -6
  28. data/lib/elasticsearch/api/actions/indices/delete_mapping.rb +1 -1
  29. data/lib/elasticsearch/api/actions/indices/delete_template.rb +5 -6
  30. data/lib/elasticsearch/api/actions/indices/delete_warmer.rb +1 -1
  31. data/lib/elasticsearch/api/actions/indices/exists_alias.rb +5 -6
  32. data/lib/elasticsearch/api/actions/indices/exists_type.rb +5 -6
  33. data/lib/elasticsearch/api/actions/indices/flush.rb +9 -9
  34. data/lib/elasticsearch/api/actions/indices/get_alias.rb +5 -6
  35. data/lib/elasticsearch/api/actions/indices/get_aliases.rb +5 -6
  36. data/lib/elasticsearch/api/actions/indices/get_mapping.rb +1 -1
  37. data/lib/elasticsearch/api/actions/indices/get_settings.rb +1 -1
  38. data/lib/elasticsearch/api/actions/indices/get_template.rb +1 -2
  39. data/lib/elasticsearch/api/actions/indices/get_warmer.rb +1 -1
  40. data/lib/elasticsearch/api/actions/indices/open.rb +5 -6
  41. data/lib/elasticsearch/api/actions/indices/optimize.rb +12 -12
  42. data/lib/elasticsearch/api/actions/indices/put_alias.rb +5 -6
  43. data/lib/elasticsearch/api/actions/indices/put_mapping.rb +5 -7
  44. data/lib/elasticsearch/api/actions/indices/put_settings.rb +1 -1
  45. data/lib/elasticsearch/api/actions/indices/put_template.rb +5 -7
  46. data/lib/elasticsearch/api/actions/indices/refresh.rb +5 -6
  47. data/lib/elasticsearch/api/actions/indices/segments.rb +5 -6
  48. data/lib/elasticsearch/api/actions/indices/snapshot_index.rb +5 -6
  49. data/lib/elasticsearch/api/actions/indices/stats.rb +23 -23
  50. data/lib/elasticsearch/api/actions/indices/status.rb +8 -8
  51. data/lib/elasticsearch/api/actions/indices/update_aliases.rb +4 -5
  52. data/lib/elasticsearch/api/actions/indices/validate_query.rb +11 -9
  53. data/lib/elasticsearch/api/actions/mget.rb +21 -11
  54. data/lib/elasticsearch/api/actions/mlt.rb +28 -24
  55. data/lib/elasticsearch/api/actions/msearch.rb +4 -5
  56. data/lib/elasticsearch/api/actions/percolate.rb +7 -6
  57. data/lib/elasticsearch/api/actions/scroll.rb +5 -6
  58. data/lib/elasticsearch/api/actions/search.rb +37 -30
  59. data/lib/elasticsearch/api/actions/suggest.rb +8 -8
  60. data/lib/elasticsearch/api/actions/update.rb +24 -20
  61. data/lib/elasticsearch/api/utils.rb +44 -6
  62. data/lib/elasticsearch/api/version.rb +1 -1
  63. data/test/integration/yaml_test_runner.rb +4 -5
  64. data/test/test_helper.rb +1 -1
  65. data/test/unit/bulk_test.rb +9 -0
  66. data/test/unit/cluster/node_hot_threads_test.rb +9 -0
  67. data/test/unit/create_document_test.rb +9 -0
  68. data/test/unit/delete_document_test.rb +16 -1
  69. data/test/unit/exists_document_test.rb +9 -0
  70. data/test/unit/explain_document_test.rb +9 -0
  71. data/test/unit/get_document_source_test.rb +10 -1
  72. data/test/unit/get_document_test.rb +16 -1
  73. data/test/unit/index_document_test.rb +15 -0
  74. data/test/unit/indices/analyze_test.rb +9 -0
  75. data/test/unit/indices/clear_cache_test.rb +9 -0
  76. data/test/unit/indices/close_test.rb +9 -0
  77. data/test/unit/indices/create_test.rb +9 -0
  78. data/test/unit/indices/delete_alias_test.rb +9 -0
  79. data/test/unit/indices/delete_mapping_test.rb +9 -0
  80. data/test/unit/indices/delete_template_test.rb +9 -0
  81. data/test/unit/indices/delete_test.rb +9 -0
  82. data/test/unit/indices/delete_warmer_test.rb +9 -0
  83. data/test/unit/indices/exists_alias_test.rb +9 -0
  84. data/test/unit/indices/exists_test.rb +9 -0
  85. data/test/unit/indices/exists_type_test.rb +9 -0
  86. data/test/unit/indices/flush_test.rb +9 -0
  87. data/test/unit/indices/get_alias_test.rb +9 -0
  88. data/test/unit/indices/get_aliases_test.rb +9 -0
  89. data/test/unit/indices/get_mapping_test.rb +9 -0
  90. data/test/unit/indices/get_settings_test.rb +9 -0
  91. data/test/unit/indices/get_template_test.rb +10 -6
  92. data/test/unit/indices/get_warmer_test.rb +9 -0
  93. data/test/unit/indices/open_test.rb +9 -0
  94. data/test/unit/indices/optimize_test.rb +9 -0
  95. data/test/unit/indices/put_alias_test.rb +9 -0
  96. data/test/unit/indices/put_mapping_test.rb +9 -0
  97. data/test/unit/indices/put_settings_test.rb +9 -0
  98. data/test/unit/indices/put_template_test.rb +9 -0
  99. data/test/unit/indices/put_warmer_test.rb +9 -0
  100. data/test/unit/indices/refresh_test.rb +9 -0
  101. data/test/unit/indices/segments_test.rb +9 -0
  102. data/test/unit/indices/snapshot_index_test.rb +9 -0
  103. data/test/unit/indices/stats_test.rb +9 -0
  104. data/test/unit/indices/status_test.rb +9 -0
  105. data/test/unit/indices/validate_query_test.rb +9 -0
  106. data/test/unit/mget_test.rb +9 -0
  107. data/test/unit/mlt_test.rb +9 -0
  108. data/test/unit/msearch_test.rb +9 -0
  109. data/test/unit/percolate_test.rb +9 -0
  110. data/test/unit/search_test.rb +16 -1
  111. data/test/unit/suggest_test.rb +9 -0
  112. data/test/unit/update_document_test.rb +16 -1
  113. data/test/unit/utils_test.rb +34 -5
  114. metadata +161 -44
  115. checksums.yaml +0 -7
@@ -20,7 +20,7 @@ module Elasticsearch
20
20
  def delete_warmer(arguments={})
21
21
  raise ArgumentError, "Required argument 'index' missing" unless arguments[:index]
22
22
  method = 'DELETE'
23
- path = Utils.__pathify( Utils.__listify(arguments[:index]), '_warmer', Utils.__listify(arguments[:name]) )
23
+ path = Utils.__pathify Utils.__listify(arguments[:index]), '_warmer', Utils.__listify(arguments[:name])
24
24
  params = {}
25
25
  body = nil
26
26
 
@@ -18,13 +18,12 @@ module Elasticsearch
18
18
  #
19
19
  def exists_alias(arguments={})
20
20
  raise ArgumentError, "Required argument 'name' missing" unless arguments[:name]
21
+ valid_params = [ :ignore_indices ]
22
+
21
23
  method = 'HEAD'
22
- path = Utils.__pathify( Utils.__listify(arguments[:index]), '_alias', arguments[:name] )
23
- params = arguments.select do |k,v|
24
- [ :ignore_indices ].include?(k)
25
- end
26
- # Normalize Ruby 1.8 and Ruby 1.9 Hash#select behaviour
27
- params = Hash[params] unless params.is_a?(Hash)
24
+ path = Utils.__pathify Utils.__listify(arguments[:index]), '_alias', Utils.__escape(arguments[:name])
25
+
26
+ params = Utils.__validate_and_extract_params arguments, valid_params
28
27
  body = nil
29
28
 
30
29
  perform_request(method, path, params, body).status == 200 ? true : false
@@ -16,13 +16,12 @@ module Elasticsearch
16
16
  def exists_type(arguments={})
17
17
  raise ArgumentError, "Required argument 'index' missing" unless arguments[:index]
18
18
  raise ArgumentError, "Required argument 'type' missing" unless arguments[:type]
19
+ valid_params = [ :ignore_indices ]
20
+
19
21
  method = 'HEAD'
20
- path = Utils.__pathify( Utils.__listify(arguments[:index]), arguments[:type] )
21
- params = arguments.select do |k,v|
22
- [ :ignore_indices ].include?(k)
23
- end
24
- # Normalize Ruby 1.8 and Ruby 1.9 Hash#select behaviour
25
- params = Hash[params] unless params.is_a?(Hash)
22
+ path = Utils.__pathify Utils.__listify(arguments[:index]), Utils.__escape(arguments[:type])
23
+
24
+ params = Utils.__validate_and_extract_params arguments, valid_params
26
25
  body = nil
27
26
 
28
27
  perform_request(method, path, params, body).status == 200 ? true : false
@@ -20,16 +20,16 @@ module Elasticsearch
20
20
  # @see http://www.elasticsearch.org/guide/reference/api/admin-indices-flush/
21
21
  #
22
22
  def flush(arguments={})
23
+ valid_params = [
24
+ :force,
25
+ :full,
26
+ :ignore_indices,
27
+ :refresh ]
28
+
23
29
  method = 'POST'
24
- path = Utils.__pathify( Utils.__listify(arguments[:index]), '_flush' )
25
- params = arguments.select do |k,v|
26
- [ :force,
27
- :full,
28
- :ignore_indices,
29
- :refresh ].include?(k)
30
- end
31
- # Normalize Ruby 1.8 and Ruby 1.9 Hash#select behaviour
32
- params = Hash[params] unless params.is_a?(Hash)
30
+ path = Utils.__pathify Utils.__listify(arguments[:index]), '_flush'
31
+
32
+ params = Utils.__validate_and_extract_params arguments, valid_params
33
33
  body = nil
34
34
 
35
35
  perform_request(method, path, params, body).body
@@ -24,13 +24,12 @@ module Elasticsearch
24
24
  #
25
25
  def get_alias(arguments={})
26
26
  raise ArgumentError, "Required argument 'name' missing" unless arguments[:name]
27
+ valid_params = [ :ignore_indices ]
28
+
27
29
  method = 'GET'
28
- path = Utils.__pathify( Utils.__listify(arguments[:index]), '_alias', arguments[:name] )
29
- params = arguments.select do |k,v|
30
- [ :ignore_indices ].include?(k)
31
- end
32
- # Normalize Ruby 1.8 and Ruby 1.9 Hash#select behaviour
33
- params = Hash[params] unless params.is_a?(Hash)
30
+ path = Utils.__pathify Utils.__listify(arguments[:index]), '_alias', Utils.__escape(arguments[:name])
31
+
32
+ params = Utils.__validate_and_extract_params arguments, valid_params
34
33
  body = nil
35
34
 
36
35
  perform_request(method, path, params, body).body
@@ -15,13 +15,12 @@ module Elasticsearch
15
15
  # @see http://www.elasticsearch.org/guide/reference/api/admin-indices-aliases/
16
16
  #
17
17
  def get_aliases(arguments={})
18
+ valid_params = [ :timeout ]
19
+
18
20
  method = 'GET'
19
- path = Utils.__pathify( Utils.__listify(arguments[:index]), '_aliases' )
20
- params = arguments.select do |k,v|
21
- [ :timeout ].include?(k)
22
- end
23
- # Normalize Ruby 1.8 and Ruby 1.9 Hash#select behaviour
24
- params = Hash[params] unless params.is_a?(Hash)
21
+ path = Utils.__pathify Utils.__listify(arguments[:index]), '_aliases'
22
+
23
+ params = Utils.__validate_and_extract_params arguments, valid_params
25
24
  body = nil
26
25
 
27
26
  perform_request(method, path, params, body).body
@@ -24,7 +24,7 @@ module Elasticsearch
24
24
  #
25
25
  def get_mapping(arguments={})
26
26
  method = 'GET'
27
- path = Utils.__pathify( Utils.__listify(arguments[:index]), Utils.__listify(arguments[:type]), '_mapping' )
27
+ path = Utils.__pathify Utils.__listify(arguments[:index]), Utils.__listify(arguments[:type]), '_mapping'
28
28
  params = {}
29
29
  body = nil
30
30
 
@@ -20,7 +20,7 @@ module Elasticsearch
20
20
  #
21
21
  def get_settings(arguments={})
22
22
  method = 'GET'
23
- path = Utils.__pathify( Utils.__listify(arguments[:index]), Utils.__listify(arguments[:type]), '_settings' )
23
+ path = Utils.__pathify Utils.__listify(arguments[:index]), Utils.__listify(arguments[:type]), '_settings'
24
24
  params = {}
25
25
  body = nil
26
26
 
@@ -16,9 +16,8 @@ module Elasticsearch
16
16
  # @see http://www.elasticsearch.org/guide/reference/api/admin-indices-templates/
17
17
  #
18
18
  def get_template(arguments={})
19
- raise ArgumentError, "Required argument 'name' missing" unless arguments[:name]
20
19
  method = 'GET'
21
- path = "_template/#{arguments[:name]}"
20
+ path = Utils.__pathify '_template', Utils.__escape(arguments[:name])
22
21
  params = {}
23
22
  body = nil
24
23
 
@@ -32,7 +32,7 @@ module Elasticsearch
32
32
  def get_warmer(arguments={})
33
33
  raise ArgumentError, "Required argument 'index' missing" unless arguments[:index]
34
34
  method = 'GET'
35
- path = Utils.__pathify( Utils.__listify(arguments[:index]), '_warmer', arguments[:name] )
35
+ path = Utils.__pathify( Utils.__listify(arguments[:index]), '_warmer', Utils.__escape(arguments[:name]) )
36
36
  params = {}
37
37
  body = nil
38
38
 
@@ -16,13 +16,12 @@ module Elasticsearch
16
16
  #
17
17
  def open(arguments={})
18
18
  raise ArgumentError, "Required argument 'index' missing" unless arguments[:index]
19
+ valid_params = [ :timeout ]
20
+
19
21
  method = 'POST'
20
- path = "#{arguments[:index]}/_open"
21
- params = arguments.select do |k,v|
22
- [ :timeout ].include?(k)
23
- end
24
- # Normalize Ruby 1.8 and Ruby 1.9 Hash#select behaviour
25
- params = Hash[params] unless params.is_a?(Hash)
22
+ path = Utils.__pathify Utils.__escape(arguments[:index]), '_open'
23
+
24
+ params = Utils.__validate_and_extract_params arguments, valid_params
26
25
  body = nil
27
26
 
28
27
  perform_request(method, path, params, body).body
@@ -34,19 +34,19 @@ module Elasticsearch
34
34
  # @see http://www.elasticsearch.org/guide/reference/api/admin-indices-optimize/
35
35
  #
36
36
  def optimize(arguments={})
37
+ valid_params = [
38
+ :flush,
39
+ :ignore_indices,
40
+ :max_num_segments,
41
+ :only_expunge_deletes,
42
+ :operation_threading,
43
+ :refresh,
44
+ :wait_for_merge ]
45
+
37
46
  method = 'POST'
38
- path = Utils.__pathify( Utils.__listify(arguments[:index]), '_optimize' )
39
- params = arguments.select do |k,v|
40
- [ :flush,
41
- :ignore_indices,
42
- :max_num_segments,
43
- :only_expunge_deletes,
44
- :operation_threading,
45
- :refresh,
46
- :wait_for_merge ].include?(k)
47
- end
48
- # Normalize Ruby 1.8 and Ruby 1.9 Hash#select behaviour
49
- params = Hash[params] unless params.is_a?(Hash)
47
+ path = Utils.__pathify Utils.__listify(arguments[:index]), '_optimize'
48
+
49
+ params = Utils.__validate_and_extract_params arguments, valid_params
50
50
  body = nil
51
51
 
52
52
  perform_request(method, path, params, body).body
@@ -26,13 +26,12 @@ module Elasticsearch
26
26
  def put_alias(arguments={})
27
27
  raise ArgumentError, "Required argument 'index' missing" unless arguments[:index]
28
28
  raise ArgumentError, "Required argument 'name' missing" unless arguments[:name]
29
+ valid_params = [ :timeout ]
30
+
29
31
  method = 'PUT'
30
- path = "#{arguments[:index]}/_alias/#{arguments[:name]}"
31
- params = arguments.select do |k,v|
32
- [ :timeout ].include?(k)
33
- end
34
- # Normalize Ruby 1.8 and Ruby 1.9 Hash#select behaviour
35
- params = Hash[params] unless params.is_a?(Hash)
32
+ path = Utils.__pathify Utils.__escape(arguments[:index]), '_alias', Utils.__escape(arguments[:name])
33
+
34
+ params = Utils.__validate_and_extract_params arguments, valid_params
36
35
  body = arguments[:body]
37
36
 
38
37
  perform_request(method, path, params, body).body
@@ -31,14 +31,12 @@ module Elasticsearch
31
31
  raise ArgumentError, "Required argument 'index' missing" unless arguments[:index]
32
32
  raise ArgumentError, "Required argument 'type' missing" unless arguments[:type]
33
33
  raise ArgumentError, "Required argument 'body' missing" unless arguments[:body]
34
+ valid_params = [ :ignore_conflicts, :timeout ]
35
+
34
36
  method = 'PUT'
35
- path = Utils.__pathify( Utils.__listify(arguments[:index]), arguments[:type], '_mapping' )
36
- params = arguments.select do |k,v|
37
- [ :ignore_conflicts,
38
- :timeout ].include?(k)
39
- end
40
- # Normalize Ruby 1.8 and Ruby 1.9 Hash#select behaviour
41
- params = Hash[params] unless params.is_a?(Hash)
37
+ path = Utils.__pathify Utils.__listify(arguments[:index]), Utils.__escape(arguments[:type]), '_mapping'
38
+
39
+ params = Utils.__validate_and_extract_params arguments, valid_params
42
40
  body = arguments[:body]
43
41
 
44
42
  perform_request(method, path, params, body).body
@@ -33,7 +33,7 @@ module Elasticsearch
33
33
  def put_settings(arguments={})
34
34
  raise ArgumentError, "Required argument 'body' missing" unless arguments[:body]
35
35
  method = 'PUT'
36
- path = Utils.__pathify( Utils.__listify(arguments[:index]), '_settings' )
36
+ path = Utils.__pathify Utils.__listify(arguments[:index]), '_settings'
37
37
  params = {}
38
38
  body = arguments[:body]
39
39
 
@@ -22,14 +22,12 @@ module Elasticsearch
22
22
  def put_template(arguments={})
23
23
  raise ArgumentError, "Required argument 'name' missing" unless arguments[:name]
24
24
  raise ArgumentError, "Required argument 'body' missing" unless arguments[:body]
25
+ valid_params = [ :order, :timeout ]
26
+
25
27
  method = 'PUT'
26
- path = "_template/#{arguments[:name]}"
27
- params = arguments.select do |k,v|
28
- [ :order,
29
- :timeout ].include?(k)
30
- end
31
- # Normalize Ruby 1.8 and Ruby 1.9 Hash#select behaviour
32
- params = Hash[params] unless params.is_a?(Hash)
28
+ path = Utils.__pathify '_template', Utils.__escape(arguments[:name])
29
+
30
+ params = Utils.__validate_and_extract_params arguments, valid_params
33
31
  body = arguments[:body]
34
32
 
35
33
  perform_request(method, path, params, body).body
@@ -26,13 +26,12 @@ module Elasticsearch
26
26
  # @see http://www.elasticsearch.org/guide/reference/api/admin-indices-refresh/
27
27
  #
28
28
  def refresh(arguments={})
29
+ valid_params = [ :ignore_indices ]
30
+
29
31
  method = 'POST'
30
- path = Utils.__pathify( Utils.__listify(arguments[:index]), '_refresh' )
31
- params = arguments.select do |k,v|
32
- [ :ignore_indices ].include?(k)
33
- end
34
- # Normalize Ruby 1.8 and Ruby 1.9 Hash#select behaviour
35
- params = Hash[params] unless params.is_a?(Hash)
32
+ path = Utils.__pathify Utils.__listify(arguments[:index]), '_refresh'
33
+
34
+ params = Utils.__validate_and_extract_params arguments, valid_params
36
35
  body = nil
37
36
 
38
37
  perform_request(method, path, params, body).body
@@ -16,13 +16,12 @@ module Elasticsearch
16
16
  # @see http://elasticsearch.org/guide/reference/api/admin-indices-segments/
17
17
  #
18
18
  def segments(arguments={})
19
+ valid_params = [ :ignore_indices ]
20
+
19
21
  method = 'GET'
20
- path = Utils.__pathify( Utils.__listify(arguments[:index]), '_segments' )
21
- params = arguments.select do |k,v|
22
- [ :ignore_indices ].include?(k)
23
- end
24
- # Normalize Ruby 1.8 and Ruby 1.9 Hash#select behaviour
25
- params = Hash[params] unless params.is_a?(Hash)
22
+ path = Utils.__pathify Utils.__listify(arguments[:index]), '_segments'
23
+
24
+ params = Utils.__validate_and_extract_params arguments, valid_params
26
25
  body = nil
27
26
 
28
27
  perform_request(method, path, params, body).body
@@ -15,13 +15,12 @@ module Elasticsearch
15
15
  # @see http://www.elasticsearch.org/guide/reference/api/admin-indices-gateway-snapshot/
16
16
  #
17
17
  def snapshot_index(arguments={})
18
+ valid_params = [ :ignore_indices ]
19
+
18
20
  method = 'POST'
19
- path = Utils.__pathify( Utils.__listify(arguments[:index]), '_gateway/snapshot' )
20
- params = arguments.select do |k,v|
21
- [ :ignore_indices ].include?(k)
22
- end
23
- # Normalize Ruby 1.8 and Ruby 1.9 Hash#select behaviour
24
- params = Hash[params] unless params.is_a?(Hash)
21
+ path = Utils.__pathify Utils.__listify(arguments[:index]), '_gateway/snapshot'
22
+
23
+ params = Utils.__validate_and_extract_params arguments, valid_params
25
24
  body = nil
26
25
 
27
26
  perform_request(method, path, params, body).body
@@ -60,34 +60,34 @@ module Elasticsearch
60
60
  # @see http://elasticsearch.org/guide/reference/api/admin-indices-stats/
61
61
  #
62
62
  def stats(arguments={})
63
+ valid_params = [
64
+ :all,
65
+ :clear,
66
+ :docs,
67
+ :fielddata,
68
+ :fields,
69
+ :filter_cache,
70
+ :flush,
71
+ :get,
72
+ :groups,
73
+ :id_cache,
74
+ :ignore_indices,
75
+ :indexing,
76
+ :merge,
77
+ :refresh,
78
+ :search,
79
+ :store,
80
+ :warmer ]
81
+
63
82
  method = 'GET'
64
- path = Utils.__pathify( Utils.__listify(arguments[:index]), '_stats' )
65
- params = arguments.select do |k,v|
66
- [ :all,
67
- :clear,
68
- :docs,
69
- :fielddata,
70
- :fields,
71
- :filter_cache,
72
- :flush,
73
- :get,
74
- :groups,
75
- :id_cache,
76
- :ignore_indices,
77
- :indexing,
78
- :merge,
79
- :refresh,
80
- :search,
81
- :store,
82
- :warmer ].include?(k)
83
- end
84
- # Normalize Ruby 1.8 and Ruby 1.9 Hash#select behaviour
85
- params = Hash[params] unless params.is_a?(Hash)
86
- body = nil
83
+ path = Utils.__pathify Utils.__listify(arguments[:index]), '_stats'
87
84
 
85
+ params = Utils.__validate_and_extract_params arguments, valid_params
88
86
  params[:fields] = Utils.__listify(params[:fields]) if params[:fields]
89
87
  params[:groups] = Utils.__listify(params[:groups]) if params[:groups]
90
88
 
89
+ body = nil
90
+
91
91
  perform_request(method, path, params, body).body
92
92
  end
93
93
  end
@@ -27,15 +27,15 @@ module Elasticsearch
27
27
  # @see http://elasticsearch.org/guide/reference/api/admin-indices-status/
28
28
  #
29
29
  def status(arguments={})
30
+ valid_params = [
31
+ :ignore_indices,
32
+ :recovery,
33
+ :snapshot ]
34
+
30
35
  method = 'GET'
31
- path = Utils.__pathify( Utils.__listify(arguments[:index]), '_status' )
32
- params = arguments.select do |k,v|
33
- [ :ignore_indices,
34
- :recovery,
35
- :snapshot ].include?(k)
36
- end
37
- # Normalize Ruby 1.8 and Ruby 1.9 Hash#select behaviour
38
- params = Hash[params] unless params.is_a?(Hash)
36
+ path = Utils.__pathify Utils.__listify(arguments[:index]), '_status'
37
+
38
+ params = Utils.__validate_and_extract_params arguments, valid_params
39
39
  body = nil
40
40
 
41
41
  perform_request(method, path, params, body).body
@@ -32,13 +32,12 @@ module Elasticsearch
32
32
  #
33
33
  def update_aliases(arguments={})
34
34
  raise ArgumentError, "Required argument 'body' missing" unless arguments[:body]
35
+ valid_params = [ :timeout ]
36
+
35
37
  method = 'POST'
36
38
  path = "_aliases"
37
- params = arguments.select do |k,v|
38
- [ :timeout ].include?(k)
39
- end
40
- # Normalize Ruby 1.8 and Ruby 1.9 Hash#select behaviour
41
- params = Hash[params] unless params.is_a?(Hash)
39
+
40
+ params = Utils.__validate_and_extract_params arguments, valid_params
42
41
  body = arguments[:body]
43
42
 
44
43
  perform_request(method, path, params, body).body