ribbon 0.4.1 → 0.4.2

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/lib/ribbon.rb CHANGED
@@ -176,8 +176,12 @@ class Ribbon < BasicObject
176
176
  # Unwraps the +ribbon+ if it is wrapped and returns its hash. Returns +nil+ in
177
177
  # any other case.
178
178
  def self.extract_hash_from(ribbon)
179
- ribbon = ribbon.ribbon if ::Ribbon.wrapped? ribbon
180
- ribbon = ribbon.__hash__ if ::Ribbon.instance? ribbon
179
+ case ribbon
180
+ when ::Ribbon::Wrapper then ribbon.hash
181
+ when ::Ribbon then ribbon.__hash__
182
+ when ::Hash then ribbon
183
+ else nil
184
+ end
181
185
  end
182
186
 
183
187
  class << self
@@ -0,0 +1,20 @@
1
+ require 'ribbon'
2
+
3
+ class Ribbon < BasicObject
4
+ module CoreExt
5
+
6
+ # Methods to work with ribbons in arrays.
7
+ module Array
8
+
9
+ # If the last argument is a hash, removes and converts it to a ribbon,
10
+ # otherwise returns an empty ribbon.
11
+ def extract_options_as_ribbon!
12
+ ::Ribbon.new last.is_a?(Hash) ? pop : {}
13
+ end
14
+
15
+ end
16
+
17
+ ::Array.send :include, ::Ribbon::CoreExt::Array
18
+
19
+ end
20
+ end
@@ -16,7 +16,7 @@ class Ribbon < BasicObject
16
16
  # Patch version.
17
17
  #
18
18
  # Increments denote changes in implementation.
19
- PATCH = 1
19
+ PATCH = 2
20
20
 
21
21
  # Build version.
22
22
  #
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ribbon
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.4.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2012-01-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rookie
16
- requirement: &13129880 !ruby/object:Gem::Requirement
16
+ requirement: &8135320 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,7 +21,7 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *13129880
24
+ version_requirements: *8135320
25
25
  description: Ruby Object Notation. Inspired by JSON and OpenStruct.
26
26
  email: matheus.a.m.moreira@gmail.com
27
27
  executables: []
@@ -36,6 +36,7 @@ files:
36
36
  - Rakefile
37
37
  - lib/ribbon.rb
38
38
  - lib/ribbon/core_ext.rb
39
+ - lib/ribbon/core_ext/array.rb
39
40
  - lib/ribbon/core_ext/hash.rb
40
41
  - lib/ribbon/version.rb
41
42
  - lib/ribbon/wrapper.rb
@@ -54,7 +55,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
54
55
  version: '0'
55
56
  segments:
56
57
  - 0
57
- hash: -3778988951246687423
58
+ hash: 1590172254316391884
58
59
  required_rubygems_version: !ruby/object:Gem::Requirement
59
60
  none: false
60
61
  requirements:
@@ -63,7 +64,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
63
64
  version: '0'
64
65
  segments:
65
66
  - 0
66
- hash: -3778988951246687423
67
+ hash: 1590172254316391884
67
68
  requirements: []
68
69
  rubyforge_project:
69
70
  rubygems_version: 1.8.10