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.
@@ -1,7 +1,7 @@
1
- class String
1
+ class String
2
2
  def path
3
3
  self.extend PathString
4
- end
4
+ end
5
5
  end
6
6
 
7
7
  module PathString
@@ -15,38 +15,38 @@ module PathString
15
15
  def to_dir option=nil
16
16
  raise ArgumentError, "Dir doesn't exist" if option == :raise && !File.directory?(self)
17
17
  Dir.new(self) if File.directory? self
18
- end
18
+ end
19
19
  alias_method :new_dir, :to_dir
20
20
  alias_method :dir, :to_dir
21
21
 
22
- def to_symlink new_path #, option=nil
22
+ def to_symlink new_path #, option=nil
23
23
  # raise ArgumentError, "New link location doesn't exist" if option == :raise && !File.exist?(new_path)
24
24
  File.symlink(self, new_path)
25
25
  end
26
26
  alias_method :new_symlink, :to_symlink
27
27
  alias_method :symlink, :to_symlink
28
-
29
- def exists?
28
+
29
+ def exists?
30
30
  File.exist? self
31
31
  end
32
32
  alias_method :there?, :exists?
33
33
 
34
- def file?
34
+ def file?
35
35
  File.file? self
36
36
  end
37
37
  alias_method :is_file?, :file?
38
38
 
39
- def dir?
39
+ def dir?
40
40
  File.directory? self
41
41
  end
42
42
  alias_method :is_dir?, :dir?
43
43
  alias_method :directory?, :dir
44
44
 
45
- def symlink?
45
+ def symlink?
46
46
  File.symlink? self
47
47
  end
48
48
  alias_method :is_symlink?, :symlink?
49
-
49
+
50
50
  def up lv
51
51
  ('../' * lv) + self
52
52
  end
@@ -1,39 +1,39 @@
1
1
  # From: http://www.infoq.com/articles/properties-metaprogramming
2
2
 
3
- module Properties
4
- def self.extended(base)
3
+ module Properties
4
+ def self.extended(base)
5
5
  base.class_eval %{
6
- def fire_event_for(sym, arg)
6
+ def fire_event_for(sym, arg)
7
7
  return if !@listener[sym]
8
- @listener[sym].each {|l| l.call(arg) }
9
- end
8
+ @listener[sym].each {|l| l.call(arg) }
9
+ end
10
10
  }
11
11
  end
12
-
12
+
13
13
  # def property(sym, &predicate)
14
14
  def property(sym, predicate=nil)
15
15
  define_method(sym) do
16
16
  instance_variable_get("@#{sym}")
17
17
  end
18
-
18
+
19
19
  define_method("#{sym}=") do |arg|
20
20
  return if !predicate.call(arg) if predicate
21
21
  instance_variable_set("@#{sym}", arg)
22
22
  fire_event_for(sym, arg)
23
23
  end
24
-
25
- define_method("add_#{sym}_listener") do |x|
24
+
25
+ define_method("add_#{sym}_listener") do |x|
26
26
  @listener ||= {}
27
27
  @listener[sym] ||= []
28
28
  @listener[sym] << x
29
29
  end
30
-
31
- define_method("remove_#{sym}_listener") do |x|
30
+
31
+ define_method("remove_#{sym}_listener") do |x|
32
32
  return if !@listener[sym]
33
33
  @listener[sym].delete_at(x)
34
34
  end
35
35
  end
36
-
36
+
37
37
  def is(test)
38
38
  lambda {|val| test === val }
39
39
  end
@@ -1,4 +1,4 @@
1
- class String
1
+ class String
2
2
  def to_regexp
3
3
  /#{Regexp.escape(self)}/
4
4
  end
@@ -7,7 +7,7 @@ end
7
7
  class Regexp
8
8
  def to_regexp
9
9
  self
10
- end
10
+ end
11
11
  end
12
12
 
13
13
  class MatchData
@@ -16,7 +16,7 @@ class MatchData
16
16
  end
17
17
 
18
18
  def offset_before
19
- offset(0)[0] -1
19
+ offset(0)[0] -1
20
20
  end
21
21
  end
22
22
 
@@ -4,7 +4,7 @@ module RSpec
4
4
  end
5
5
 
6
6
  module RSpec::Sugar
7
- module Matchers
7
+ module Matchers
8
8
  class HaveAliases
9
9
 
10
10
  attr_reader :method, :alias_methods, :cause
@@ -15,16 +15,16 @@ module RSpec::Sugar
15
15
  @cause = []
16
16
  end
17
17
 
18
- def matches? obj, options={}
18
+ def matches? obj, options={}
19
19
  if !obj.respond_to? method
20
20
  cause << "Method ##{method} to alias does NOT exist"
21
21
  return nil
22
22
  end
23
-
24
- alias_methods.each do |method|
25
- cause << "Alias method ##{method} does NOT exist" if !is_alias? obj, alias_meth
26
- end
27
- cause.empty?
23
+
24
+ alias_methods.each do |method|
25
+ cause << "Alias method ##{method} does NOT exist" if !is_alias? obj, alias_meth
26
+ end
27
+ cause.empty?
28
28
  end
29
29
 
30
30
  def is_alias? obj, alias_meth
@@ -41,7 +41,7 @@ module RSpec::Sugar
41
41
 
42
42
  def negative_failure_message
43
43
  "Did not expect aliases to exist but, #{cause_msg}".gsub /NOT/, ''
44
- end
44
+ end
45
45
  end
46
46
 
47
47
  def have_aliases method, *alias_methods
@@ -16,7 +16,7 @@ class String
16
16
 
17
17
 
18
18
  def concats *args
19
- args.inject(self) do |res, arg|
19
+ args.inject(self) do |res, arg|
20
20
  res << arg.to_s
21
21
  res
22
22
  end
@@ -1,6 +1,6 @@
1
1
  # multi_alias name, :create => :new, :insert_into => [:inject_into, :update], :read => :X_content
2
- # :options => :after
3
- #
2
+ # :options => :after
3
+ #
4
4
  # create_xxx becomes new_xxx
5
5
  # insert_into_xxx becomes inject_into_xxx and update_xxx
6
6
  # read_xxx becomes xxx_content (overriding default :after action to insert at the X)
@@ -15,7 +15,7 @@ class Abc
15
15
  multi_alias :_after_ => :kristian, :hello => :howdy
16
16
  end
17
17
 
18
- class Xyz
18
+ class Xyz
19
19
  def hello_kristian
20
20
  'hi'
21
21
  end
@@ -23,46 +23,46 @@ class Xyz
23
23
  multi_alias :kristian, :hello => :alloha
24
24
  end
25
25
 
26
- class Ged
26
+ class Ged
27
27
  def kristian_hello
28
28
  'hejsa'
29
29
  end
30
-
31
- multi_alias :_before_ => :kristian, :hejsa => :hello, :_direction_ => :reverse
32
- end
30
+
31
+ multi_alias :_before_ => :kristian, :hejsa => :hello, :_direction_ => :reverse
32
+ end
33
33
 
34
34
  class Plural
35
35
  def monster
36
36
  'monster'
37
37
  end
38
-
38
+
39
39
  alias_for :monster, :pluralize => true
40
- end
40
+ end
41
41
 
42
42
  class Plural2
43
43
  def monster
44
44
  'monster'
45
45
  end
46
-
46
+
47
47
  alias_for :monster, :beast, :pluralize => true
48
- end
48
+ end
49
49
 
50
50
 
51
51
  class Singular
52
52
  def monsters
53
53
  'monsters'
54
54
  end
55
-
55
+
56
56
  alias_for :monsters, :singularize => true
57
- end
57
+ end
58
58
 
59
59
  class Singular2
60
60
  def monsters
61
61
  'monsters'
62
62
  end
63
-
63
+
64
64
  alias_for :monsters, :beasts, :singularize => true
65
- end
65
+ end
66
66
 
67
67
 
68
68
  class AliasHash
@@ -74,9 +74,9 @@ class AliasHash
74
74
  'monster'
75
75
  end
76
76
 
77
-
77
+
78
78
  alias_hash :monsters => :beasts, :singularize => true
79
- end
79
+ end
80
80
 
81
81
 
82
82
  class Wow
@@ -93,11 +93,11 @@ class Wow
93
93
  end
94
94
  }
95
95
  end
96
- multi_alias REGISTRATION_LINKS.merge(:_after_ => :link)
96
+ multi_alias REGISTRATION_LINKS.merge(:_after_ => :link)
97
97
  end
98
-
98
+
99
99
  describe "SugarHigh" do
100
- describe "Arguments" do
100
+ describe "Arguments" do
101
101
  context 'should alias :hello_kristian with :howdy_kristian ' do
102
102
  it "should find alias" do
103
103
  Abc.new.respond_to?(:howdy_kristian).should be_true
@@ -131,7 +131,7 @@ describe "SugarHigh" do
131
131
  it "should find nice aliases from using alias_hash" do
132
132
  ah = AliasHash.new
133
133
  ah.beasts.should == 'monsters'
134
- ah.beast.should == 'monster'
134
+ ah.beast.should == 'monster'
135
135
  end
136
136
 
137
137
 
@@ -3,13 +3,13 @@ require 'sugar-high/arguments'
3
3
 
4
4
  describe "SugarHigh" do
5
5
  describe "Arguments" do
6
-
6
+
7
7
  context 'Symbol' do
8
8
  it "should return arg list with 'hello'" do
9
9
  :hello.args.should == ['hello']
10
10
  end
11
11
  end
12
-
12
+
13
13
  context 'String' do
14
14
  it "should return arg list with 'hello'" do
15
15
  :hello.args.should == ['hello']
@@ -28,23 +28,23 @@ describe "SugarHigh" do
28
28
  end
29
29
 
30
30
  it "should return the :hello => 'abe' " do
31
- [{:hi => :def}, 3, 4, :hi => 'abe'].last_arg.should == {:hi => 'abe'}
32
- [{:hi => :def}, [3,4, :hi => 'abe']].last_arg.should == {:hi => 'abe'}
31
+ [{:hi => :def}, 3, 4, {:hi => 'abe'}].last_arg.should == {:hi => 'abe'}
32
+ [{:hi => :def}, [3,4, {:hi => 'abe'}]].last_arg.should == {:hi => 'abe'}
33
33
  end
34
34
  end
35
35
  end
36
36
 
37
- describe '#last_option' do
37
+ describe '#last_option' do
38
38
  it "should return the last hash" do
39
- [3,4, :x => 3, :y => 5].last_option.should == {:x => 3, :y => 5}
39
+ [3,4, {:x => 3, :y => 5}].last_option.should == {:x => 3, :y => 5}
40
40
  end
41
41
  end
42
-
42
+
43
43
  describe "Last argument value" do
44
44
  context 'Last arg with default hello' do
45
45
  it "should return the arg value 'abe' " do
46
- [3,4, :hi => 'abe'].last_arg_value(:hi => :def).should == 'abe'
47
- [[3,4, :hi => 'abe']].last_arg_value(:hi => :def).should == 'abe'
46
+ [3,4, {:hi => 'abe'}].last_arg_value(:hi => :def).should == 'abe'
47
+ [[3,4, {:hi => 'abe'}]].last_arg_value(:hi => :def).should == 'abe'
48
48
  end
49
49
 
50
50
  it "should return the arg value :def " do
@@ -55,7 +55,7 @@ describe "SugarHigh" do
55
55
  [3,4].last_arg_value(:hi => :def).should == :def
56
56
  end
57
57
  end
58
- end
58
+ end
59
59
  end
60
60
 
61
61
  describe "Last argument" do
@@ -66,8 +66,8 @@ describe "SugarHigh" do
66
66
 
67
67
  it "should return the :hello => 'abe' " do
68
68
  last_arg({:hi => :def}, 3,4, :hi => 'abe').should == {:hi => 'abe'}
69
- last_arg({:hi => :def}, [3,4, :hi => 'abe']).should == {:hi => 'abe'}
70
- end
69
+ last_arg({:hi => :def}, [3,4, {:hi => 'abe'}]).should == {:hi => 'abe'}
70
+ end
71
71
  end
72
72
  end
73
73
 
@@ -75,7 +75,7 @@ describe "SugarHigh" do
75
75
  context 'Last arg with default hello' do
76
76
  it "should return the arg value 'abe' " do
77
77
  last_arg_value({:hi => :def}, 3,4, :hi => 'abe').should == 'abe'
78
- last_arg_value({:hi => :def}, [3,4, :hi => 'abe']).should == 'abe'
78
+ last_arg_value({:hi => :def}, [3,4, {:hi => 'abe'}]).should == 'abe'
79
79
  end
80
80
 
81
81
  it "should return the arg value :def " do
@@ -91,16 +91,16 @@ describe "SugarHigh" do
91
91
  describe "Last option" do
92
92
  context 'Last arg is Hash' do
93
93
  it "should return the last hash" do
94
- last_option(3,4, :x => 3, :y => 5).should == {:x => 3, :y => 5}
94
+ last_option(3,4, :x => 3, :y => 5).should == {:x => 3, :y => 5}
95
95
  end
96
96
  end
97
97
 
98
98
  context 'Last arg is NOT Hash' do
99
99
  it "should return an empty hash" do
100
- last_option(3,4,3).should == {}
100
+ last_option(3,4,3).should == {}
101
101
  end
102
102
  end
103
- end
103
+ end
104
104
  end
105
105
  end
106
106
 
@@ -4,7 +4,7 @@ require 'sugar-high/array'
4
4
  describe "SugarHigh" do
5
5
  describe "Array ext" do
6
6
 
7
- describe '#to_symbols' do
7
+ describe '#to_symbols' do
8
8
  it "should translate invalid array into empty array" do
9
9
  [1, nil].to_symbols.should == []
10
10
  end
@@ -14,90 +14,96 @@ describe "SugarHigh" do
14
14
  end
15
15
 
16
16
  it "should translate nested array of numbers and strings into symbols only array, including numbers" do
17
- [[1, 'blip', [3, "hello"]]].to_symbols_num.should == [:_1, :blip, :_3, :hello]
17
+ [[1, 'blip', [3, "hello"]]].to_symbols_num.should == [:_1, :blip, :_3, :hello]
18
18
  end
19
19
 
20
20
  it "should translate nested array of numbers and strings into symbols only array, including numbers" do
21
- [[1, 'blip', [1, "hello"]]].to_symbols_uniq.should include :blip, :hello
21
+ [[1, 'blip', [1, "hello"]]].to_symbols_uniq.should include :blip, :hello
22
22
  end
23
- end
23
+ end
24
24
 
25
- describe '#to_symbols!' do
25
+ describe '#to_symbols!' do
26
26
  it "should translate nested array of numbers and strings into symbols only array, excluding numbers" do
27
27
  x = [1, 'hello', 'blip', [3, "hello"]].to_symbols!
28
28
  x.should include :hello, :blip
29
29
  end
30
-
30
+
31
31
  it "should translate invalid array into empty array" do
32
32
  x = [1, nil].to_symbols!
33
33
  x.should == []
34
- end
34
+ end
35
35
  end
36
-
37
- describe '#to_strings' do
36
+
37
+ describe '#to_strings' do
38
38
  it "should translate nested array of numbers and strings into symbols only array, excluding numbers" do
39
39
  [1, 'blip', [3, "hello"]].to_strings.should == ['blip', 'hello']
40
- end
41
- end
40
+ end
41
+ end
42
42
 
43
- describe '#to_strings' do
43
+ describe '#to_strings' do
44
44
  it "should translate invalid array into empty array" do
45
45
  x = [1, nil].to_strings!
46
46
  x.should == []
47
- end
47
+ end
48
48
 
49
49
  it "should translate nested array of numbers and strings into symbols only array, excluding numbers" do
50
50
  x = [1, 'blip', [3, "hello"]].to_strings!
51
51
  x.should == ['blip', 'hello']
52
- end
53
- end
52
+ end
53
+ end
54
54
 
55
- describe '#flat_uniq' do
55
+ describe '#flat_uniq' do
56
56
  it "should flatten array, remove nils and make unique" do
57
57
  [1, 'blip', ['blip', nil, 'c'], nil].flat_uniq.should == [1, 'blip', 'c']
58
- end
58
+ end
59
59
 
60
60
  it "should return empty list if called on nil" do
61
61
  nil.flat_uniq.should == []
62
- end
63
- end
62
+ end
63
+ end
64
64
 
65
- describe '#flat_uniq!' do
65
+ describe '#flat_uniq!' do
66
66
  it "should translate invalid array into empty array" do
67
67
  x = [1, nil].to_strings!
68
68
  x.should == []
69
- end
69
+ end
70
70
 
71
71
  it "should flatten array, remove nils and make unique" do
72
72
  x = [1, 'blip', ['blip', nil, 'c'], nil]
73
73
  x.flat_uniq!
74
74
  x.should == [1, 'blip', 'c']
75
75
  end
76
- end
76
+ end
77
77
 
78
- describe '#sum' do
78
+ describe '#sum' do
79
79
  it "should add elements in array" do
80
80
  [1, 2, 3].extend(MathArray).sum.should == 6
81
- end
81
+ end
82
82
  end
83
83
 
84
- describe '#mean' do
84
+ describe '#mean' do
85
85
  it "should find mean of elements in array" do
86
86
  [1, 2, 3].extend(MathArray).mean.should == 2
87
- end
87
+ end
88
88
  end
89
89
 
90
- describe '#extract' do
90
+ describe '#extract' do
91
91
  it "should call method on each element in array" do
92
92
  ["a", "ab", "abc"].extract(:size).extend(MathArray).mean.should == 2
93
- end
94
- end
93
+ end
94
+ end
95
95
 
96
- describe '#none?' do
96
+ describe '#none?' do
97
97
  it "should be none if no real values in array" do
98
98
  [nil, nil].none?.should be_true
99
- nil.none?.should be_true
100
- end
101
- end
99
+ nil.none?.should be_true
100
+ end
101
+ end
102
+
103
+ describe '#select!' do
104
+ arr = [1, 2, 3, 4]
105
+ arr.select!{|el| el % 2 == 0}
106
+ arr.should == [2, 4]
107
+ end
102
108
  end
103
109
  end