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.
@@ -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|