flex 0.1.0

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 (56) hide show
  1. data/LICENSE +20 -0
  2. data/README.md +20 -0
  3. data/VERSION +1 -0
  4. data/flex.gemspec +43 -0
  5. data/lib/flex.rb +418 -0
  6. data/lib/flex/api_methods.yml +108 -0
  7. data/lib/flex/class_proxy.rb +12 -0
  8. data/lib/flex/configuration.rb +57 -0
  9. data/lib/flex/errors.rb +42 -0
  10. data/lib/flex/http_clients/patron.rb +27 -0
  11. data/lib/flex/http_clients/rest_client.rb +38 -0
  12. data/lib/flex/loader.rb +116 -0
  13. data/lib/flex/logger.rb +16 -0
  14. data/lib/flex/model.rb +24 -0
  15. data/lib/flex/model/class_proxy.rb +45 -0
  16. data/lib/flex/model/instance_proxy.rb +101 -0
  17. data/lib/flex/model/manager.rb +67 -0
  18. data/lib/flex/rails.rb +12 -0
  19. data/lib/flex/rails/engine.rb +23 -0
  20. data/lib/flex/rails/helper.rb +16 -0
  21. data/lib/flex/related_model.rb +16 -0
  22. data/lib/flex/related_model/class_proxy.rb +23 -0
  23. data/lib/flex/related_model/class_sync.rb +23 -0
  24. data/lib/flex/related_model/instance_proxy.rb +28 -0
  25. data/lib/flex/result.rb +18 -0
  26. data/lib/flex/result/bulk.rb +20 -0
  27. data/lib/flex/result/collection.rb +51 -0
  28. data/lib/flex/result/document.rb +38 -0
  29. data/lib/flex/result/indifferent_access.rb +11 -0
  30. data/lib/flex/result/search.rb +51 -0
  31. data/lib/flex/result/source_document.rb +63 -0
  32. data/lib/flex/result/source_search.rb +32 -0
  33. data/lib/flex/structure/indifferent_access.rb +44 -0
  34. data/lib/flex/structure/mergeable.rb +21 -0
  35. data/lib/flex/tasks.rb +141 -0
  36. data/lib/flex/template.rb +187 -0
  37. data/lib/flex/template/base.rb +29 -0
  38. data/lib/flex/template/info.rb +50 -0
  39. data/lib/flex/template/partial.rb +31 -0
  40. data/lib/flex/template/search.rb +30 -0
  41. data/lib/flex/template/slim_search.rb +13 -0
  42. data/lib/flex/template/tags.rb +46 -0
  43. data/lib/flex/utility_methods.rb +140 -0
  44. data/lib/flex/utils.rb +59 -0
  45. data/lib/flex/variables.rb +11 -0
  46. data/lib/generators/flex/setup/setup_generator.rb +51 -0
  47. data/lib/generators/flex/setup/templates/flex_config.yml +16 -0
  48. data/lib/generators/flex/setup/templates/flex_dir/es.rb.erb +18 -0
  49. data/lib/generators/flex/setup/templates/flex_dir/es.yml.erb +19 -0
  50. data/lib/generators/flex/setup/templates/flex_dir/es_extender.rb.erb +17 -0
  51. data/lib/generators/flex/setup/templates/flex_initializer.rb.erb +44 -0
  52. data/lib/tasks/index.rake +23 -0
  53. data/test/flex.irt +143 -0
  54. data/test/flex/configuration.irt +53 -0
  55. data/test/irt_helper.rb +12 -0
  56. metadata +211 -0
@@ -0,0 +1,16 @@
1
+ # ANCHORS litheral key: it will not be used as template
2
+ # you can store here fragments of structures to reuse below
3
+ ANCHORS:
4
+ -
5
+
6
+ # This is a dynamic index name The settings and mapping below will work with any index.
7
+ # The default index name generated by Flex is usually <application_name>_<environment>,
8
+ # but you may have changed it in the initializers/flex.rb or you can hardcode it if you prefer.
9
+ <%= Flex::Configuration.variables[:index] %>:
10
+
11
+ settings:
12
+ number_of_shards: 5
13
+ number_of_replicas: 1
14
+
15
+ # add your custom mappings here
16
+ mappings: {}
@@ -0,0 +1,18 @@
1
+ # inspect the methods loaded in this module and their usage
2
+ # in the rails console by just typing:
3
+ # >> puts <%= @class_name %>.flex.info
4
+ # you can eventually restrict the info to a single method by pasing its name:
5
+ # >> puts <%= @class_name %>.flex.info :search
6
+ # see the detailed doc for this feature at https://github.com/ddnexus/flex/wiki/Selfdoc
7
+
8
+ module <%= @class_name %>
9
+
10
+ extend self
11
+
12
+ include Flex::Loader
13
+ flex.load_search_source
14
+
15
+ # you may need to add more method here, usually wrapper methods
16
+ # that use one of the autogenerated methods from the loaded templates
17
+
18
+ end
@@ -0,0 +1,19 @@
1
+ # Add here your search queries
2
+ # see the detailed Source documentation at https://github.com/ddnexus/flex/wiki/Sources
3
+
4
+
5
+ # ANCHORS litheral key: it will not be used as template
6
+ # you can store here fragments of queries to reuse in the templates below
7
+ ANCHORS:
8
+ -
9
+
10
+ # this is a a basic template loaded in your class <%= @class_name %>
11
+ # it defines the 'q' tag. You can check its usage from the rails console by just typing:
12
+ # >> puts <%= @class_name %>.flex.info
13
+ # You can eventually restrict the info to a single method by pasing its name:
14
+ # >> puts <%= @class_name %>.flex.info :search
15
+ # see the detailed doc for this feature at https://github.com/ddnexus/flex/wiki/Selfdoc
16
+ search:
17
+ - query:
18
+ query_string: <<q= "*">>
19
+
@@ -0,0 +1,17 @@
1
+ # see the detailed Extenders documentation at https://github.com/ddnexus/flex/wiki/Extenders
2
+
3
+ module <%= @extender_name %>
4
+
5
+ # set this method to restrict this extender to certain types of results
6
+ # see the other Flex extenders for reference (https://github.com/ddnexus/flex/tree/master/lib/flex/result)
7
+ def self.should_extend?(response)
8
+ false
9
+ end
10
+
11
+ # adds your methods
12
+
13
+ def an_extending_method
14
+ # self is the structure returned by ES
15
+ end
16
+
17
+ end
@@ -0,0 +1,44 @@
1
+ # see the detailed Configuration documentation at https://github.com/ddnexus/flex/wiki/Configuration
2
+
3
+ Flex::Configuration.configure do |config|
4
+
5
+ # you MUST add your indexed model names here
6
+ config.flex_models = %w[ ]
7
+
8
+ # Add the your result extenders here
9
+ config.result_extenders |= [ <%= "#{@extender_name}" %> ]
10
+
11
+ # Add the default variables here
12
+ # see also the details Variables documentation at https://github.com/ddnexus/flex/wiki/Variables
13
+ # config.variables.add :index => 'my_index',
14
+ # :type => 'project',
15
+ # :anything => 'anything
16
+
17
+ # The custom url of your ElasticSearch server
18
+ # config.base_uri = 'http://localhost:9200'
19
+
20
+ # Set it to false to skip the logging of the debug infos
21
+ # config.debug = true
22
+
23
+ # Debug info are actually valid curl commands
24
+ # config.debug_to_curl = false
25
+
26
+ # The custom logger you want Flex to use. Default Rails.logger
27
+ # config.logger = Logger.new(STDERR)
28
+
29
+ # Custom config file path
30
+ # config.config_file = '/custom/path/to/flex.yml',
31
+
32
+ # Custom flex dir path
33
+ # config.flex_dir = '/custom/path/to/flex',
34
+
35
+ # The custom http_client you may want to implement
36
+ # config.http_client = 'Your::Client'
37
+
38
+ # The options passed to the http_client. They are client specific.
39
+ # config.http_client_options = {:timeout => 5}
40
+
41
+ # Experimental: checks the response and return a boolean (should raise?)
42
+ # config.raise_proc = proc{|response| response.status >= 400}
43
+
44
+ end
@@ -0,0 +1,23 @@
1
+ require defined?(Rails) ? 'flex/rails' : 'flex'
2
+ require 'flex/tasks'
3
+
4
+ env = defined?(Rails) ? :environment : []
5
+
6
+ namespace :flex do
7
+
8
+ desc 'imports from an ActiveRecord or Mongoid models'
9
+ task(:import => env) { Flex::Tasks.import_models }
10
+
11
+ desc 'create indices from the Flex::Configuration.config_file file'
12
+ task(:create_index => env) { Flex::Tasks.create_indices }
13
+
14
+ desc 'alias for flex:create_index'
15
+ task(:create_indices => env) { Flex::Tasks.create_indices }
16
+
17
+ desc 'destroy indices in the Flex::Configuration.config_file file'
18
+ task(:delete_index => env) { Flex::Tasks.delete_indices }
19
+
20
+ desc 'alias for flex:delete_index'
21
+ task(:delete_indices => env) { Flex::Tasks.delete_indices }
22
+
23
+ end
data/test/flex.irt ADDED
@@ -0,0 +1,143 @@
1
+ desc 'check version'
2
+ Flex::VERSION
3
+ _eql?( "0.1" )
4
+
5
+ desc 'Flex responds to all public methods'
6
+ methods = [ # api methods from yaml
7
+ :indices_exists, :create_index, :put_index, :post_index, :get_settings, :put_mapping, :get_mapping, :delete_mapping,
8
+ :delete_index, :delete_by_query, :bulk, :count, :stats, :store, :put_store, :post_store, :remove, :get, :multi_get,
9
+ # utility_methods
10
+ :configuration, :config, :search, :slim_search, :HEAD, :GET, :PUT, :POST, :DELETE, :json2yaml, :yaml2json,
11
+ :process_bulk, :import_collection, :delete_collection,
12
+ # other methods
13
+ :exist? ]
14
+ defined, not_defined = methods.partition {|k| Flex.respond_to?(k)}
15
+ defined
16
+ _eql?( methods )
17
+
18
+
19
+ desc 'create index with PUT (explicit index)'
20
+ Flex.delete_index(:index => INDEX_NAME) if Flex.exist?(:index => INDEX_NAME)
21
+ Flex.put_index(:index => INDEX_NAME)
22
+ _eql?( {"ok"=>true, "acknowledged"=>true} )
23
+
24
+
25
+ # in the irt_helper.rb we set the default index to INDEX_NAME and Flex.reload! so we don't need to pass any explicit index
26
+
27
+ desc 'create index with PUT'
28
+ Flex.delete_index if Flex.exist?
29
+ Flex.put_index
30
+ _eql?( {"ok"=>true, "acknowledged"=>true} )
31
+
32
+
33
+ desc "index #{INDEX_NAME} exist"
34
+ Flex.exist?
35
+ _eql?( true )
36
+
37
+
38
+ desc "index #{unexistent = 'flex_unexistent_index'} doesn't exist'"
39
+ Flex.exist?(:index => unexistent)
40
+ _eql?( false )
41
+
42
+
43
+ desc 'create_index with POST (explicit index)'
44
+ Flex.delete_index(:index => TMP_INDEX_NAME) if Flex.exist?(:index => TMP_INDEX_NAME)
45
+ Flex.post_index(:index => TMP_INDEX_NAME)
46
+ _eql?( {"ok"=>true, "acknowledged"=>true} )
47
+ Flex.delete_index(:index => TMP_INDEX_NAME)
48
+
49
+
50
+ desc 'get_settings'
51
+ Flex.get_settings
52
+ _eql?( {"flex_test_index"=>{"settings"=>{"index.number_of_replicas"=>"1", "index.number_of_shards"=>"5", "index.version.created"=>"190299"}}} )
53
+
54
+
55
+ desc 'put_mapping'
56
+ Flex.put_mapping(:type => 'type1',
57
+ :properties => {'test1' => {'type' => 'string'} })
58
+ _eql?( {"ok"=>true, "acknowledged"=>true} )
59
+
60
+
61
+ desc 'check mapping'
62
+ Flex.get_mapping
63
+ _eql?( {"flex_test_index"=>{"type1"=>{"properties"=>{"test1"=>{"type"=>"string"}}}}} )
64
+
65
+
66
+ desc 'delete_mapping'
67
+ Flex.delete_mapping(:type => 'type1')
68
+ _eql?( {"ok"=>true} )
69
+
70
+
71
+ desc 'delete_index'
72
+ Flex.delete_index
73
+ _eql?( {"ok"=>true, "acknowledged"=>true} )
74
+
75
+
76
+ desc 'check delete_index'
77
+ Flex.exist?
78
+ _eql?( false )
79
+
80
+
81
+ desc 'store'
82
+ Flex.store(:type => 'type1', :id => 1, :data => {'a'=>2, 'b'=>3})
83
+ _eql?( {"ok"=>true, "_index"=>"flex_test_index", "_type"=>"type1", "_id"=>"1", "_version"=>1} )
84
+
85
+
86
+ desc 'get'
87
+ Flex.get(:type => 'type1', :id => 1)
88
+ _eql?( {"_index"=>"flex_test_index", "_type"=>"type1", "_id"=>"1", "_version"=>1, "exists"=>true, "_source"=>{"a"=>2, "b"=>3}} )
89
+
90
+
91
+ desc 'count (may fail in test, but it\'s ok)'
92
+ Flex.count :type => 'type1'
93
+ _eql?( {"count"=>1, "_shards"=>{"total"=>5, "successful"=>5, "failed"=>0}} )
94
+
95
+
96
+ desc 'remove'
97
+ Flex.remove(:type => 'type1', :id => 1)
98
+ _eql?( {"ok"=>true, "found"=>true, "_index"=>"flex_test_index", "_type"=>"type1", "_id"=>"1", "_version"=>2} )
99
+
100
+
101
+ desc 'check remove'
102
+ Flex.get(:type => 'type1', :id => 1, :raise => false)
103
+ _eql?( nil )
104
+
105
+
106
+ desc 'delete_by_query'
107
+ # in Patron the :data option is not working, since currently patron cannot send data with a DELETE request
108
+ Flex.store(:type => 'type1', :id => 1, :data => {'a'=>2, 'myfield'=>'pippo'})
109
+ Flex.delete_by_query :type => 'type1', :params => {:q => 'myfield:pippo'}
110
+ _eql?( {"ok"=>true, "_indices"=>{"flex_test_index"=>{"_shards"=>{"total"=>5, "successful"=>5, "failed"=>0}}}} )
111
+
112
+
113
+ desc 'strict_existence doesn\'t affect exist'
114
+ Flex.get(:type => 'type1', :id => 1, :raise => false)
115
+ _eql?( nil )
116
+
117
+
118
+ desc 'json2yaml'
119
+ struct = {:a => {:b => [3,4,5]}}
120
+ yaml = Flex.json2yaml MultiJson.encode(struct)
121
+ _eql? <<EOS
122
+ ---
123
+ a:
124
+ b:
125
+ - 3
126
+ - 4
127
+ - 5
128
+ EOS
129
+
130
+ desc 'yaml2json'
131
+ Flex.yaml2json(yaml)
132
+ _eql?( "{\"a\":{\"b\":[3,4,5]}}" )
133
+
134
+
135
+ desc "exist with HEAD"
136
+ Flex.HEAD "/#{INDEX_NAME}"
137
+ # empty result object
138
+ _eql?( true )
139
+
140
+ desc "doesn't exist with HEAD'"
141
+ Flex.HEAD "/unexistent_flex_index"
142
+ _eql?( false )
143
+
@@ -0,0 +1,53 @@
1
+
2
+ desc 'Flex::Configuration responds to all public methods'
3
+ methods = [ # regular methods from class
4
+ :configure,
5
+ # data methods
6
+ :base_uri, :result_extenders, :logger, :variables, :flex_models, :config_file, :flex_dir,
7
+ :http_client, :http_client_options, :debug, :debug_to_curl, :raise_proc]
8
+
9
+ defined, not_defined = methods.partition {|k| Flex::Configuration.respond_to?(k)}
10
+ defined
11
+ _eql?( methods )
12
+
13
+
14
+ desc 'block set variables'
15
+ Flex::Configuration.configure do |conf|
16
+ conf.base_uri = 'http://something:123'
17
+ end
18
+ Flex::Configuration.base_uri
19
+ _eql?( "http://something:123" )
20
+
21
+
22
+ desc 'direct set variables'
23
+ Flex::Configuration.test = false
24
+ Flex::Configuration.test
25
+ _eql?( false )
26
+
27
+
28
+ desc 'new configuration object'
29
+ Flex::Configuration.configure do |conf|
30
+ conf.custom = 23
31
+ conf.base_uri = 'http://other_host:9200'
32
+ end
33
+
34
+
35
+ desc 'custom arg accessor'
36
+ Flex::Configuration.custom
37
+ _eql?( 23 )
38
+
39
+
40
+ desc 'modified configuration'
41
+ Flex::Configuration.base_uri
42
+ _eql?( 'http://other_host:9200' )
43
+
44
+
45
+ desc 'add custom configuration with accessor'
46
+ Flex::Configuration.new_custom = 3
47
+ _eql?( 3 )
48
+
49
+
50
+ desc 'custom option is in object'
51
+ Flex::Configuration.new_custom
52
+ _eql?( 3 )
53
+
@@ -0,0 +1,12 @@
1
+ $:.unshift File.expand_path('../../lib', __FILE__)
2
+ require 'flex'
3
+
4
+ INDEX_NAME = 'flex_test_index'
5
+ TMP_INDEX_NAME = 'flex_tmp_test_index'
6
+
7
+ INDEX_NAME_1 = 'flex_test_index_1'
8
+ INDEX_NAME_2 = 'flex_test_index_2'
9
+
10
+ Flex.create_index(:index => INDEX_NAME) unless Flex.exist?(:index => INDEX_NAME)
11
+ Flex.config.variables[:index] = INDEX_NAME
12
+ Flex.reload!
metadata ADDED
@@ -0,0 +1,211 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: flex
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Domizio Demichelis
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-07-23 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: multi_json
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: 1.3.4
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: 1.3.4
30
+ - !ruby/object:Gem::Dependency
31
+ name: progressbar
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ~>
36
+ - !ruby/object:Gem::Version
37
+ version: 0.11.0
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: 0.11.0
46
+ - !ruby/object:Gem::Dependency
47
+ name: prompter
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ~>
52
+ - !ruby/object:Gem::Version
53
+ version: 0.1.5
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: 0.1.5
62
+ - !ruby/object:Gem::Dependency
63
+ name: irt
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ~>
68
+ - !ruby/object:Gem::Version
69
+ version: 1.2.10
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ version: 1.2.10
78
+ - !ruby/object:Gem::Dependency
79
+ name: patron
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ~>
84
+ - !ruby/object:Gem::Version
85
+ version: 0.4.18
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ~>
92
+ - !ruby/object:Gem::Version
93
+ version: 0.4.18
94
+ - !ruby/object:Gem::Dependency
95
+ name: rest-client
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ~>
100
+ - !ruby/object:Gem::Version
101
+ version: 1.6.7
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ~>
108
+ - !ruby/object:Gem::Version
109
+ version: 1.6.7
110
+ description: ! 'Flex is a complete ruby client for ElasticSearch. It introduces a
111
+ new way to send any kind of request (not just search queries) to the ES server,
112
+ and to manage any kind of response. You can transparently integrate it with ActiveRecord
113
+ and MongoId models with or without automatic synchronization, with or without Rails.
114
+ It is fast and efficient, easy to use and customize.
115
+
116
+ '
117
+ email: dd.nexus@gmail.com
118
+ executables: []
119
+ extensions: []
120
+ extra_rdoc_files:
121
+ - README.md
122
+ files:
123
+ - LICENSE
124
+ - README.md
125
+ - VERSION
126
+ - flex.gemspec
127
+ - lib/flex.rb
128
+ - lib/flex/api_methods.yml
129
+ - lib/flex/class_proxy.rb
130
+ - lib/flex/configuration.rb
131
+ - lib/flex/errors.rb
132
+ - lib/flex/http_clients/patron.rb
133
+ - lib/flex/http_clients/rest_client.rb
134
+ - lib/flex/loader.rb
135
+ - lib/flex/logger.rb
136
+ - lib/flex/model.rb
137
+ - lib/flex/model/class_proxy.rb
138
+ - lib/flex/model/instance_proxy.rb
139
+ - lib/flex/model/manager.rb
140
+ - lib/flex/rails.rb
141
+ - lib/flex/rails/engine.rb
142
+ - lib/flex/rails/helper.rb
143
+ - lib/flex/related_model.rb
144
+ - lib/flex/related_model/class_proxy.rb
145
+ - lib/flex/related_model/class_sync.rb
146
+ - lib/flex/related_model/instance_proxy.rb
147
+ - lib/flex/result.rb
148
+ - lib/flex/result/bulk.rb
149
+ - lib/flex/result/collection.rb
150
+ - lib/flex/result/document.rb
151
+ - lib/flex/result/indifferent_access.rb
152
+ - lib/flex/result/search.rb
153
+ - lib/flex/result/source_document.rb
154
+ - lib/flex/result/source_search.rb
155
+ - lib/flex/structure/indifferent_access.rb
156
+ - lib/flex/structure/mergeable.rb
157
+ - lib/flex/tasks.rb
158
+ - lib/flex/template.rb
159
+ - lib/flex/template/base.rb
160
+ - lib/flex/template/info.rb
161
+ - lib/flex/template/partial.rb
162
+ - lib/flex/template/search.rb
163
+ - lib/flex/template/slim_search.rb
164
+ - lib/flex/template/tags.rb
165
+ - lib/flex/utility_methods.rb
166
+ - lib/flex/utils.rb
167
+ - lib/flex/variables.rb
168
+ - lib/generators/flex/setup/setup_generator.rb
169
+ - lib/generators/flex/setup/templates/flex_config.yml
170
+ - lib/generators/flex/setup/templates/flex_dir/es.rb.erb
171
+ - lib/generators/flex/setup/templates/flex_dir/es.yml.erb
172
+ - lib/generators/flex/setup/templates/flex_dir/es_extender.rb.erb
173
+ - lib/generators/flex/setup/templates/flex_initializer.rb.erb
174
+ - lib/tasks/index.rake
175
+ - test/flex.irt
176
+ - test/flex/configuration.irt
177
+ - test/irt_helper.rb
178
+ homepage: http://github.com/ddnexus/flex
179
+ licenses: []
180
+ post_install_message: ! "________________________________________________________________________________\n\n
181
+ \ INSTALLATION NOTES\n________________________________________________________________________________\n\nIn
182
+ order to use Flex, a supported http-client must be installed on this system.\n\nThe
183
+ suported http-client gems are \"patron\" and \"rest-client\".\n\nYou should install
184
+ \"patron\" (a libcurl based gem developed in C) for best\nperformances, or install
185
+ \"rest-client\" if you cannot use libcurl on your system.\n\nAs an alternative you
186
+ could eventually develop your own http-client interface\nand set the Flex::Configuration.http_client
187
+ option.\n\n________________________________________________________________________________\n"
188
+ rdoc_options:
189
+ - --charset=UTF-8
190
+ require_paths:
191
+ - lib
192
+ required_ruby_version: !ruby/object:Gem::Requirement
193
+ none: false
194
+ requirements:
195
+ - - ! '>='
196
+ - !ruby/object:Gem::Version
197
+ version: '0'
198
+ required_rubygems_version: !ruby/object:Gem::Requirement
199
+ none: false
200
+ requirements:
201
+ - - ! '>='
202
+ - !ruby/object:Gem::Version
203
+ version: 1.3.6
204
+ requirements: []
205
+ rubyforge_project:
206
+ rubygems_version: 1.8.24
207
+ signing_key:
208
+ specification_version: 3
209
+ summary: Ruby Client for ElasticSearch
210
+ test_files: []
211
+ has_rdoc: