gibbler 0.6.1 → 0.6.2

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGES.txt CHANGED
@@ -1,8 +1,12 @@
1
1
  GIBBLER, CHANGES
2
2
 
3
- TODO: Calculate Proc based on running quietly executing it in a container
4
- which implements method_missing. Tally the order, number, and names
5
- of method calls.
3
+
4
+ #### 0.6.2 (2009-09-15) #################################
5
+
6
+ * FIXED: Enforce specific string format for Time objects. Fixes
7
+ an issue with Ruby 1.8.7 which formats the to_s value differently
8
+ than 1.8.6 and 1.9.1.
9
+ * ADDED: Support for NilClass, File, and URI
6
10
 
7
11
 
8
12
  #### 0.6.1 (2009-08-25) #################################
data/README.rdoc CHANGED
@@ -150,7 +150,7 @@ With the upgrade to Attic 0.4, the gibbled? method and object history is now ava
150
150
  == Known Issues
151
151
 
152
152
  * gibbler or gibbled? must be called at least once before gibbled? will be able to return a useful value (otherwise there is no previous digest value to compare to)
153
- * Digests for Bignum objects are different between (MRI) Ruby and JRuby. Does anyone know why?
153
+ * Digests for Bignum objects are different between Ruby 1.8, 1.9, and JRuby. Does anyone know why?
154
154
  * Digests for Proc objects are different between Ruby 1.8 and 1.9 because Proc.arity returns different values and 1.8 has no lambda? method.
155
155
 
156
156
 
data/gibbler.gemspec CHANGED
@@ -1,7 +1,7 @@
1
1
  @spec = Gem::Specification.new do |s|
2
2
  s.name = "gibbler"
3
3
  s.rubyforge_project = "gibbler"
4
- s.version = "0.6.1"
4
+ s.version = "0.6.2"
5
5
  s.summary = "Gibbler: Git-like hashes for Ruby objects"
6
6
  s.description = s.summary
7
7
  s.author = "Delano Mandelbaum"
data/lib/gibbler.rb CHANGED
@@ -13,7 +13,7 @@ module Gibbler
13
13
  #include Attic
14
14
  extend Attic
15
15
 
16
- VERSION = "0.6.1"
16
+ VERSION = "0.6.2"
17
17
 
18
18
  require 'gibbler/object'
19
19
  require 'gibbler/digest'
@@ -283,7 +283,7 @@ module Gibbler
283
283
  # Creates a digest for the current state of self.
284
284
  def __gibbler(h=self)
285
285
  klass = h.class
286
- value = h.nil? ? "\0" : h.utc.to_s
286
+ value = h.nil? ? "\0" : h.utc.strftime('%Y-%m-%d %H:%M:%S UTC')
287
287
  a = Gibbler.digest "%s:%d:%s" % [klass, value.size, value]
288
288
  gibbler_debug klass, a, [klass, value.size, value]
289
289
  a
@@ -327,8 +327,8 @@ module Gibbler
327
327
  # and VALUE is the string representation of the range.
328
328
  # e.g.
329
329
  #
330
- # (1..100) => Range:100:1..100 =>
331
- #
330
+ # (1..100) => Range:100:1..100 => d73ae2a7
331
+ # (1...100) => Range:99:1...100 => 46c8a7d0
332
332
  #
333
333
  # To use use method in other classes simply:
334
334
  #
@@ -356,7 +356,64 @@ module Gibbler
356
356
 
357
357
  end
358
358
 
359
+ # Creates a digest based on: <tt>CLASS:\0</tt>
360
+ #
361
+ # e.g.
362
+ #
363
+ # nil.gibbler # => 06fdf26b
364
+ #
365
+ module Nil
366
+ include Gibbler::Object
367
+
368
+ def self.included(obj)
369
+ obj.extend Attic
370
+ obj.attic :__gibbler_cache
371
+ end
372
+
373
+ # Creates a digest for the current state of self.
374
+ def __gibbler(h=self)
375
+ klass = h.class
376
+ a = Gibbler.digest "%s:%s" % [klass, "\0"]
377
+ gibbler_debug klass, a, [klass, "\0"]
378
+ a
379
+ end
380
+ end
359
381
 
382
+ # Creates a digest based on: <tt>CLASS:PATHLENGTH:PATH</tt>
383
+ # where PATHLENGTH is the length of the PATH string. PATH is
384
+ # not modified in any way (it is not converted to an absolute
385
+ # path).
386
+ #
387
+ # NOTE: You may expect this method to include other information
388
+ # like the file contents and modified date (etc...). The reason
389
+ # we do not is because Gibbler is concerned only about Ruby and
390
+ # not the outside world. There are many complexities in parsing
391
+ # file data and attributes which would make it difficult to run
392
+ # across platforms and Ruby versions / engines. If you want to
393
+ #
394
+ # e.g.
395
+ #
396
+ # File.new('.') # => c8bc8b3a
397
+ # File.new('/tmp') # => 3af85a19
398
+ # File.new('/tmp/') # => 92cbcb7d
399
+ #
400
+ module File
401
+ include Gibbler::Object
402
+
403
+ def self.included(obj)
404
+ obj.extend Attic
405
+ obj.attic :__gibbler_cache
406
+ end
407
+
408
+ # Creates a digest for the current state of self.
409
+ def __gibbler(h=self)
410
+ klass = h.class
411
+ value = h.nil? ? "\0" : h.path
412
+ a = Gibbler.digest "%s:%d:%s" % [klass, value.size, value]
413
+ gibbler_debug klass, a, [klass, value.size, value]
414
+ a
415
+ end
416
+ end
360
417
 
361
418
  ##--
362
419
  ## NOTE: this was used when Gibbler supported "include Gibbler". We
@@ -446,4 +503,20 @@ class Range
446
503
  include Gibbler::Range
447
504
  end
448
505
 
506
+ class NilClass
507
+ include Gibbler::Nil
508
+ end
509
+
510
+ module URI
511
+ class Generic
512
+ include Gibbler::String
513
+ end
514
+ end
449
515
 
516
+ class File
517
+ include Gibbler::File
518
+ end
519
+
520
+ class TempFile
521
+ include Gibbler::File
522
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gibbler
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.1
4
+ version: 0.6.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Delano Mandelbaum
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-08-25 00:00:00 -04:00
12
+ date: 2009-09-15 00:00:00 -04:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency