ribbon 0.4.1 → 0.4.2

Sign up to get free protection for your applications and to get access to all the features.
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