sugar-high 0.2.6 → 0.2.7

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.6
1
+ 0.2.7
@@ -17,6 +17,20 @@ class String
17
17
  end
18
18
 
19
19
  def last_option *args
20
+ default = last_arg({}, *args)
20
21
  last = args.flatten.last
21
- last.kind_of?(Hash) ? last : {}
22
+ last.kind_of?(Hash) ? last : default
23
+ end
24
+
25
+ def last_arg default, *args
26
+ last = args.flatten.last
27
+ last.kind_of?(Hash) ? last : default
28
+ end
29
+
30
+ def last_arg_value default, *args
31
+ last = args.flatten.last
32
+ raise ArgumentError, "Default value must be a Hash, was #{default}" if !default.kind_of? Hash
33
+ key = default.keys.first
34
+ return default[key] if !last.kind_of? Hash
35
+ last[key] ? last[key] : default[key]
22
36
  end
@@ -22,6 +22,34 @@ describe "SugarHigh" do
22
22
  end
23
23
  end
24
24
 
25
+ describe "Last argument" do
26
+ context 'Last arg with default hello' do
27
+ it "should return the default :hello" do
28
+ last_arg(:hello, 3,4).should == :hello
29
+ end
30
+
31
+ it "should return the :hello => 'abe' " do
32
+ last_arg({:hi => :def}, 3,4, :hi => 'abe').should == {:hi => 'abe'}
33
+ end
34
+ end
35
+ end
36
+
37
+ describe "Last argument value" do
38
+ context 'Last arg with default hello' do
39
+ it "should return the arg value 'abe' " do
40
+ last_arg_value({:hi => :def}, 3,4, :hi => 'abe').should == 'abe'
41
+ end
42
+
43
+ it "should return the arg value :def " do
44
+ last_arg_value({:hi => :def}, :hello => 'abe', :good => true).should == :def
45
+ end
46
+
47
+ it "should return the arg value :def " do
48
+ last_arg_value({:hi => :def}, 3,4 ).should == :def
49
+ end
50
+ end
51
+ end
52
+
25
53
  describe "Last option" do
26
54
  context 'Last arg is Hash' do
27
55
  it "should return the last hash" do
data/sugar-high.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{sugar-high}
8
- s.version = "0.2.6"
8
+ s.version = "0.2.7"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Kristian Mandrup"]
12
- s.date = %q{2010-09-13}
12
+ s.date = %q{2010-09-15}
13
13
  s.description = %q{More Ruby sugar - inspired by the 'zuker' project}
14
14
  s.email = %q{kmandrup@gmail.com}
15
15
  s.extra_rdoc_files = [
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 2
8
- - 6
9
- version: 0.2.6
8
+ - 7
9
+ version: 0.2.7
10
10
  platform: ruby
11
11
  authors:
12
12
  - Kristian Mandrup
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-09-13 00:00:00 +02:00
17
+ date: 2010-09-15 00:00:00 +02:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency