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.
- data/LICENSE +20 -0
- data/README.md +20 -0
- data/VERSION +1 -0
- data/flex.gemspec +43 -0
- data/lib/flex.rb +418 -0
- data/lib/flex/api_methods.yml +108 -0
- data/lib/flex/class_proxy.rb +12 -0
- data/lib/flex/configuration.rb +57 -0
- data/lib/flex/errors.rb +42 -0
- data/lib/flex/http_clients/patron.rb +27 -0
- data/lib/flex/http_clients/rest_client.rb +38 -0
- data/lib/flex/loader.rb +116 -0
- data/lib/flex/logger.rb +16 -0
- data/lib/flex/model.rb +24 -0
- data/lib/flex/model/class_proxy.rb +45 -0
- data/lib/flex/model/instance_proxy.rb +101 -0
- data/lib/flex/model/manager.rb +67 -0
- data/lib/flex/rails.rb +12 -0
- data/lib/flex/rails/engine.rb +23 -0
- data/lib/flex/rails/helper.rb +16 -0
- data/lib/flex/related_model.rb +16 -0
- data/lib/flex/related_model/class_proxy.rb +23 -0
- data/lib/flex/related_model/class_sync.rb +23 -0
- data/lib/flex/related_model/instance_proxy.rb +28 -0
- data/lib/flex/result.rb +18 -0
- data/lib/flex/result/bulk.rb +20 -0
- data/lib/flex/result/collection.rb +51 -0
- data/lib/flex/result/document.rb +38 -0
- data/lib/flex/result/indifferent_access.rb +11 -0
- data/lib/flex/result/search.rb +51 -0
- data/lib/flex/result/source_document.rb +63 -0
- data/lib/flex/result/source_search.rb +32 -0
- data/lib/flex/structure/indifferent_access.rb +44 -0
- data/lib/flex/structure/mergeable.rb +21 -0
- data/lib/flex/tasks.rb +141 -0
- data/lib/flex/template.rb +187 -0
- data/lib/flex/template/base.rb +29 -0
- data/lib/flex/template/info.rb +50 -0
- data/lib/flex/template/partial.rb +31 -0
- data/lib/flex/template/search.rb +30 -0
- data/lib/flex/template/slim_search.rb +13 -0
- data/lib/flex/template/tags.rb +46 -0
- data/lib/flex/utility_methods.rb +140 -0
- data/lib/flex/utils.rb +59 -0
- data/lib/flex/variables.rb +11 -0
- data/lib/generators/flex/setup/setup_generator.rb +51 -0
- data/lib/generators/flex/setup/templates/flex_config.yml +16 -0
- data/lib/generators/flex/setup/templates/flex_dir/es.rb.erb +18 -0
- data/lib/generators/flex/setup/templates/flex_dir/es.yml.erb +19 -0
- data/lib/generators/flex/setup/templates/flex_dir/es_extender.rb.erb +17 -0
- data/lib/generators/flex/setup/templates/flex_initializer.rb.erb +44 -0
- data/lib/tasks/index.rake +23 -0
- data/test/flex.irt +143 -0
- data/test/flex/configuration.irt +53 -0
- data/test/irt_helper.rb +12 -0
- 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
|
+
|
data/test/irt_helper.rb
ADDED
@@ -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:
|