sugar-high 0.6.3 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,5 @@
1
+ # Changelog
2
+
3
+ ## 0.7.0
4
+
5
+ * Compatability changes in order to work on ruby 1.8.7 (stanislaw)
data/Gemfile CHANGED
@@ -1,7 +1,5 @@
1
1
  source 'http://rubygems.org'
2
2
 
3
- gem "activesupport", '>= 3.0.1'
4
-
5
3
  group :test, :development do
6
4
  gem "rspec", ">= 2.4.0"
7
5
  gem "rails", '>= 3.0.1'
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.6.3
1
+ 0.7.0
@@ -5,53 +5,53 @@ require 'sugar-high/array'
5
5
  require 'active_support/inflector'
6
6
 
7
7
  class Module
8
-
8
+
9
9
  # multi_alias name, :create => :new, :insert_into => [:inject_into, :update], :read => :X_content
10
- # :options => :after
11
- #
10
+ # :options => :after
11
+ #
12
12
  # create_xxx becomes new_xxx
13
13
  # insert_into_xxx becomes inject_into_xxx and update_xxx
14
14
  # read_xxx becomes xxx_content (overriding default :after action to insert at the X)
15
-
15
+
16
16
  def multi_alias *args
17
17
  name = case args.first
18
- when Symbol, String
18
+ when Symbol, String
19
19
  args.first.to_s
20
- when Hash
20
+ when Hash
21
21
  # default is :after
22
22
  args.first[:_before_] ? :before : :after
23
23
  end
24
-
24
+
25
25
  if name.kind_of? Symbol
26
26
  config_options = name
27
27
  options = args.first
28
28
  name = options[:"_#{name}_"]
29
29
  else
30
30
  options = args[1]
31
- end
32
-
31
+ end
32
+
33
33
  raise ArgumentError, "Name of method pattern to alias not specified. Please pass name as either first argument or as :_before_ or :_after_ option" if !name
34
34
 
35
35
  options.delete(:_after_)
36
36
  options.delete(:_before_)
37
37
  direction = options.delete(:_direction_)
38
-
38
+
39
39
  options = options.hash_revert if direction == :reverse
40
-
40
+
41
41
  options.each_pair do |original, aliases|
42
42
  alias_methods name.to_sym, original, [aliases].flatten, config_options
43
- end
43
+ end
44
44
  end
45
45
 
46
46
  def alias_methods name, original, aliases, config_options
47
- aliases.each do |alias_name|
47
+ aliases.each do |alias_name|
48
48
  new_alias = make_name(name, alias_name.to_s, config_options)
49
49
  original_name = make_name(name, original.to_s, config_options)
50
- begin
50
+ begin
51
51
  alias_method new_alias, original_name
52
52
  rescue
53
53
  raise ArgumentError, "Error creating alias for ##{original_name} with ##{new_alias}"
54
- end
54
+ end
55
55
  end
56
56
  end
57
57
 
@@ -59,7 +59,7 @@ class Module
59
59
  pluralize = hash.delete(:pluralize)
60
60
  singularize = hash.delete(:singularize)
61
61
  # option = :pluralize => pluralize, :singularize => singularize
62
-
62
+
63
63
  hash.each_pair do |original, alias_meth|
64
64
  alias_for original, alias_meth
65
65
  alias_for original.to_s.singularize, alias_meth.to_s.singularize, :singularize => true if singularize
@@ -85,7 +85,7 @@ class Module
85
85
  protected
86
86
 
87
87
  def make_name name, alias_name, config_options
88
- return alias_name.gsub(/X/, name.to_s) if alias_name =~ /X/
88
+ return alias_name.gsub(/X/, name.to_s) if alias_name =~ /X/
89
89
  case config_options
90
90
  when :before
91
91
  "#{name}_#{alias_name}"
@@ -2,13 +2,13 @@ class Array
2
2
  def args
3
3
  flatten.map{|a| a.args}.flatten
4
4
  end
5
-
5
+
6
6
  def last_option
7
7
  default = self.last_arg
8
8
  last = self.flatten.last
9
- last.kind_of?(Hash) ? last : default
10
- end
11
-
9
+ last.kind_of?(Hash) ? last : default
10
+ end
11
+
12
12
  def last_arg default = {}
13
13
  last = self.flatten.last
14
14
  last.kind_of?(Hash) ? last : default
@@ -20,7 +20,7 @@ class Array
20
20
  key = default.keys.first
21
21
  return default[key] if !last.kind_of? Hash
22
22
  last[key] ? last[key] : default[key]
23
- end
23
+ end
24
24
  end
25
25
 
26
26
  class Symbol
@@ -38,7 +38,7 @@ end
38
38
  def last_option *args
39
39
  default = last_arg({}, *args)
40
40
  last = args.flatten.last
41
- last.kind_of?(Hash) ? last : default
41
+ last.kind_of?(Hash) ? last : default
42
42
  end
43
43
 
44
44
  def last_arg default, *args
@@ -51,19 +51,19 @@ class Array
51
51
  def to_strings!
52
52
  self.flatten!
53
53
  self.select_labels!.map!(&:to_s)
54
- end
54
+ end
55
55
 
56
56
  def to_strings
57
57
  self.flatten.select_labels.map(&:to_s)
58
- end
58
+ end
59
59
 
60
60
  def to_filenames
61
61
  self.to_strings.map(&:underscore)
62
- end
62
+ end
63
63
 
64
64
  def to_filenames!
65
65
  self.to_strings!.map!(&:underscore)
66
- end
66
+ end
67
67
 
68
68
  def to_paths
69
69
  self.map(&:path)
@@ -76,32 +76,32 @@ class Array
76
76
 
77
77
  def file_join
78
78
  File.join(*self.flatten)
79
- end
79
+ end
80
80
 
81
81
  def to_files
82
82
  self.map{|fp| fp.path.to_file }
83
- self.extend FilesArray
83
+ self.extend FilesArray
84
84
  end
85
85
 
86
86
  def to_files!
87
87
  self.map!{|fp| fp.path.to_file }
88
- self.extend FilesArray
88
+ self.extend FilesArray
89
89
  end
90
-
90
+
91
91
  def none?
92
92
  self.flatten.compact.empty?
93
- end unless [].respond_to? :none?
94
-
93
+ end unless [].respond_to? :none?
94
+
95
95
  def flat_uniq
96
96
  self.flatten.compact.uniq
97
- end
97
+ end
98
98
 
99
99
  def flat_uniq!
100
100
  self.flatten!
101
101
  self.compact!
102
102
  self.uniq!
103
103
  self
104
- end
104
+ end
105
105
 
106
106
  def extract(sym)
107
107
  map { |e| e.send(sym) }
@@ -110,7 +110,11 @@ class Array
110
110
  # Repeat overall-used method here, to use it without Rails
111
111
  def extract_options!
112
112
  last.is_a?(::Hash) ? pop : {}
113
- end unless [].respond_to? :extract_options!
113
+ end unless [].respond_to? :extract_options!
114
+
115
+ def select! &block
116
+ replace select &block
117
+ end unless [].respond_to? :select!
114
118
  end
115
119
 
116
120
  module MathArray
@@ -120,22 +124,22 @@ module MathArray
120
124
 
121
125
  def mean
122
126
  (size > 0) ? sum.to_f / size : 0
123
- end
124
- end
127
+ end
128
+ end
125
129
 
126
130
  module FilesArray
127
131
  def delete_all!
128
- self.each do |f|
132
+ self.each do |f|
129
133
  f.delete! if f.kind_of?(File)
130
134
  end
131
135
  end
132
136
  end
133
137
 
134
- class NilClass
135
- def flat_uniq
138
+ class NilClass
139
+ def flat_uniq
136
140
  []
137
141
  end
138
-
142
+
139
143
  def none?
140
144
  true
141
145
  end
@@ -25,10 +25,10 @@ class Hash #:nodoc:
25
25
  alias_method :blank?, :empty?
26
26
  end
27
27
 
28
- class String
28
+ class String
29
29
  def blank?
30
30
  self !~ /\S/
31
31
  end unless "".respond_to? :blank
32
- end
32
+ end
33
33
 
34
34
 
@@ -1,5 +1,5 @@
1
1
  class Module
2
- unless self.respond_to? :delegate
2
+ unless respond_to? :delegate
3
3
  def delegate(*methods)
4
4
  options = methods.pop
5
5
  unless options.is_a?(Hash) && to = options[:to]
@@ -37,4 +37,4 @@ class Module
37
37
  end
38
38
  end
39
39
  end
40
- end
40
+ end
@@ -1,16 +1,16 @@
1
1
  module Enumerable
2
- def only_kinds_of? *kinds
3
- all?{|a| a.any_kind_of? *kinds }
2
+ def only_kinds_of? *kinds
3
+ all?{|a| a.any_kind_of? *kinds }
4
4
  end
5
5
 
6
6
  def only_labels?
7
- all?{|a| a.kind_of_label? }
7
+ all?{|a| a.kind_of_label? }
8
8
  end
9
9
 
10
10
  def only_numbers?
11
- all?{|a| a.kind_of_number? }
11
+ all?{|a| a.kind_of_number? }
12
12
  end
13
-
13
+
14
14
  def select_kinds_of *kinds
15
15
  select{|a| a.any_kind_of? *kinds }
16
16
  end
@@ -61,19 +61,19 @@ module Enumerable
61
61
  self
62
62
  end
63
63
 
64
- def select_only type
64
+ def select_only type
65
65
  const = type.kind_of_label? ? "#{type.to_s.camelize}".constantize : type
66
66
  select{|a| a.kind_of? const}
67
67
  end
68
68
 
69
- def select_only! type
69
+ def select_only! type
70
70
  const = type.kind_of_label? ? "#{type.to_s.camelize}".constantize : type
71
71
  select!{|a| a.kind_of? const}
72
72
  self
73
73
  end
74
-
74
+
75
75
  def all_kinds
76
- map do |a|
76
+ map do |a|
77
77
  case a
78
78
  when Kinds
79
79
  a.kinds
@@ -24,7 +24,7 @@ module SugarHigh
24
24
  rescue
25
25
  raise ArgumentError, ":before option must be a string or regular expression, was : #{options[:before]}"
26
26
  end
27
- end
27
+ end
28
28
 
29
29
  if options[:after]
30
30
  begin
@@ -9,18 +9,18 @@ class Hash
9
9
  rewritten_hash
10
10
  end
11
11
  end
12
-
12
+
13
13
  def hash_revert
14
14
  r = Hash.new {|h,k| h[k] = []}
15
15
  each {|k,v| r[v] << k}
16
16
  r
17
- end
18
-
17
+ end
18
+
19
19
  def try_keys *keys
20
20
  option = last_option keys
21
- keys.flatten.each do |key|
21
+ keys.flatten.each do |key|
22
22
  return self[key] if self[key]
23
- end
23
+ end
24
24
  return option[:default] if option[:default]
25
25
  nil
26
26
  end
@@ -9,29 +9,29 @@ class Module
9
9
  module_names.to_symbols.each do |name|
10
10
  class_eval %{
11
11
  #{name} \#{name.to_s.camelize}
12
- }
12
+ }
13
13
  end
14
- end
14
+ end
15
15
 
16
16
  def #{name}_from module_name, *sub_modules
17
17
  sub_modules.to_symbols.each do |name|
18
18
  class_eval %{
19
19
  #{name} \#{module_name.to_s.camelize}::\#{name.to_s.camelize}
20
- }
20
+ }
21
21
  end
22
- end
22
+ end
23
23
  }
24
24
  end
25
-
25
+
26
26
  def includes_and_extends *module_names
27
27
  includes module_names
28
28
  extends module_names
29
- end
29
+ end
30
30
 
31
31
  def includes_and_extends_from module_name, *sub_modules
32
32
  includes module_name, *sub_modules
33
33
  extends module_name, *sub_modules
34
- end
34
+ end
35
35
 
36
36
  alias_method :extends_and_includes, :includes_and_extends
37
37
  alias_method :extends_and_includes_from, :includes_and_extends_from
@@ -3,4 +3,4 @@ module Math
3
3
  0.4342944819032518
4
4
  end
5
5
  end
6
-
6
+
@@ -1,4 +1,4 @@
1
- class Object
1
+ class Object
2
2
  def get_methods *types
3
3
  types.inject([]) do |list, type|
4
4
  list << case type
@@ -13,16 +13,16 @@ def modules *module_names, &block
13
13
  module #{name.to_s.camelize}
14
14
  #{yield block if block}
15
15
  end
16
- }
16
+ }
17
17
  end
18
- end
18
+ end
19
19
 
20
20
  def nested_modules *module_names, &block
21
- module_names.flatten.inject([]) do |res, name|
21
+ module_names.flatten.inject([]) do |res, name|
22
22
  res << %{
23
23
  module #{name.to_s.camelize}
24
24
  #{yield block if block}
25
- end}
25
+ end}
26
26
  end.flatten.join("\n")
27
27
  end
28
28
 
@@ -6,17 +6,17 @@ module NumericCheckExt
6
6
 
7
7
  def check_numeric! arg
8
8
  raise ArgumentError, "Argument must be Numeric" if !is_numeric? arg
9
- end
9
+ end
10
10
  end
11
11
 
12
- module NumberDslExt
12
+ module NumberDslExt
13
13
  def thousand
14
14
  self * 1000
15
- end
15
+ end
16
16
 
17
17
  def hundred
18
18
  self * 100
19
- end
19
+ end
20
20
  end
21
21
 
22
22
  [Float, Numeric].each do |mod|