sugar-high 0.6.3 → 0.7.0
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/CHANGELOG.md +5 -0
- data/Gemfile +0 -2
- data/VERSION +1 -1
- data/lib/sugar-high/alias.rb +17 -17
- data/lib/sugar-high/arguments.rb +6 -6
- data/lib/sugar-high/array.rb +23 -19
- data/lib/sugar-high/blank.rb +2 -2
- data/lib/sugar-high/delegate.rb +2 -2
- data/lib/sugar-high/enumerable.rb +9 -9
- data/lib/sugar-high/file_ext.rb +1 -1
- data/lib/sugar-high/hash.rb +5 -5
- data/lib/sugar-high/includes.rb +7 -7
- data/lib/sugar-high/math.rb +1 -1
- data/lib/sugar-high/methods.rb +1 -1
- data/lib/sugar-high/module.rb +4 -4
- data/lib/sugar-high/numeric.rb +4 -4
- data/lib/sugar-high/path.rb +10 -10
- data/lib/sugar-high/properties.rb +12 -12
- data/lib/sugar-high/regexp.rb +3 -3
- data/lib/sugar-high/rspec/matchers/have_aliases.rb +8 -8
- data/lib/sugar-high/string.rb +1 -1
- data/spec/sugar-high/alias_spec.rb +21 -21
- data/spec/sugar-high/arguments_spec.rb +16 -16
- data/spec/sugar-high/array_spec.rb +39 -33
- data/spec/sugar-high/blank_spec.rb +3 -3
- data/spec/sugar-high/delegate_spec.rb +2 -2
- data/spec/sugar-high/file_spec.rb +4 -4
- data/spec/sugar-high/hash_spec.rb +8 -3
- data/spec/sugar-high/kind_of_spec.rb +38 -39
- data/spec/sugar-high/methods_spec.rb +5 -5
- data/spec/sugar-high/numeric_spec.rb +4 -5
- data/spec/sugar-high/path_spec.rb +20 -20
- data/spec/sugar-high/properties_spec.rb +11 -11
- data/spec/sugar-high/rails/concerns_spec.rb +3 -3
- data/spec/sugar-high/regexp_spec.rb +2 -2
- data/sugar-high.gemspec +11 -14
- metadata +38 -24
- data/spec/sugar-high/delegate_defined_spec.rb +0 -14
@@ -3,14 +3,14 @@ require 'sugar-high/blank'
|
|
3
3
|
|
4
4
|
describe "SugarHigh" do
|
5
5
|
describe "Blank ext" do
|
6
|
-
describe '#blank' do
|
6
|
+
describe '#blank' do
|
7
7
|
it "nil and empty string should be blank" do
|
8
8
|
nil.blank?.should be_true
|
9
9
|
''.blank?.should be_true
|
10
10
|
end
|
11
11
|
end
|
12
|
-
|
13
|
-
describe '#empty' do
|
12
|
+
|
13
|
+
describe '#empty' do
|
14
14
|
it "nil and empty string should be empty" do
|
15
15
|
nil.empty?.should be_true
|
16
16
|
''.empty?.should be_true
|
@@ -8,12 +8,12 @@ end
|
|
8
8
|
|
9
9
|
class Context
|
10
10
|
delegate :act, :to => :actor
|
11
|
-
|
11
|
+
|
12
12
|
def actor
|
13
13
|
Actor.new
|
14
14
|
end
|
15
15
|
end
|
16
16
|
|
17
|
-
describe 'delegate NOT already defined' do
|
17
|
+
describe 'delegate NOT already defined' do
|
18
18
|
specify { Context.new.act.should == 'actor' }
|
19
19
|
end
|
@@ -4,7 +4,7 @@ require 'sugar-high/file'
|
|
4
4
|
describe "SugarHigh" do
|
5
5
|
describe "File" do
|
6
6
|
let(:empty_file) { fixture_file 'empty.txt' }
|
7
|
-
let(:non_empty_file) { fixture_file 'non-empty.txt'}
|
7
|
+
let(:non_empty_file) { fixture_file 'non-empty.txt'}
|
8
8
|
let(:replace_file) { fixture_file 'file.txt' }
|
9
9
|
let(:search_file) { fixture_file 'search_file.txt' }
|
10
10
|
|
@@ -14,7 +14,7 @@ describe "SugarHigh" do
|
|
14
14
|
|
15
15
|
describe '#self.blank?' do
|
16
16
|
it "should return true for an empty file" do
|
17
|
-
File.blank?(empty_file).should be_true
|
17
|
+
File.blank?(empty_file).should be_true
|
18
18
|
end
|
19
19
|
|
20
20
|
it "should return false for a NON-empty file" do
|
@@ -33,7 +33,7 @@ describe "SugarHigh" do
|
|
33
33
|
end
|
34
34
|
|
35
35
|
describe '#has_content?' do
|
36
|
-
|
36
|
+
pending "should find content in file using String argument" do
|
37
37
|
File.overwrite(search_file) do
|
38
38
|
'Find this line right here!'
|
39
39
|
end
|
@@ -41,7 +41,7 @@ describe "SugarHigh" do
|
|
41
41
|
File.has_content?(search_file, 'line left').should be_false
|
42
42
|
end
|
43
43
|
|
44
|
-
|
44
|
+
pending "should find content in file using Regexp argument" do
|
45
45
|
File.overwrite(search_file) do
|
46
46
|
'Find this line right here!'
|
47
47
|
end
|
@@ -10,9 +10,14 @@ describe "SugarHigh" do
|
|
10
10
|
end
|
11
11
|
end
|
12
12
|
|
13
|
-
describe '#hash_revert' do
|
13
|
+
describe '#hash_revert' do
|
14
|
+
# The way 1.8.7 orders Hashes is really strange. It is hard to write straight expectation here
|
14
15
|
it "should revert hash" do
|
15
|
-
{:a => 'hello', :b => 'hi', :c => 'hi'}.hash_revert
|
16
|
+
reverted_hash = {:a => 'hello', :b => 'hi', :c => 'hi'}.hash_revert
|
17
|
+
reverted_hash['hello'].should == [:a]
|
18
|
+
|
19
|
+
reverted_hash['hi'].should include :b, :c
|
20
|
+
reverted_hash['hi'].size.should == 2
|
16
21
|
end
|
17
22
|
|
18
23
|
it "should try keys in hash until triggered" do
|
@@ -26,6 +31,6 @@ describe "SugarHigh" do
|
|
26
31
|
it "should return nil if no key triggered" do
|
27
32
|
{:a => 'hello', :b => 'hi'}.try_keys([:x, :y, :z], :default => 'none').should == 'none'
|
28
33
|
end
|
29
|
-
end
|
34
|
+
end
|
30
35
|
end
|
31
36
|
end
|
@@ -3,99 +3,99 @@ require 'sugar-high/kind_of'
|
|
3
3
|
|
4
4
|
describe "SugarHigh" do
|
5
5
|
describe "Kind of helpers" do
|
6
|
-
describe '#any_kind_of?' do
|
6
|
+
describe '#any_kind_of?' do
|
7
7
|
context 'The number 3' do
|
8
8
|
before do
|
9
9
|
@obj = 3
|
10
10
|
end
|
11
|
-
|
11
|
+
|
12
12
|
it "should not be a kind of String or Symbol" do
|
13
13
|
@obj.any_kind_of?(String, Symbol).should be_false
|
14
14
|
end
|
15
15
|
end
|
16
|
-
|
16
|
+
|
17
17
|
context 'a String and a Symbol' do
|
18
18
|
before do
|
19
19
|
@obj_str = "Hello"
|
20
20
|
@obj_sym = :hello
|
21
21
|
end
|
22
|
-
|
22
|
+
|
23
23
|
it "should return true for a String" do
|
24
24
|
@obj_str.any_kind_of?(String, Symbol).should be_true
|
25
25
|
end
|
26
|
-
|
26
|
+
|
27
27
|
it "should return true for a File" do
|
28
28
|
@obj_sym.any_kind_of?(String, Symbol).should be_true
|
29
29
|
end
|
30
30
|
end
|
31
31
|
end
|
32
|
-
|
33
|
-
describe '#only_kind_of?' do
|
32
|
+
|
33
|
+
describe '#only_kind_of?' do
|
34
34
|
context 'labels and Fix numbers' do
|
35
35
|
before do
|
36
36
|
@valid_list = ["Hello", :hello, 7]
|
37
37
|
@bad_list = [ {:a => 4}, 'blip']
|
38
38
|
end
|
39
|
-
|
39
|
+
|
40
40
|
it "should be true for a list of labels and Fix numbers" do
|
41
41
|
@valid_list.only_kinds_of?(String, Symbol, Fixnum).should be_true
|
42
|
-
end
|
43
|
-
|
42
|
+
end
|
43
|
+
|
44
44
|
it "should be false for a list with a Hash" do
|
45
45
|
@bad_list.only_kinds_of?(String, Symbol, Fixnum).should be_false
|
46
|
-
end
|
46
|
+
end
|
47
47
|
end
|
48
48
|
end
|
49
|
-
|
50
|
-
|
51
|
-
describe '#kind_of_label?' do
|
49
|
+
|
50
|
+
|
51
|
+
describe '#kind_of_label?' do
|
52
52
|
before do
|
53
53
|
@obj_str = "Hello"
|
54
54
|
@obj_sym = :hello
|
55
55
|
@label_list = [@obj_str, @obj_sym]
|
56
|
-
@mix_list = [@obj_str, @obj_sym, 27]
|
56
|
+
@mix_list = [@obj_str, @obj_sym, 27]
|
57
57
|
end
|
58
|
-
|
58
|
+
|
59
59
|
it "should return true for a String" do
|
60
60
|
@obj_str.kind_of_label?.should be_true
|
61
61
|
end
|
62
|
-
|
62
|
+
|
63
63
|
it "should return true for a Symbol" do
|
64
64
|
@obj_sym.kind_of_label?.should be_true
|
65
65
|
end
|
66
|
-
|
66
|
+
|
67
67
|
it "should return true for a list of String and Symbols" do
|
68
68
|
@label_list.only_labels?.should be_true
|
69
69
|
end
|
70
|
-
|
70
|
+
|
71
71
|
it "should return false for a list of with non-label types" do
|
72
72
|
@mix_list.only_labels?.should be_false
|
73
73
|
end
|
74
74
|
end
|
75
|
-
|
76
|
-
describe '#select_kinds_of' do
|
75
|
+
|
76
|
+
describe '#select_kinds_of' do
|
77
77
|
before do
|
78
78
|
@obj_str = "Hello"
|
79
79
|
@obj_sym = :hello
|
80
80
|
@label_list = [@obj_str, @obj_sym]
|
81
|
-
@mix_list = [@obj_str, @obj_sym, 27]
|
81
|
+
@mix_list = [@obj_str, @obj_sym, 27]
|
82
82
|
end
|
83
|
-
|
83
|
+
|
84
84
|
it "should select all Symbols in list" do
|
85
85
|
@label_list.select_kinds_of(Symbol).should == [:hello]
|
86
86
|
end
|
87
87
|
end
|
88
|
-
|
88
|
+
|
89
89
|
context 'Symbols object' do
|
90
|
-
describe '#select_kinds_of' do
|
90
|
+
describe '#select_kinds_of' do
|
91
91
|
before do
|
92
92
|
@obj_str = "Hello"
|
93
93
|
@obj_sym = :hello
|
94
94
|
@label_kinds = Kinds.new Symbol, String
|
95
95
|
@label_list = [@obj_str, @obj_sym]
|
96
|
-
@mix_list = [@obj_str, @obj_sym, 27]
|
96
|
+
@mix_list = [@obj_str, @obj_sym, 27]
|
97
97
|
end
|
98
|
-
|
98
|
+
|
99
99
|
it "should select all Symbols in list" do
|
100
100
|
@mix_list.select_kinds_of(@label_kinds).should == ["Hello", :hello]
|
101
101
|
end
|
@@ -110,30 +110,29 @@ describe "SugarHigh" do
|
|
110
110
|
@label_list = [@obj_str, @obj_sym, @label_kinds]
|
111
111
|
end
|
112
112
|
|
113
|
-
it "should return true for a String" do
|
113
|
+
it "should return true for a String" do
|
114
114
|
# puts "label_kinds: #{@label_kinds.kinds}"
|
115
115
|
# puts "all kinds: #{@label_list.all_kinds}"
|
116
116
|
@label_list.all_kinds.should == [Symbol, String]
|
117
|
-
end
|
118
|
-
end
|
119
|
-
|
120
|
-
describe '#select_strings' do
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
120
|
+
describe '#select_strings' do
|
121
121
|
it "should map mixed array to String only array" do
|
122
122
|
[1, 'blip', [3, "hello"]].select_strings.should == ['blip']
|
123
|
-
end
|
123
|
+
end
|
124
124
|
end
|
125
125
|
|
126
|
-
describe '#select_labels' do
|
126
|
+
describe '#select_labels' do
|
127
127
|
it "should map mixed array to String only array" do
|
128
128
|
[1, :blap, 'blip', [3, "hello"]].select_labels.should include(:blap, 'blip')
|
129
|
-
end
|
129
|
+
end
|
130
130
|
end
|
131
131
|
|
132
|
-
describe '#select_only' do
|
132
|
+
describe '#select_only' do
|
133
133
|
it "should map mixed array to String only array" do
|
134
134
|
[1, :blap, 'blip', [3, "hello"]].select_only(:string).should include('blip')
|
135
|
-
end
|
136
|
-
end
|
135
|
+
end
|
136
|
+
end
|
137
137
|
end
|
138
138
|
end
|
139
|
-
|
@@ -11,20 +11,20 @@ class Abc
|
|
11
11
|
def howdy_kristian
|
12
12
|
'hi'
|
13
13
|
end
|
14
|
-
|
14
|
+
|
15
15
|
private
|
16
|
-
|
16
|
+
|
17
17
|
def humm_kristian
|
18
18
|
'hi'
|
19
|
-
end
|
20
|
-
end
|
19
|
+
end
|
20
|
+
end
|
21
21
|
|
22
22
|
describe "SugarHigh" do
|
23
23
|
describe "Methods" do
|
24
24
|
before do
|
25
25
|
@obj = Abc.new
|
26
26
|
end
|
27
|
-
|
27
|
+
|
28
28
|
it "should find all 3 methods saying 'hi' to kristian" do
|
29
29
|
@obj.get_methods(:all).sort.grep(/(.*)_kristian$/).should have(3).items
|
30
30
|
end
|
@@ -2,8 +2,8 @@ require 'spec_helper'
|
|
2
2
|
require 'sugar-high/numeric'
|
3
3
|
|
4
4
|
class Numeric
|
5
|
-
include NumberDslExt
|
6
|
-
end
|
5
|
+
include NumberDslExt
|
6
|
+
end
|
7
7
|
|
8
8
|
module Num
|
9
9
|
extend NumericCheckExt
|
@@ -24,7 +24,7 @@ describe "SugarHigh" do
|
|
24
24
|
Num.numeric?(12.3).should be_true
|
25
25
|
end
|
26
26
|
end
|
27
|
-
|
27
|
+
|
28
28
|
describe 'check_numeric!' do
|
29
29
|
it 'string "x1" is not numeric' do
|
30
30
|
lambda {Num.check_numeric!("x0")}.should raise_error
|
@@ -35,7 +35,7 @@ describe "SugarHigh" do
|
|
35
35
|
end
|
36
36
|
end
|
37
37
|
end
|
38
|
-
|
38
|
+
|
39
39
|
describe 'NumberDslExt' do
|
40
40
|
describe '#hundred' do
|
41
41
|
it '2 hundred is 200' do
|
@@ -49,4 +49,3 @@ describe "SugarHigh" do
|
|
49
49
|
end
|
50
50
|
end
|
51
51
|
end
|
52
|
-
|
@@ -1,68 +1,68 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
require 'sugar-high/path'
|
3
3
|
|
4
|
-
describe 'String path ext' do
|
5
|
-
describe '#path' do
|
4
|
+
describe 'String path ext' do
|
5
|
+
describe '#path' do
|
6
6
|
it "should return a String extended with PathString" do
|
7
7
|
path_str = "a/b/c".path
|
8
8
|
path_str.kind_of?(PathString).should be_true
|
9
9
|
path_str.respond_to?(:up).should be_true
|
10
10
|
path_str.respond_to?(:down).should be_true
|
11
11
|
end
|
12
|
-
end
|
12
|
+
end
|
13
13
|
end
|
14
14
|
|
15
|
-
describe 'PathString' do
|
16
|
-
describe '#up' do
|
15
|
+
describe 'PathString' do
|
16
|
+
describe '#up' do
|
17
17
|
it "should go up two folder levels before path" do
|
18
|
-
up_path = "a/b/c".path.up(2)
|
18
|
+
up_path = "a/b/c".path.up(2)
|
19
19
|
up_path.should == "../../a/b/c"
|
20
20
|
end
|
21
21
|
end
|
22
22
|
|
23
|
-
describe '#post_up' do
|
23
|
+
describe '#post_up' do
|
24
24
|
it "should go up two folder levels at end of path" do
|
25
|
-
up_path = "a/b/c".path.post_up(2)
|
25
|
+
up_path = "a/b/c".path.post_up(2)
|
26
26
|
up_path.should == "a/b/c/../.."
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
30
30
|
|
31
|
-
describe '#down' do
|
31
|
+
describe '#down' do
|
32
32
|
it "should go down two folder levels" do
|
33
|
-
dwn_path = "../../a/b/c".path.down(2)
|
33
|
+
dwn_path = "../../a/b/c".path.down(2)
|
34
34
|
dwn_path.should == "a/b/c"
|
35
35
|
end
|
36
|
-
end
|
36
|
+
end
|
37
37
|
|
38
|
-
describe '#down' do
|
38
|
+
describe '#down' do
|
39
39
|
it "should go down two folder levels at end of path" do
|
40
|
-
dwn_path = "a/b/c/../..".path.post_down(2)
|
40
|
+
dwn_path = "a/b/c/../..".path.post_down(2)
|
41
41
|
dwn_path.should == "a/b/c"
|
42
42
|
end
|
43
|
-
end
|
43
|
+
end
|
44
44
|
|
45
|
-
describe '#exists?' do
|
45
|
+
describe '#exists?' do
|
46
46
|
it "should be true that this spec file exist" do
|
47
47
|
"#{__FILE__}".path.exists?.should be_true
|
48
48
|
end
|
49
49
|
end
|
50
50
|
|
51
|
-
describe '#file?' do
|
51
|
+
describe '#file?' do
|
52
52
|
it "should be true that this spec file exist" do
|
53
53
|
"#{__FILE__}".path.file?.should be_true
|
54
54
|
end
|
55
55
|
end
|
56
56
|
|
57
|
-
describe '#dir?' do
|
57
|
+
describe '#dir?' do
|
58
58
|
it "should be false that this spec file is a directory" do
|
59
59
|
"#{__FILE__}".path.dir?.should be_false
|
60
60
|
end
|
61
|
-
end
|
61
|
+
end
|
62
62
|
|
63
|
-
describe '#symlink?' do
|
63
|
+
describe '#symlink?' do
|
64
64
|
it "should be false that this spec file is a symlink" do
|
65
65
|
"#{__FILE__}".path.symlink?.should be_false
|
66
66
|
end
|
67
|
-
end
|
67
|
+
end
|
68
68
|
end
|
@@ -3,7 +3,7 @@ require 'sugar-high/properties'
|
|
3
3
|
|
4
4
|
class CruiseShip
|
5
5
|
extend Properties
|
6
|
-
|
6
|
+
|
7
7
|
property :direction
|
8
8
|
property :speed, is(0..300)
|
9
9
|
end
|
@@ -12,36 +12,36 @@ describe 'Properties pack' do
|
|
12
12
|
let (:ship) { CruiseShip.new }
|
13
13
|
|
14
14
|
before do
|
15
|
-
ship.add_direction_listener(lambda {|x| puts "Oy... someone changed the direction to #{x}"})
|
15
|
+
ship.add_direction_listener(lambda {|x| puts "Oy... someone changed the direction to #{x}"})
|
16
16
|
end
|
17
|
-
|
17
|
+
|
18
18
|
it 'should listen and react when changing direction' do
|
19
19
|
ship.direction = "north"
|
20
20
|
end
|
21
|
-
|
21
|
+
|
22
22
|
it 'should listen and react when changing speed' do
|
23
23
|
ship.add_speed_listener(lambda {|x| puts "Oy... someone changed the speed to #{x}"})
|
24
24
|
ship.add_speed_listener(lambda {|x| puts "Yo, dude... someone changed the speed to #{x}"})
|
25
25
|
end
|
26
26
|
|
27
|
-
it 'should reflect on speed settings if in range or not' do
|
27
|
+
it 'should reflect on speed settings if in range or not' do
|
28
28
|
ship.speed = 200
|
29
29
|
ship.speed = 300
|
30
30
|
ship.speed = 301
|
31
31
|
ship.speed = -1
|
32
32
|
ship.speed = 2000
|
33
|
-
|
33
|
+
|
34
34
|
puts ship.direction
|
35
|
-
puts ship.speed
|
35
|
+
puts ship.speed
|
36
36
|
end
|
37
|
-
|
37
|
+
|
38
38
|
it 'should remove listener' do
|
39
39
|
ship.remove_speed_listener(1)
|
40
40
|
ship.speed = 200
|
41
|
-
ship.speed = 350
|
42
|
-
|
41
|
+
ship.speed = 350
|
42
|
+
|
43
43
|
puts ship.direction
|
44
|
-
puts ship.speed
|
44
|
+
puts ship.speed
|
45
45
|
end
|
46
46
|
end
|
47
47
|
|