Class: Alexandria::BookProviders::AbstractProvider
- Inherits:
-
Object
- Object
- Alexandria::BookProviders::AbstractProvider
show all
- Includes:
- GetText
- Defined in:
- lib/alexandria/book_providers.rb,
lib/alexandria/ui/init.rb
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(name, fullname = nil) ⇒ AbstractProvider
Returns a new instance of AbstractProvider.
202
203
204
205
206
207
|
# File 'lib/alexandria/book_providers.rb', line 202
def initialize(name, fullname = nil)
@name = name
@fullname = (fullname || name)
@prefs = Preferences.new(self)
@prefs.add('enabled', _('Enabled'), true, [true, false])
end
|
Instance Attribute Details
#fullname ⇒ Object
Returns the value of attribute fullname.
200
201
202
|
# File 'lib/alexandria/book_providers.rb', line 200
def fullname
@fullname
end
|
#name ⇒ Object
Returns the value of attribute name.
200
201
202
|
# File 'lib/alexandria/book_providers.rb', line 200
def name
@name
end
|
#prefs ⇒ Object
Returns the value of attribute prefs.
199
200
201
|
# File 'lib/alexandria/book_providers.rb', line 199
def prefs
@prefs
end
|
Class Method Details
.abstract? ⇒ Boolean
270
271
272
|
# File 'lib/alexandria/book_providers.rb', line 270
def self.abstract?
!included_modules.include?(Singleton)
end
|
.unabstract ⇒ Object
FIXME: Clean up this complex abstract/concrete class system
279
280
281
282
283
284
285
|
# File 'lib/alexandria/book_providers.rb', line 279
def self.unabstract
include Singleton
undef_method :reinitialize
undef_method :name=
undef_method :fullname=
undef_method :remove
end
|
Instance Method Details
#<=>(provider) ⇒ Object
274
275
276
|
# File 'lib/alexandria/book_providers.rb', line 274
def <=>(provider)
fullname <=> provider.fullname
end
|
#abstract? ⇒ Boolean
266
267
268
|
# File 'lib/alexandria/book_providers.rb', line 266
def abstract?
self.class.abstract?
end
|
#action_name ⇒ Object
68
69
70
|
# File 'lib/alexandria/ui/init.rb', line 68
def action_name
'At' + name
end
|
#enabled ⇒ Object
209
210
211
|
# File 'lib/alexandria/book_providers.rb', line 209
def enabled
@prefs['enabled']
end
|
#reinitialize(fullname) ⇒ Object
218
219
220
221
222
223
224
225
226
227
228
|
# File 'lib/alexandria/book_providers.rb', line 218
def reinitialize(fullname)
@name << '_' << fullname.hash.to_s
@fullname = fullname
prefs = Alexandria::Preferences.instance
ary = prefs.abstract_providers
ary ||= []
ary << @name
prefs.abstract_providers = ary
message = variable_name('name') + '='
prefs.send(message, @fullname)
end
|
#remove ⇒ Object
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
|
# File 'lib/alexandria/book_providers.rb', line 230
def remove
prefs = Alexandria::Preferences.instance
if (ary = prefs.abstract_providers)
ary.delete(@name)
prefs.abstract_providers = ary
end
if (ary = prefs.providers_priority) && ary.include?(@name)
ary.delete(@name)
prefs.providers_priority = ary
end
self.prefs.each do |variable|
name = variable_name(variable)
prefs.remove_preference(name)
end
name = variable_name('name')
prefs.remove_preference(name)
prefs.save!
end
|
#toggle_enabled ⇒ Object
213
214
215
216
|
# File 'lib/alexandria/book_providers.rb', line 213
def toggle_enabled
old_value = enabled
@prefs.variable_named('enabled').new_value = !old_value
end
|
#transport ⇒ Object
261
262
263
264
|
# File 'lib/alexandria/book_providers.rb', line 261
def transport
config = Alexandria::Preferences.instance.http_proxy_config
config ? Net::HTTP.Proxy(*config) : Net::HTTP
end
|
#variable_name(object) ⇒ Object
249
250
251
252
253
254
255
256
257
258
259
|
# File 'lib/alexandria/book_providers.rb', line 249
def variable_name(object)
s = case object
when String
object
when Preferences::Variable
object.name
else
raise
end
@name.downcase + '_' + s
end
|