cowtech-extensions 1.3.1.0 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -1,3 +1,3 @@
1
- source 'http://rubygems.org'
1
+ source "http://rubygems.org"
2
2
 
3
- gem 'jeweler'
3
+ gem "jeweler"
data/Rakefile CHANGED
@@ -1,17 +1,17 @@
1
- require 'rubygems'
2
- require 'jeweler'
1
+ require "rubygems"
2
+ require "jeweler"
3
3
  require "./lib/cowtech-extensions/version.rb"
4
4
 
5
5
  Jeweler::Tasks.new do |gem|
6
- gem.name = "cowtech-extensions"
7
- gem.homepage = "http://github.com/ShogunPanda/cowtech-extensions"
8
- gem.license = "MIT"
9
- gem.summary = %Q{Several Ruby object enhancements.}
10
- gem.description = %Q{Several Ruby object enhancements.}
11
- gem.email = "shogun_panda@me.com"
12
- gem.authors = ["Shogun"]
13
- gem.version = Cowtech::Extensions::Version::STRING
14
- gem.add_dependency 'actionpack'
6
+ gem.name = "cowtech-extensions"
7
+ gem.homepage = "http://github.com/ShogunPanda/cowtech-extensions"
8
+ gem.license = "MIT"
9
+ gem.summary = %Q{Several Ruby object enhancements.}
10
+ gem.description = %Q{Several Ruby object enhancements.}
11
+ gem.email = "shogun_panda@me.com"
12
+ gem.authors = ["Shogun"]
13
+ gem.version = Cowtech::Extensions::Version::STRING
14
+ gem.add_dependency "actionpack"
15
15
  end
16
16
 
17
17
  Jeweler::RubygemsDotOrgTasks.new
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "cowtech-extensions"
8
- s.version = "1.3.1.0"
8
+ s.version = "1.4.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Shogun"]
12
- s.date = "2012-02-26"
12
+ s.date = "2012-04-16"
13
13
  s.description = "Several Ruby object enhancements."
14
14
  s.email = "shogun_panda@me.com"
15
15
  s.extra_rdoc_files = [
@@ -13,75 +13,75 @@ require "cowtech-extensions/math"
13
13
  require "cowtech-extensions/pathname"
14
14
 
15
15
  module Cowtech
16
- module Extensions
17
- def self.load!(what = [])
18
- what = ["object", "boolean", "string", "hash", "datetime", "math", "pathname"] if what.count == 0
19
- what.collect! { |w| w.to_s }
16
+ module Extensions
17
+ def self.load!(what = [])
18
+ what = ["object", "boolean", "string", "hash", "datetime", "math", "pathname"] if what.count == 0
19
+ what.collect! { |w| w.to_s }
20
20
 
21
- yield if block_given?
22
-
23
- if what.include?("object") then
24
- ::Object.class_eval do
25
- include Cowtech::Extensions::Object
26
- end
27
- end
28
-
29
- if what.include?("boolean") then
30
- ::TrueClass.class_eval do
31
- include Cowtech::Extensions::Object
32
- include Cowtech::Extensions::Boolean
33
- end
21
+ yield if block_given?
34
22
 
35
- ::FalseClass.class_eval do
36
- include Cowtech::Extensions::Object
37
- include Cowtech::Extensions::Boolean
38
- end
39
- end
40
-
41
- if what.include?("string") then
42
- ::String.class_eval do
43
- include Cowtech::Extensions::String
44
- end
45
- end
23
+ if what.include?("object") then
24
+ ::Object.class_eval do
25
+ include Cowtech::Extensions::Object
26
+ end
27
+ end
46
28
 
47
- if what.include?("hash") then
48
- ::Hash.class_eval do
49
- include Cowtech::Extensions::Hash
50
- end
51
- end
29
+ if what.include?("boolean") then
30
+ ::TrueClass.class_eval do
31
+ include Cowtech::Extensions::Object
32
+ include Cowtech::Extensions::Boolean
33
+ end
52
34
 
53
- if what.include?("datetime") then
54
- ::Time.class_eval do
55
- include Cowtech::Extensions::DateTime
56
- end
57
-
58
- ::Date.class_eval do
59
- include Cowtech::Extensions::DateTime
60
- end
35
+ ::FalseClass.class_eval do
36
+ include Cowtech::Extensions::Object
37
+ include Cowtech::Extensions::Boolean
38
+ end
39
+ end
61
40
 
62
- ::DateTime.class_eval do
63
- include Cowtech::Extensions::DateTime
64
- end
65
-
66
- ::Date.setup_localization
67
- ::Time.setup_localization
68
- ::DateTime.setup_localization
69
- end
41
+ if what.include?("string") then
42
+ ::String.class_eval do
43
+ include Cowtech::Extensions::String
44
+ end
45
+ end
70
46
 
71
- if what.include?("math") then
72
- ::Math.class_eval do
73
- include Cowtech::Extensions::Math
74
- end
75
- end
47
+ if what.include?("hash") then
48
+ ::Hash.class_eval do
49
+ include Cowtech::Extensions::Hash
50
+ end
51
+ end
76
52
 
77
- if what.include?("pathname") then
78
- require "pathname"
79
-
80
- ::Pathname.class_eval do
81
- include Cowtech::Extensions::Pathname
82
- end
83
- end
84
- end
85
- end
53
+ if what.include?("datetime") then
54
+ ::Time.class_eval do
55
+ include Cowtech::Extensions::DateTime
56
+ end
57
+
58
+ ::Date.class_eval do
59
+ include Cowtech::Extensions::DateTime
60
+ end
61
+
62
+ ::DateTime.class_eval do
63
+ include Cowtech::Extensions::DateTime
64
+ end
65
+
66
+ ::Date.setup_localization
67
+ ::Time.setup_localization
68
+ ::DateTime.setup_localization
69
+ end
70
+
71
+ if what.include?("math") then
72
+ ::Math.class_eval do
73
+ include Cowtech::Extensions::Math
74
+ end
75
+ end
76
+
77
+ if what.include?("pathname") then
78
+ require "pathname"
79
+
80
+ ::Pathname.class_eval do
81
+ include Cowtech::Extensions::Pathname
82
+ end
83
+ end
84
+ end
85
+ end
86
86
  end
87
87
 
@@ -5,19 +5,19 @@
5
5
  #
6
6
 
7
7
  module Cowtech
8
- module Extensions
9
- module Boolean
10
- extend ActiveSupport::Concern
8
+ module Extensions
9
+ module Boolean
10
+ extend ActiveSupport::Concern
11
11
 
12
- module InstanceMethods
13
- def to_i
14
- (self == true) ? 1 : 0
15
- end
16
-
17
- def value
18
- self
19
- end
20
- end
21
- end
22
- end
12
+ module InstanceMethods
13
+ def to_i
14
+ (self == true) ? 1 : 0
15
+ end
16
+
17
+ def value
18
+ self
19
+ end
20
+ end
21
+ end
22
+ end
23
23
  end
@@ -7,127 +7,127 @@
7
7
  require "active_support/all"
8
8
 
9
9
  module Cowtech
10
- module Extensions
11
- module DateTime
12
- extend ActiveSupport::Concern
13
-
14
- included do
15
- cattr_accessor :default_localized_months
16
- cattr_accessor :default_localized_short_months
17
- cattr_accessor :default_localized_days
18
- cattr_accessor :default_localized_short_days
19
- cattr_accessor :localized_months
20
- cattr_accessor :localized_short_months
21
- cattr_accessor :localized_days
22
- cattr_accessor :localized_short_days
23
- end
24
-
25
- module ClassMethods
26
- def setup_localization
27
- self.default_setup_locale
28
- self.setup_locale
29
- end
30
-
31
- def default_setup_locale
32
- self.default_localized_months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]
33
- self.default_localized_short_months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
34
- self.default_localized_days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
35
- self.default_localized_short_days = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]
36
- end
37
-
38
- def setup_locale
39
- self.localized_months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]
40
- self.localized_short_months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
41
- self.localized_days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
42
- self.localized_short_days = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]
43
- end
44
-
45
- def months(short = true)
46
- 12.times.collect { |i| {:value => (i + 1).to_s.rjust(2, "0"), :description => self.send("localized_#{short ? "short_" : ""}months").at(i) } }
47
- end
48
-
49
- def years(offset = 10, also_future = true)
50
- y = Date.today.year
51
- (y - offset..(also_future ? y + offset : y)).collect { |year| {:value => year} }
52
- end
53
-
54
- def custom_formats
55
- @@custom_formats ||= {
56
- "date" => "%d/%m/%Y",
57
- "time" => "%H:%M:%S",
58
- "date-8601" => "%Y-%m-%d",
59
- "date-time-8601" => "%Y-%m-%d %H:%M:%S",
60
- "iso-8601" => "%FT%T%z",
61
- "update" => "%d/%m/%Y %H:%M"
62
- }
63
- end
64
-
65
- def custom_format(key = "date")
66
- self.custom_formats.fetch(key.to_s, "%d/%m/%Y")
67
- end
68
-
69
- def easter(year = nil)
70
- day = 1
71
- month = 3
72
- year = Date.today.year if !year.is_integer?
73
-
74
- # GAUSS METHOD
75
- a = year % 19
76
- d = ((19 * a) + 24) % 30
77
- e = ((2 * (year % 4)) + (4 * (year % 7)) + (6 * d) + 5) % 7
78
-
79
- if d + e < 10 then
80
- day = d + e + 22
81
- else
82
- day = d + e - 9
83
- month = 4
84
- end
85
-
86
- if day == 26 && month == 4 then
87
- day = 19
88
- elsif day == 25 && month == 4 && d == 28 && e == 6 && a > 10 then
89
- day = 18
90
- end
91
- #END
92
-
93
- Date.civil(year, month, day)
94
- end
95
- end
96
-
97
- module InstanceMethods
98
- def lstrftime(format = nil)
99
- format = self.class.custom_format($1) if format =~ /^custom::(.+)/
100
- format ||= self.class.custom_format("update")
101
- unlocal = self.strftime(format)
102
-
103
- { "%a" => "short_days", "%A" => "days", "%b" => "short_months", "%B" => "months" }.each_pair do |specifier, method|
104
- if format.include?(specifier) then
105
- from = self.class.send('default_localized_' + method)
106
- to = self.class.send('localized_' + method)
107
- unlocal.gsub!(/(#{from.join("|")})/i) { |s| to[from.index($1)] }
108
- end
109
- end
110
-
111
- unlocal
112
- end
113
-
114
- def local_lstrftime(format = nil)
115
- (self.respond_to?(:in_time_zone) ? self.in_time_zone : self).lstrftime(format)
116
- end
117
-
118
- def padded_month
119
- self.month.to_s.rjust(2, "0")
120
- end
121
-
122
- def in_months
123
- ((self.year - 1) % 2000) * 12 + self.month
124
- end
125
-
126
- def utc_time
127
- ua = (self.respond_to?(:utc) ? self : self.to_datetime).utc
10
+ module Extensions
11
+ module DateTime
12
+ extend ActiveSupport::Concern
13
+
14
+ included do
15
+ cattr_accessor :default_localized_months
16
+ cattr_accessor :default_localized_short_months
17
+ cattr_accessor :default_localized_days
18
+ cattr_accessor :default_localized_short_days
19
+ cattr_accessor :localized_months
20
+ cattr_accessor :localized_short_months
21
+ cattr_accessor :localized_days
22
+ cattr_accessor :localized_short_days
23
+ end
24
+
25
+ module ClassMethods
26
+ def setup_localization
27
+ self.default_setup_locale
28
+ self.setup_locale
29
+ end
30
+
31
+ def default_setup_locale
32
+ self.default_localized_months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]
33
+ self.default_localized_short_months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
34
+ self.default_localized_days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
35
+ self.default_localized_short_days = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]
36
+ end
37
+
38
+ def setup_locale
39
+ self.localized_months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]
40
+ self.localized_short_months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
41
+ self.localized_days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
42
+ self.localized_short_days = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]
43
+ end
44
+
45
+ def months(short = true)
46
+ 12.times.collect { |i| {value: (i + 1).to_s.rjust(2, "0"), description: self.send("localized_#{short ? "short_" : ""}months").at(i) } }
47
+ end
48
+
49
+ def years(offset = 10, also_future = true)
50
+ y = Date.today.year
51
+ (y - offset..(also_future ? y + offset : y)).collect { |year| {value: year} }
52
+ end
53
+
54
+ def custom_formats
55
+ @@custom_formats ||= {
56
+ "date" => "%d/%m/%Y",
57
+ "time" => "%H:%M:%S",
58
+ "date-8601" => "%Y-%m-%d",
59
+ "date-time-8601" => "%Y-%m-%d %H:%M:%S",
60
+ "iso-8601" => "%FT%T%z",
61
+ "update" => "%d/%m/%Y %H:%M"
62
+ }
63
+ end
64
+
65
+ def custom_format(key = "date")
66
+ self.custom_formats.fetch(key.to_s, "%d/%m/%Y")
67
+ end
68
+
69
+ def easter(year = nil)
70
+ day = 1
71
+ month = 3
72
+ year = Date.today.year if !year.is_integer?
73
+
74
+ # GAUSS METHOD
75
+ a = year % 19
76
+ d = ((19 * a) + 24) % 30
77
+ e = ((2 * (year % 4)) + (4 * (year % 7)) + (6 * d) + 5) % 7
78
+
79
+ if d + e < 10 then
80
+ day = d + e + 22
81
+ else
82
+ day = d + e - 9
83
+ month = 4
84
+ end
85
+
86
+ if day == 26 && month == 4 then
87
+ day = 19
88
+ elsif day == 25 && month == 4 && d == 28 && e == 6 && a > 10 then
89
+ day = 18
90
+ end
91
+ #END
92
+
93
+ Date.civil(year, month, day)
94
+ end
95
+ end
96
+
97
+ module InstanceMethods
98
+ def lstrftime(format = nil)
99
+ format = self.class.custom_format($1) if format =~ /^custom::(.+)/
100
+ format ||= self.class.custom_format("update")
101
+ unlocal = self.strftime(format)
102
+
103
+ { "%a" => "short_days", "%A" => "days", "%b" => "short_months", "%B" => "months" }.each_pair do |specifier, method|
104
+ if format.include?(specifier) then
105
+ from = self.class.send('default_localized_' + method)
106
+ to = self.class.send('localized_' + method)
107
+ unlocal.gsub!(/(#{from.join("|")})/i) { |s| to[from.index($1)] }
108
+ end
109
+ end
110
+
111
+ unlocal
112
+ end
113
+
114
+ def local_lstrftime(format = nil)
115
+ (self.respond_to?(:in_time_zone) ? self.in_time_zone : self).lstrftime(format)
116
+ end
117
+
118
+ def padded_month
119
+ self.month.to_s.rjust(2, "0")
120
+ end
121
+
122
+ def in_months
123
+ ((self.year - 1) % 2000) * 12 + self.month
124
+ end
125
+
126
+ def utc_time
127
+ ua = (self.respond_to?(:utc) ? self : self.to_datetime).utc
128
128
  ::Time.utc(ua.year, ua.month, ua.day, ua.hour, ua.min, ua.sec)
129
- end
130
- end
131
- end
132
- end
129
+ end
130
+ end
131
+ end
132
+ end
133
133
  end
@@ -5,19 +5,19 @@
5
5
  #
6
6
 
7
7
  module Cowtech
8
- module Extensions
9
- module Hash
10
- extend ActiveSupport::Concern
8
+ module Extensions
9
+ module Hash
10
+ extend ActiveSupport::Concern
11
11
 
12
- module InstanceMethods
13
- def method_missing(method, *args, &block)
14
- (self.has_key?(method.to_sym) || self.has_key?(method.to_s)) ? (self[method.to_sym] || self[method.to_s]) : super(method, *args, &block)
15
- end
12
+ module InstanceMethods
13
+ def method_missing(method, *args, &block)
14
+ (self.has_key?(method.to_sym) || self.has_key?(method.to_s)) ? (self[method.to_sym] || self[method.to_s]) : super(method, *args, &block)
15
+ end
16
16
 
17
- def respond_to?(method)
18
- (self.has_key?(method.to_sym) || self.has_key?(method.to_s)) ? true : super(method)
19
- end
20
- end
21
- end
22
- end
17
+ def respond_to?(method)
18
+ (self.has_key?(method.to_sym) || self.has_key?(method.to_s)) ? true : super(method)
19
+ end
20
+ end
21
+ end
22
+ end
23
23
  end
@@ -5,19 +5,19 @@
5
5
  #
6
6
 
7
7
  module Cowtech
8
- module Extensions
9
- module Math
10
- extend ActiveSupport::Concern
11
-
12
- module ClassMethods
13
- def self.max(a, b)
14
- a > b ? a : b
15
- end
8
+ module Extensions
9
+ module Math
10
+ extend ActiveSupport::Concern
16
11
 
17
- def self.min(a, b)
18
- a < b ? a : b
19
- end
20
- end
21
- end
22
- end
12
+ module ClassMethods
13
+ def self.max(a, b)
14
+ a > b ? a : b
15
+ end
16
+
17
+ def self.min(a, b)
18
+ a < b ? a : b
19
+ end
20
+ end
21
+ end
22
+ end
23
23
  end
@@ -8,73 +8,73 @@ require "active_support/all"
8
8
  require "action_view"
9
9
 
10
10
  module Cowtech
11
- module Extensions
12
- module Object
13
- include ActionView::Helpers::NumberHelper
14
- extend ActiveSupport::Concern
15
-
16
- module InstanceMethods
17
- def is_number?
18
- self.is_float?
19
- end
20
-
21
- def is_integer?
22
- self.is_a?(Integer) || /^([+-]?)(\d+)$/.match(self.ensure_string.strip)
23
- end
24
-
25
- def is_float?
26
- self.is_a?(Float) || /^([+-]?)(\d+)([.,]\d+)?$/.match(self.ensure_string.strip)
27
- end
28
-
29
- def is_boolean?
30
- self.is_a?(TrueClass) || self.is_a?(FalseClass) || self.is_a?(NilClass) || /^(1|0|true|false|yes|no|t|f|y|n)$/i.match(self.ensure_string.strip)
31
- end
32
-
33
- def ensure_array
34
- self.is_a?(Array) ? self : [self]
35
- end
36
-
37
- def ensure_string
38
- self.present? ? self.to_s : ""
39
- end
40
-
41
- def to_float
42
- self.is_float? ? Kernel.Float(self.respond_to?(:gsub) ? self.gsub(",", ".") : self) : 0.0
43
- end
44
-
45
- def to_integer
46
- self.is_integer? ? Kernel.Integer(self, self.is_a?(String) ? 10 : 0) : 0
47
- end
48
-
49
- def to_boolean
50
- (self.is_a?(TrueClass) || /^(1|on|true|yes|t|y)$/i.match(self.ensure_string.strip)) ? true : false
51
- end
52
-
53
- def round_to_precision(prec = 2)
54
- number_with_precision(self, :precision => prec)
55
- end
56
-
57
- def format_number(prec = 2, decimal_separator = ",", add_string = "€", k_separator = ".")
58
- number_to_currency(self, {:precision => prec, :separator => decimal_separator, :delimiter => k_separator, :format => add_string.blank? ? "%n" : "%n %u", :unit => add_string.blank? ? "" : add_string.strip})
59
- end
60
-
61
- def format_boolean
62
- self.to_boolean ? "Yes" : "No"
63
- end
64
-
65
- def debug_dump(format = :yaml, must_raise = true)
66
- rv = ""
67
-
68
- begin
69
- rv = self.send("to_#{format}")
70
- rescue
71
- rv = self.inspect
72
- end
73
-
74
- rv = "DEBUG DUMP:\n#{rv}"
75
- must_raise ? raise(rv) : rv
76
- end
77
- end
78
- end
79
- end
11
+ module Extensions
12
+ module Object
13
+ include ActionView::Helpers::NumberHelper
14
+ extend ActiveSupport::Concern
15
+
16
+ module InstanceMethods
17
+ def is_number?
18
+ self.is_float?
19
+ end
20
+
21
+ def is_integer?
22
+ self.is_a?(Integer) || /^([+-]?)(\d+)$/.match(self.ensure_string.strip)
23
+ end
24
+
25
+ def is_float?
26
+ self.is_a?(Float) || /^([+-]?)(\d+)([.,]\d+)?$/.match(self.ensure_string.strip)
27
+ end
28
+
29
+ def is_boolean?
30
+ self.is_a?(TrueClass) || self.is_a?(FalseClass) || self.is_a?(NilClass) || /^(1|0|true|false|yes|no|t|f|y|n)$/i.match(self.ensure_string.strip)
31
+ end
32
+
33
+ def ensure_array
34
+ self.is_a?(Array) ? self : [self]
35
+ end
36
+
37
+ def ensure_string
38
+ self.present? ? self.to_s : ""
39
+ end
40
+
41
+ def to_float
42
+ self.is_float? ? Kernel.Float(self.respond_to?(:gsub) ? self.gsub(",", ".") : self) : 0.0
43
+ end
44
+
45
+ def to_integer
46
+ self.is_integer? ? Kernel.Integer(self, self.is_a?(String) ? 10 : 0) : 0
47
+ end
48
+
49
+ def to_boolean
50
+ (self.is_a?(TrueClass) || /^(1|on|true|yes|t|y)$/i.match(self.ensure_string.strip)) ? true : false
51
+ end
52
+
53
+ def round_to_precision(prec = 2)
54
+ number_with_precision(self, precision: prec)
55
+ end
56
+
57
+ def format_number(prec = 2, decimal_separator = ",", add_string = "€", k_separator = ".")
58
+ number_to_currency(self, {precision: prec, separator: decimal_separator, delimiter: k_separator, format: add_string.blank? ? "%n" : "%n %u", unit: add_string.blank? ? "" : add_string.strip})
59
+ end
60
+
61
+ def format_boolean
62
+ self.to_boolean ? "Yes" : "No"
63
+ end
64
+
65
+ def debug_dump(format = :yaml, must_raise = true)
66
+ rv = ""
67
+
68
+ begin
69
+ rv = self.send("to_#{format}")
70
+ rescue
71
+ rv = self.inspect
72
+ end
73
+
74
+ rv = "DEBUG DUMP:\n#{rv}"
75
+ must_raise ? raise(rv) : rv
76
+ end
77
+ end
78
+ end
79
+ end
80
80
  end
@@ -5,15 +5,15 @@
5
5
  #
6
6
 
7
7
  module Cowtech
8
- module Extensions
9
- module Pathname
10
- extend ActiveSupport::Concern
8
+ module Extensions
9
+ module Pathname
10
+ extend ActiveSupport::Concern
11
11
 
12
- module InstanceMethods
13
- def components
14
- self.each_filename.collect { |p| p }
15
- end
16
- end
17
- end
18
- end
12
+ module InstanceMethods
13
+ def components
14
+ self.each_filename.collect { |p| p }
15
+ end
16
+ end
17
+ end
18
+ end
19
19
  end
@@ -7,27 +7,27 @@
7
7
  require "active_support/all"
8
8
 
9
9
  module Cowtech
10
- module Extensions
11
- module String
12
- extend ActiveSupport::Concern
10
+ module Extensions
11
+ module String
12
+ extend ActiveSupport::Concern
13
13
 
14
- module InstanceMethods
15
- def remove_accents
16
- self.mb_chars.normalize(:kd).gsub(/[^\-x00-\x7F]/n, '').to_s
17
- end
18
-
19
- def untitleize
20
- self.downcase.gsub(" ", "-")
21
- end
22
-
23
- def replace_ampersands
24
- self.gsub(/&amp;(\S+);/, "&\\1;")
25
- end
26
-
27
- def value
28
- self
29
- end
30
- end
31
- end
32
- end
14
+ module InstanceMethods
15
+ def remove_accents
16
+ self.mb_chars.normalize(:kd).gsub(/[^\-x00-\x7F]/n, '').to_s
17
+ end
18
+
19
+ def untitleize
20
+ self.downcase.gsub(" ", "-")
21
+ end
22
+
23
+ def replace_ampersands
24
+ self.gsub(/&amp;(\S+);/, "&\\1;")
25
+ end
26
+
27
+ def value
28
+ self
29
+ end
30
+ end
31
+ end
32
+ end
33
33
  end
@@ -7,14 +7,13 @@
7
7
  require "active_support"
8
8
 
9
9
  module Cowtech
10
- module Extensions
11
- module Version
12
- MAJOR = 1
13
- MINOR = 3
14
- PATCH = 1
15
- BUILD = 0
10
+ module Extensions
11
+ module Version
12
+ MAJOR = 1
13
+ MINOR = 4
14
+ PATCH = 0
16
15
 
17
- STRING = [MAJOR, MINOR, PATCH, BUILD].compact.join('.')
18
- end
19
- end
16
+ STRING = [MAJOR, MINOR, PATCH].compact.join('.')
17
+ end
18
+ end
20
19
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cowtech-extensions
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.1.0
4
+ version: 1.4.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-02-26 00:00:00.000000000Z
12
+ date: 2012-04-16 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: jeweler
16
- requirement: &70233006613360 !ruby/object:Gem::Requirement
16
+ requirement: &70136363158700 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70233006613360
24
+ version_requirements: *70136363158700
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: actionpack
27
- requirement: &70233006612460 !ruby/object:Gem::Requirement
27
+ requirement: &70136363156920 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,7 +32,7 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70233006612460
35
+ version_requirements: *70136363156920
36
36
  description: Several Ruby object enhancements.
37
37
  email: shogun_panda@me.com
38
38
  executables: []