elastics-legacy 1.0.5

Sign up to get free protection for your applications and to get access to all the features.
data/LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2012-2013 by Domizio Demichelis
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,14 @@
1
+ # elastics-legacy
2
+
3
+ [![Gem Version](https://badge.fury.io/rb/elastics-legacy.png)](http://badge.fury.io/rb/elastics-legacy)
4
+
5
+ Provides out-of-the box legacy compatibility (with flex and old versions). Use it for a smooth migration to the new gems. Read the [How to migrate from Flex 0.x](http://elastics.github.io/elastics/doc/7-Tutorials/2-Migrate-from-0.x.html) tutorial.
6
+
7
+ ## Credits
8
+
9
+ Special thanks for their sponsorship to [Escalate Media](http://www.escalatemedia.com) and [Barquin International](http://www.barquin.com).
10
+
11
+ ## Copyright
12
+
13
+ Copyright (c) 2012-2013 by [Domizio Demichelis](mailto://dd.nexus@gmail.com)<br>
14
+ See [LICENSE](https://github.com/elastics/elastics/blob/master/elastics-scopes/LICENSE) for details.
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 1.0.5
@@ -0,0 +1,19 @@
1
+ require 'date'
2
+ version = File.read(File.expand_path('../VERSION', __FILE__)).strip
3
+
4
+ Gem::Specification.new do |s|
5
+ s.name = 'elastics-legacy'
6
+ s.summary = 'Adds legacy compatibility and deprecations warnings.'
7
+ s.description = 'Provides out-of-the box legacy compatibility (with flex and old versions). Use it for a smooth migration to the new gems.'
8
+ s.homepage = 'http://elastics.github.io/elastics'
9
+ s.authors = ["Domizio Demichelis"]
10
+ s.email = 'dd.nexus@gmail.com'
11
+ s.files = `git ls-files -z`.split("\0")
12
+ s.version = version
13
+ s.date = Date.today.to_s
14
+ s.required_rubygems_version = ">= 1.3.6"
15
+ s.rdoc_options = %w[--charset=UTF-8]
16
+ s.license = 'MIT'
17
+
18
+ s.add_runtime_dependency 'elastics-client', version
19
+ end
@@ -0,0 +1,214 @@
1
+ module Elastics
2
+
3
+ module Deprecation
4
+
5
+ extend self
6
+
7
+ def warn(old, new, called=1)
8
+ message = "#{old} is deprecated in favour of #{new}, and will be removed in a next version. Please, read the upgrade notes at http://elastics.github.io/elastics/doc/7-Tutorials/2-Migrate-from-0.x.html. "
9
+ message << "(called at: #{caller[called]})" if called
10
+ Conf.logger.warn message
11
+ end
12
+
13
+ module Module
14
+ def extended(obj)
15
+ Deprecation.warn(self, self::NEW_MODULE, 2)
16
+ obj.extend self::NEW_MODULE
17
+ end
18
+ def included(base)
19
+ Deprecation.warn(self, self::NEW_MODULE, 2)
20
+ base.send :include, self::NEW_MODULE
21
+ end
22
+ end
23
+
24
+ end
25
+
26
+ ### Deprecation of Flex methods ###
27
+
28
+ def info(*names)
29
+ Deprecation.warn 'Flex.info', 'Elastics.doc'
30
+ doc *names
31
+ end
32
+
33
+ def process_bulk(options={})
34
+ Deprecation.warn 'Flex.process_bulk(:collection => collection)', 'Elastics.post_bulk_collection(collection, options)'
35
+ post_bulk_collection(options.delete(:collection), options)
36
+ end
37
+
38
+ def import_collection(collection, options={})
39
+ Deprecation.warn 'Flex.import_collection', 'Elastics.post_bulk_collection'
40
+ post_bulk_collection(collection, options.merge(:action => 'index'))
41
+ end
42
+
43
+ def delete_collection(collection, options={})
44
+ Deprecation.warn 'Flex.delete_collection(collection)', 'Elastics.post_bulk_collection(collection, :action => "delete")'
45
+ post_bulk_collection(collection, options.merge(:action => 'delete'))
46
+ end
47
+
48
+ def bulk(*vars)
49
+ Deprecation.warn 'Flex.bulk(:lines => lines_bulk_string)', 'Elastics.post_bulk_string(:bulk_string => lines_bulk_string)'
50
+ vars = Vars.new(*vars)
51
+ post_bulk_string(:bulk_string => vars[:lines])
52
+ end
53
+
54
+
55
+ ### Deprecation of Configuration methods ###
56
+
57
+ Configuration.instance_eval do
58
+ # temprary deprecation warnings
59
+ def base_uri
60
+ Deprecation.warn 'Flex::Configuration.base_uri', 'Elastics::Configuration.http_client.base_uri'
61
+ http_client.base_uri
62
+ end
63
+ def base_uri=(val)
64
+ Deprecation.warn 'Flex::Configuration.base_uri=', 'Elastics::Configuration.http_client.base_uri='
65
+ http_client.base_uri = val
66
+ end
67
+ def http_client_options
68
+ Deprecation.warn 'Flex::Configuration.http_client_options', 'Elastics::Configuration.http_client.options'
69
+ http_client.options
70
+ end
71
+ def http_client_options=(val)
72
+ Deprecation.warn 'Flex::Configuration.http_client_options=', 'Elastics::Configuration.http_client.options='
73
+ http_client.options = val
74
+ end
75
+ def raise_proc
76
+ Deprecation.warn 'Flex::Configuration.raise_proc', 'Elastics::Configuration.http_client.raise_proc'
77
+ http_client.raise_proc
78
+ end
79
+ def raise_proc=(val)
80
+ Deprecation.warn 'Flex::Configuration.raise_proc=', 'Elastics::Configuration.http_client.raise_proc='
81
+ http_client.raise_proc = val
82
+ end
83
+ def flex_models
84
+ elastics_models
85
+ end
86
+ def flex_active_models
87
+ elastics_active_models
88
+ end
89
+ end
90
+
91
+ module Rails
92
+ class Logger
93
+ def log_to_stdout
94
+ Deprecation.warn 'Flex::Configuration.logger.log_to_stdout', 'Elastics::Configuration.logger.log_to_stderr'
95
+ log_to_stderr
96
+ end
97
+ def log_to_stdout=(val)
98
+ Deprecation.warn 'Flex::Configuration.logger.log_to_stdout=', 'Elastics::Configuration.logger.log_to_stderr='
99
+ self.log_to_stderr = val
100
+ end
101
+ end
102
+ end
103
+
104
+ class Variables
105
+ def add(*hashes)
106
+ Deprecation.warn 'Flex::Variables#add', 'Elastics::Variables#deep_merge!'
107
+ replace deep_merge(*hashes)
108
+ end
109
+ end
110
+
111
+
112
+ module Struct::Mergeable
113
+ def add(*hashes)
114
+ Deprecation.warn 'Flex::Variables#add', 'Variables#deep_merge!'
115
+ replace deep_merge(*hashes)
116
+ end
117
+ end
118
+
119
+
120
+ module Loader
121
+ NEW_MODULE = Templates
122
+ extend Deprecation::Module
123
+ end
124
+
125
+
126
+ module ClassProxy::Loader
127
+ NEW_MODULE = ClassProxy::Templates
128
+ extend Deprecation::Module
129
+ end
130
+
131
+
132
+ module ClassProxy::Templates
133
+ module Doc
134
+ def info(*names)
135
+ Deprecation.warn 'flex.info', 'elastics.doc'
136
+ doc *names
137
+ end
138
+ end
139
+ end
140
+
141
+
142
+ module Result::Collection
143
+ NEW_MODULE = Struct::Paginable
144
+ extend Deprecation::Module
145
+ end
146
+
147
+
148
+ module Model
149
+ def self.included(base)
150
+ if defined?(Elastics::ModelIndexer)
151
+ Deprecation.warn 'Flex::Model', 'Elastics::ModelIndexer'
152
+ base.send :include, Elastics::ModelIndexer
153
+ else
154
+ raise NotImplementedError, %(Elastics does not include "Flex::Model" anymore. Please, require the "elastics-models" gem, and include "Elastics::ModelIndexer" instead.)
155
+ end
156
+ end
157
+ end
158
+
159
+
160
+ module RelatedModel
161
+ def self.included(base)
162
+ if defined?(Elastics::ModelSyncer)
163
+ Deprecation.warn 'Flex::RelatedModel', 'Elastics::ModelSyncer'
164
+ base.send :include, Elastics::ModelSyncer
165
+ else
166
+ raise NotImplementedError, %(Elastics does not include "Flex::RelatedModel" anymore. Please, require the "elastics-models" gem, and include "Elastics::ModelSyncer" instead.)
167
+ end
168
+ end
169
+ end
170
+
171
+ %w[Templates ModelSyncer ModelIndexer ActiveModel].each do |mod|
172
+ module_eval <<-ruby
173
+ if defined?(#{mod})
174
+ module #{mod}
175
+ class << self
176
+ alias_method :original_included, :included
177
+ def included(base)
178
+ original_included(base)
179
+
180
+ def base.flex
181
+ elastics
182
+ end
183
+
184
+ def base.elastics_result(result)
185
+ respond_to?(:flex_result) ? flex_result(result) : result
186
+ end
187
+
188
+ end
189
+ end
190
+ alias_method :flex, :elastics if method_defined?(:elastics)
191
+ end
192
+ end
193
+ ruby
194
+ end
195
+
196
+ module Legacy
197
+
198
+ extend self
199
+
200
+ def fix_models
201
+ (Elastics::Conf.elastics_models + Elastics::Conf.elastics_active_models).each do |mod|
202
+ mod = eval("::#{mod}") if mod.is_a?(String)
203
+ mod.class_eval do
204
+ alias_method :flex_id, :elastics_id if method_defined?(:elastics_id)
205
+ alias_method :flex_type, :elastics_type if method_defined?(:elastics_type)
206
+ alias_method :flex_index, :elastics_index if method_defined?(:elastics_index)
207
+ alias_method :flex_parent, :elastics_parent if method_defined?(:elastics_parent)
208
+ alias_method :flex_routing, :elastics_routing if method_defined?(:elastics_routing)
209
+ end
210
+ end
211
+ end
212
+
213
+ end
214
+ end
@@ -0,0 +1,4 @@
1
+ require 'elastics-client'
2
+ require 'elastics/deprecation'
3
+
4
+ Flex = Elastics
data/lib/flex/rails.rb ADDED
@@ -0,0 +1 @@
1
+ raise NotImplementedError, %(The "flex/rails" file has been replaced by the "elastics-rails" gem. Please, use "elastics-rails" in place of "flex" in Rails applications. Change "gem 'flex', require => 'flex/rails'" to "gem 'elastics-rails'", and add the `elastics-legacy` gem to your Gemfile. Please, read the upgrade notes at http://elastics.github.io/elastics/doc/7-Tutorials/2-Migrate-from-0.x.html.)
metadata ADDED
@@ -0,0 +1,70 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: elastics-legacy
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.5
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Domizio Demichelis
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-08-20 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: elastics-client
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - '='
20
+ - !ruby/object:Gem::Version
21
+ version: 1.0.5
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.0.5
30
+ description: Provides out-of-the box legacy compatibility (with flex and old versions).
31
+ Use it for a smooth migration to the new gems.
32
+ email: dd.nexus@gmail.com
33
+ executables: []
34
+ extensions: []
35
+ extra_rdoc_files: []
36
+ files:
37
+ - LICENSE
38
+ - README.md
39
+ - VERSION
40
+ - elastics-legacy.gemspec
41
+ - lib/elastics-legacy.rb
42
+ - lib/elastics/deprecation.rb
43
+ - lib/flex/rails.rb
44
+ homepage: http://elastics.github.io/elastics
45
+ licenses:
46
+ - MIT
47
+ post_install_message:
48
+ rdoc_options:
49
+ - --charset=UTF-8
50
+ require_paths:
51
+ - lib
52
+ required_ruby_version: !ruby/object:Gem::Requirement
53
+ none: false
54
+ requirements:
55
+ - - ! '>='
56
+ - !ruby/object:Gem::Version
57
+ version: '0'
58
+ required_rubygems_version: !ruby/object:Gem::Requirement
59
+ none: false
60
+ requirements:
61
+ - - ! '>='
62
+ - !ruby/object:Gem::Version
63
+ version: 1.3.6
64
+ requirements: []
65
+ rubyforge_project:
66
+ rubygems_version: 1.8.25
67
+ signing_key:
68
+ specification_version: 3
69
+ summary: Adds legacy compatibility and deprecations warnings.
70
+ test_files: []