Module: Gibbler

Defined in:
lib/gibbler.rb,
lib/gibbler.rb,
lib/gibbler.rb,
lib/gibbler/aliases.rb,
lib/gibbler/history.rb

Overview

Gibbler

“Hola, Tanneritos”

Defined Under Namespace

Modules: Array, Complex, DateTime, File, Hash, History, Nil, Object, Range, String, Time, VERSION Classes: BadDigest, Digest, Error, NoHistory, NoRevert

Constant Summary collapse

@@gibbler_debug =
false
@@gibbler_digest_type =
::Digest::SHA1

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.default_baseObject

Returns the value of attribute default_base.



33
34
35
# File 'lib/gibbler.rb', line 33

def default_base
  @default_base
end

.secretObject

Returns the value of attribute secret.



33
34
35
# File 'lib/gibbler.rb', line 33

def secret
  @secret
end

Class Method Details

.debug=(v) ⇒ Object



236
# File 'lib/gibbler.rb', line 236

def self.debug=(v);  @@gibbler_debug = v; end

.debug?Boolean

Returns the current debug status (true or false)

Returns:

  • (Boolean)


233
# File 'lib/gibbler.rb', line 233

def self.debug?;      @@gibbler_debug; end

.digest(str, digest_type = nil) ⇒ Object

Sends str to Digest::SHA1.hexdigest. If another digest class has been specified, that class will be used instead. If Gibbler.secret is set, str will be prepended with the value.

See: digest_type



246
247
248
249
250
251
252
# File 'lib/gibbler.rb', line 246

def self.digest(str, digest_type=nil)
  digest_type ||= @@gibbler_digest_type
  str = [Gibbler.secret, str].join(':') unless Gibbler.secret.nil?
  dig = digest_type.hexdigest(str)
  dig = dig.to_i(16).to_s(Gibbler.default_base) if 16 != Gibbler.default_base
  dig
end

.digest_typeObject

Returns the current digest class.



238
# File 'lib/gibbler.rb', line 238

def self.digest_type; @@gibbler_digest_type; end

.digest_type=(v) ⇒ Object

Specify a different digest class. The default is Digest::SHA1. You could try Digest::SHA256 by doing this:

Object.gibbler_digest_type = Digest::SHA256


229
230
231
# File 'lib/gibbler.rb', line 229

def self.digest_type=(v)
  @@gibbler_digest_type = v
end

.disable_debugObject



235
# File 'lib/gibbler.rb', line 235

def self.disable_debug;  @@gibbler_debug = false; end

.enable_debugObject



234
# File 'lib/gibbler.rb', line 234

def self.enable_debug;  @@gibbler_debug = true; end

.gibbler_debug(*args) ⇒ Object



254
255
256
257
# File 'lib/gibbler.rb', line 254

def self.gibbler_debug(*args)
  return unless Gibbler.debug?
  p args
end

.included(obj) ⇒ Object

Raises an exception. The correct usage is to include a Gibbler::Object:

  • Gibbler::Complex

  • Gibbler::String

  • Gibbler::Object

  • etc …



264
265
266
# File 'lib/gibbler.rb', line 264

def self.included(obj)
  raise "You probably want to include Gibbler::Complex or Gibbler::Object"
end