cowtech-extensions 1.4.1 → 1.4.2
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/.gitignore +3 -0
- data/Gemfile +7 -1
- data/Gemfile.lock +10 -11
- data/Rakefile +6 -17
- data/cowtech-extensions.gemspec +17 -51
- data/lib/cowtech-extensions/boolean.rb +5 -7
- data/lib/cowtech-extensions/datetime.rb +25 -27
- data/lib/cowtech-extensions/hash.rb +5 -7
- data/lib/cowtech-extensions/object.rb +45 -47
- data/lib/cowtech-extensions/pathname.rb +2 -4
- data/lib/cowtech-extensions/string.rb +11 -13
- data/lib/cowtech-extensions/version.rb +1 -1
- metadata +13 -24
data/.gitignore
ADDED
data/Gemfile
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
#
|
3
|
+
# This file is part of the cowtech-extensions gem. Copyright (C) 2011 and above Shogun <shogun_panda@me.com>.
|
4
|
+
# Licensed under the MIT license, which can be found at http://www.opensource.org/licenses/mit-license.php.
|
5
|
+
#
|
6
|
+
|
1
7
|
source "http://rubygems.org"
|
2
8
|
|
3
|
-
|
9
|
+
gemspec
|
data/Gemfile.lock
CHANGED
@@ -1,19 +1,18 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
cowtech-extensions (1.4.2)
|
5
|
+
active_support
|
6
|
+
|
1
7
|
GEM
|
2
8
|
remote: http://rubygems.org/
|
3
9
|
specs:
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
git (>= 1.2.5)
|
8
|
-
rake
|
9
|
-
rdoc
|
10
|
-
json (1.6.5)
|
11
|
-
rake (0.9.2.2)
|
12
|
-
rdoc (3.12)
|
13
|
-
json (~> 1.4)
|
10
|
+
active_support (3.0.0)
|
11
|
+
activesupport (= 3.0.0)
|
12
|
+
activesupport (3.0.0)
|
14
13
|
|
15
14
|
PLATFORMS
|
16
15
|
ruby
|
17
16
|
|
18
17
|
DEPENDENCIES
|
19
|
-
|
18
|
+
cowtech-extensions!
|
data/Rakefile
CHANGED
@@ -1,18 +1,7 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
# encoding: utf-8
|
2
|
+
#
|
3
|
+
# This file is part of the cowtech-extensions gem. Copyright (C) 2011 and above Shogun <shogun_panda@me.com>.
|
4
|
+
# Licensed under the MIT license, which can be found at http://www.opensource.org/licenses/mit-license.php.
|
5
|
+
#
|
4
6
|
|
5
|
-
|
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
|
-
gem.required_ruby_version = '>= 1.9.2'
|
16
|
-
end
|
17
|
-
|
18
|
-
Jeweler::RubygemsDotOrgTasks.new
|
7
|
+
require "bundler/gem_tasks"
|
data/cowtech-extensions.gemspec
CHANGED
@@ -1,56 +1,22 @@
|
|
1
|
-
#
|
2
|
-
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
|
-
# -*- encoding: utf-8 -*-
|
1
|
+
# encoding: utf-8
|
5
2
|
|
6
|
-
|
7
|
-
s.name = "cowtech-extensions"
|
8
|
-
s.version = "1.4.1"
|
3
|
+
require "./lib/cowtech-extensions/version"
|
9
4
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
s.files = [
|
19
|
-
"Gemfile",
|
20
|
-
"Gemfile.lock",
|
21
|
-
"README.rdoc",
|
22
|
-
"Rakefile",
|
23
|
-
"cowtech-extensions.gemspec",
|
24
|
-
"lib/cowtech-extensions.rb",
|
25
|
-
"lib/cowtech-extensions/boolean.rb",
|
26
|
-
"lib/cowtech-extensions/datetime.rb",
|
27
|
-
"lib/cowtech-extensions/hash.rb",
|
28
|
-
"lib/cowtech-extensions/math.rb",
|
29
|
-
"lib/cowtech-extensions/object.rb",
|
30
|
-
"lib/cowtech-extensions/pathname.rb",
|
31
|
-
"lib/cowtech-extensions/string.rb",
|
32
|
-
"lib/cowtech-extensions/version.rb"
|
33
|
-
]
|
34
|
-
s.homepage = "http://github.com/ShogunPanda/cowtech-extensions"
|
35
|
-
s.licenses = ["MIT"]
|
36
|
-
s.require_paths = ["lib"]
|
37
|
-
s.required_ruby_version = Gem::Requirement.new(">= 1.9.2")
|
38
|
-
s.rubygems_version = "1.8.15"
|
39
|
-
s.summary = "Several Ruby object enhancements."
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "cowtech-extensions"
|
7
|
+
s.version = Cowtech::Extensions::Version::STRING
|
8
|
+
s.authors = ["Shogun"]
|
9
|
+
s.email = ["shogun_panda@me.com"]
|
10
|
+
s.homepage = "http://github.com/ShogunPanda/cowtech-extensions"
|
11
|
+
s.summary = %q{A Rails blog engine plugin.}
|
12
|
+
s.description = %q{A Rails blog engine plugin.}
|
40
13
|
|
41
|
-
|
42
|
-
|
14
|
+
s.rubyforge_project = "cowtech-extensions"
|
15
|
+
s.files = `git ls-files`.split("\n")
|
16
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
17
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
18
|
+
s.require_paths = ["lib"]
|
43
19
|
|
44
|
-
|
45
|
-
|
46
|
-
s.add_runtime_dependency(%q<actionpack>, [">= 0"])
|
47
|
-
else
|
48
|
-
s.add_dependency(%q<jeweler>, [">= 0"])
|
49
|
-
s.add_dependency(%q<actionpack>, [">= 0"])
|
50
|
-
end
|
51
|
-
else
|
52
|
-
s.add_dependency(%q<jeweler>, [">= 0"])
|
53
|
-
s.add_dependency(%q<actionpack>, [">= 0"])
|
54
|
-
end
|
20
|
+
s.required_ruby_version = ">= 1.9.2"
|
21
|
+
s.add_dependency "active_support"
|
55
22
|
end
|
56
|
-
|
@@ -9,14 +9,12 @@ module Cowtech
|
|
9
9
|
module Boolean
|
10
10
|
extend ActiveSupport::Concern
|
11
11
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
end
|
12
|
+
def to_i
|
13
|
+
(self == true) ? 1 : 0
|
14
|
+
end
|
16
15
|
|
17
|
-
|
18
|
-
|
19
|
-
end
|
16
|
+
def value
|
17
|
+
self
|
20
18
|
end
|
21
19
|
end
|
22
20
|
end
|
@@ -94,39 +94,37 @@ module Cowtech
|
|
94
94
|
end
|
95
95
|
end
|
96
96
|
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
unlocal.gsub!(/(#{from.join("|")})/i) { |s| to[from.index($1)] }
|
108
|
-
end
|
97
|
+
def lstrftime(format = nil)
|
98
|
+
format = self.class.custom_format($1) if format =~ /^custom::(.+)/
|
99
|
+
format ||= self.class.custom_format("update")
|
100
|
+
unlocal = self.strftime(format)
|
101
|
+
|
102
|
+
{ "%a" => "short_days", "%A" => "days", "%b" => "short_months", "%B" => "months" }.each_pair do |specifier, method|
|
103
|
+
if format.include?(specifier) then
|
104
|
+
from = self.class.send("default_localized_" + method)
|
105
|
+
to = self.class.send("localized_" + method)
|
106
|
+
unlocal.gsub!(/(#{from.join("|")})/i) { |s| to[from.index($1)] }
|
109
107
|
end
|
110
|
-
|
111
|
-
unlocal
|
112
108
|
end
|
113
109
|
|
114
|
-
|
115
|
-
|
116
|
-
end
|
110
|
+
unlocal
|
111
|
+
end
|
117
112
|
|
118
|
-
|
119
|
-
|
120
|
-
|
113
|
+
def local_lstrftime(format = nil)
|
114
|
+
(self.respond_to?(:in_time_zone) ? self.in_time_zone : self).lstrftime(format)
|
115
|
+
end
|
121
116
|
|
122
|
-
|
123
|
-
|
124
|
-
|
117
|
+
def padded_month
|
118
|
+
self.month.to_s.rjust(2, "0")
|
119
|
+
end
|
125
120
|
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
121
|
+
def in_months
|
122
|
+
((self.year - 1) % 2000) * 12 + self.month
|
123
|
+
end
|
124
|
+
|
125
|
+
def utc_time
|
126
|
+
ua = (self.respond_to?(:utc) ? self : self.to_datetime).utc
|
127
|
+
::Time.utc(ua.year, ua.month, ua.day, ua.hour, ua.min, ua.sec)
|
130
128
|
end
|
131
129
|
end
|
132
130
|
end
|
@@ -9,14 +9,12 @@ module Cowtech
|
|
9
9
|
module Hash
|
10
10
|
extend ActiveSupport::Concern
|
11
11
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
end
|
12
|
+
def method_missing(method, *args, &block)
|
13
|
+
(self.has_key?(method.to_sym) || self.has_key?(method.to_s)) ? (self[method.to_sym] || self[method.to_s]) : super(method, *args, &block)
|
14
|
+
end
|
16
15
|
|
17
|
-
|
18
|
-
|
19
|
-
end
|
16
|
+
def respond_to?(method)
|
17
|
+
(self.has_key?(method.to_sym) || self.has_key?(method.to_s)) ? true : super(method)
|
20
18
|
end
|
21
19
|
end
|
22
20
|
end
|
@@ -13,67 +13,65 @@ module Cowtech
|
|
13
13
|
include ActionView::Helpers::NumberHelper
|
14
14
|
extend ActiveSupport::Concern
|
15
15
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
end
|
20
|
-
|
21
|
-
def is_integer?
|
22
|
-
self.is_a?(Integer) || /^([+-]?)(\d+)$/.match(self.ensure_string.strip)
|
23
|
-
end
|
16
|
+
def is_number?
|
17
|
+
self.is_float?
|
18
|
+
end
|
24
19
|
|
25
|
-
|
26
|
-
|
27
|
-
|
20
|
+
def is_integer?
|
21
|
+
self.is_a?(Integer) || /^([+-]?)(\d+)$/.match(self.ensure_string.strip)
|
22
|
+
end
|
28
23
|
|
29
|
-
|
30
|
-
|
31
|
-
|
24
|
+
def is_float?
|
25
|
+
self.is_a?(Float) || /^([+-]?)(\d+)([.,]\d+)?$/.match(self.ensure_string.strip)
|
26
|
+
end
|
32
27
|
|
33
|
-
|
34
|
-
|
35
|
-
|
28
|
+
def is_boolean?
|
29
|
+
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)
|
30
|
+
end
|
36
31
|
|
37
|
-
|
38
|
-
|
39
|
-
|
32
|
+
def ensure_array
|
33
|
+
self.is_a?(Array) ? self : [self]
|
34
|
+
end
|
40
35
|
|
41
|
-
|
42
|
-
|
43
|
-
|
36
|
+
def ensure_string
|
37
|
+
self.present? ? self.to_s : ""
|
38
|
+
end
|
44
39
|
|
45
|
-
|
46
|
-
|
47
|
-
|
40
|
+
def to_float
|
41
|
+
self.is_float? ? Kernel.Float(self.respond_to?(:gsub) ? self.gsub(",", ".") : self) : 0.0
|
42
|
+
end
|
48
43
|
|
49
|
-
|
50
|
-
|
51
|
-
|
44
|
+
def to_integer
|
45
|
+
self.is_integer? ? Kernel.Integer(self, self.is_a?(String) ? 10 : 0) : 0
|
46
|
+
end
|
52
47
|
|
53
|
-
|
54
|
-
|
55
|
-
|
48
|
+
def to_boolean
|
49
|
+
(self.is_a?(TrueClass) || /^(1|on|true|yes|t|y)$/i.match(self.ensure_string.strip)) ? true : false
|
50
|
+
end
|
56
51
|
|
57
|
-
|
58
|
-
|
59
|
-
|
52
|
+
def round_to_precision(prec = 2)
|
53
|
+
number_with_precision(self, precision: prec)
|
54
|
+
end
|
60
55
|
|
61
|
-
|
62
|
-
|
63
|
-
|
56
|
+
def format_number(prec = 2, decimal_separator = ",", add_string = "€", k_separator = ".")
|
57
|
+
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})
|
58
|
+
end
|
64
59
|
|
65
|
-
|
66
|
-
|
60
|
+
def format_boolean
|
61
|
+
self.to_boolean ? "Yes" : "No"
|
62
|
+
end
|
67
63
|
|
68
|
-
|
69
|
-
|
70
|
-
rescue
|
71
|
-
rv = self.inspect
|
72
|
-
end
|
64
|
+
def debug_dump(format = :yaml, must_raise = true)
|
65
|
+
rv = ""
|
73
66
|
|
74
|
-
|
75
|
-
|
67
|
+
begin
|
68
|
+
rv = self.send("to_#{format}")
|
69
|
+
rescue
|
70
|
+
rv = self.inspect
|
76
71
|
end
|
72
|
+
|
73
|
+
rv = "DEBUG DUMP:\n#{rv}"
|
74
|
+
must_raise ? raise(rv) : rv
|
77
75
|
end
|
78
76
|
end
|
79
77
|
end
|
@@ -11,22 +11,20 @@ module Cowtech
|
|
11
11
|
module String
|
12
12
|
extend ActiveSupport::Concern
|
13
13
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
end
|
14
|
+
def remove_accents
|
15
|
+
self.mb_chars.normalize(:kd).gsub(/[^\-x00-\x7F]/n, "").to_s
|
16
|
+
end
|
18
17
|
|
19
|
-
|
20
|
-
|
21
|
-
|
18
|
+
def untitleize
|
19
|
+
self.downcase.gsub(" ", "-")
|
20
|
+
end
|
22
21
|
|
23
|
-
|
24
|
-
|
25
|
-
|
22
|
+
def replace_ampersands
|
23
|
+
self.gsub(/&(\S+);/, "&\\1;")
|
24
|
+
end
|
26
25
|
|
27
|
-
|
28
|
-
|
29
|
-
end
|
26
|
+
def value
|
27
|
+
self
|
30
28
|
end
|
31
29
|
end
|
32
30
|
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.4.
|
4
|
+
version: 1.4.2
|
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-04-
|
12
|
+
date: 2012-04-20 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
|
-
name:
|
16
|
-
requirement: &
|
15
|
+
name: active_support
|
16
|
+
requirement: &70323887130940 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,25 +21,15 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
none: false
|
29
|
-
requirements:
|
30
|
-
- - ! '>='
|
31
|
-
- !ruby/object:Gem::Version
|
32
|
-
version: '0'
|
33
|
-
type: :runtime
|
34
|
-
prerelease: false
|
35
|
-
version_requirements: *70233329302880
|
36
|
-
description: Several Ruby object enhancements.
|
37
|
-
email: shogun_panda@me.com
|
24
|
+
version_requirements: *70323887130940
|
25
|
+
description: A Rails blog engine plugin.
|
26
|
+
email:
|
27
|
+
- shogun_panda@me.com
|
38
28
|
executables: []
|
39
29
|
extensions: []
|
40
|
-
extra_rdoc_files:
|
41
|
-
- README.rdoc
|
30
|
+
extra_rdoc_files: []
|
42
31
|
files:
|
32
|
+
- .gitignore
|
43
33
|
- Gemfile
|
44
34
|
- Gemfile.lock
|
45
35
|
- README.rdoc
|
@@ -55,8 +45,7 @@ files:
|
|
55
45
|
- lib/cowtech-extensions/string.rb
|
56
46
|
- lib/cowtech-extensions/version.rb
|
57
47
|
homepage: http://github.com/ShogunPanda/cowtech-extensions
|
58
|
-
licenses:
|
59
|
-
- MIT
|
48
|
+
licenses: []
|
60
49
|
post_install_message:
|
61
50
|
rdoc_options: []
|
62
51
|
require_paths:
|
@@ -74,9 +63,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
74
63
|
- !ruby/object:Gem::Version
|
75
64
|
version: '0'
|
76
65
|
requirements: []
|
77
|
-
rubyforge_project:
|
66
|
+
rubyforge_project: cowtech-extensions
|
78
67
|
rubygems_version: 1.8.15
|
79
68
|
signing_key:
|
80
69
|
specification_version: 3
|
81
|
-
summary:
|
70
|
+
summary: A Rails blog engine plugin.
|
82
71
|
test_files: []
|