cowtech-extensions 1.6.1 → 1.6.3
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 +1 -0
- data/Rakefile +9 -1
- data/cowtech-extensions.gemspec +20 -15
- data/lib/cowtech-extensions.rb +7 -5
- data/lib/cowtech-extensions/boolean.rb +1 -0
- data/lib/cowtech-extensions/datetime.rb +1 -2
- data/lib/cowtech-extensions/hash.rb +11 -1
- data/lib/cowtech-extensions/math.rb +27 -8
- data/lib/cowtech-extensions/object.rb +1 -3
- data/lib/cowtech-extensions/pathname.rb +3 -1
- data/lib/cowtech-extensions/string.rb +1 -3
- data/lib/cowtech-extensions/version.rb +1 -3
- data/spec/cowtech-extensions/boolean_spec.rb +21 -0
- data/spec/cowtech-extensions/datetime_spec.rb +5 -0
- data/spec/cowtech-extensions/hash_spec.rb +27 -0
- data/spec/cowtech-extensions/math_spec.rb +31 -0
- data/spec/cowtech-extensions/object_spec.rb +5 -0
- data/spec/cowtech-extensions/pathname_spec.rb +17 -0
- data/spec/cowtech-extensions/string_spec.rb +26 -0
- data/spec/cowtech-extensions_spec.rb +9 -0
- data/spec/spec_helper.rb +13 -0
- metadata +71 -7
data/.gitignore
CHANGED
data/Rakefile
CHANGED
@@ -4,4 +4,12 @@
|
|
4
4
|
# Licensed under the MIT license, which can be found at http://www.opensource.org/licenses/mit-license.php.
|
5
5
|
#
|
6
6
|
|
7
|
-
require "bundler/gem_tasks"
|
7
|
+
require "bundler/gem_tasks"
|
8
|
+
require "rspec/core/rake_task"
|
9
|
+
|
10
|
+
RSpec::Core::RakeTask.new("spec")
|
11
|
+
|
12
|
+
desc "Run all specs with rcov"
|
13
|
+
RSpec::Core::RakeTask.new("spec:coverage") do |t|
|
14
|
+
t.rcov_opts = %q[--exclude "spec"]
|
15
|
+
end
|
data/cowtech-extensions.gemspec
CHANGED
@@ -4,22 +4,27 @@
|
|
4
4
|
# Licensed under the MIT license, which can be found at http://www.opensource.org/licenses/mit-license.php.
|
5
5
|
#
|
6
6
|
|
7
|
-
require
|
7
|
+
require File.expand_path('../lib/cowtech-extensions/version', __FILE__)
|
8
8
|
|
9
|
-
Gem::Specification.new do |
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
s.description = %q{Several Ruby object enhancements.}
|
9
|
+
Gem::Specification.new do |gem|
|
10
|
+
gem.name = "cowtech-extensions"
|
11
|
+
gem.version = Cowtech::Extensions::Version::STRING
|
12
|
+
gem.homepage = "http://github.com/ShogunPanda/cowtech-extensions"
|
13
|
+
gem.summary = %q{Several Ruby object enhancementa.}
|
14
|
+
gem.description = %q{Several Ruby object enhancements.}
|
15
|
+
gem.rubyforge_project = "cowtech-extensions"
|
17
16
|
|
18
|
-
|
19
|
-
|
20
|
-
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
21
|
-
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
22
|
-
s.require_paths = ["lib"]
|
17
|
+
gem.authors = ["Shogun"]
|
18
|
+
gem.email = ["shogun_panda@me.com"]
|
23
19
|
|
24
|
-
|
20
|
+
gem.files = `git ls-files`.split($\)
|
21
|
+
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
22
|
+
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
23
|
+
gem.require_paths = ["lib"]
|
24
|
+
|
25
|
+
gem.add_dependency("actionpack", "~> 3.0")
|
26
|
+
|
27
|
+
gem.add_development_dependency("rspec", "~> 2.10")
|
28
|
+
gem.add_development_dependency("rcov", "~> 1.0.0")
|
29
|
+
gem.add_development_dependency("pry", "~> 0.9.9")
|
25
30
|
end
|
data/lib/cowtech-extensions.rb
CHANGED
@@ -4,6 +4,11 @@
|
|
4
4
|
# Licensed under the MIT license, which can be found at http://www.opensource.org/licenses/mit-license.php.
|
5
5
|
#
|
6
6
|
|
7
|
+
$KCODE='UTF8' if RUBY_VERSION < '1.9'
|
8
|
+
|
9
|
+
require "active_support/all"
|
10
|
+
require "action_view"
|
11
|
+
|
7
12
|
require "cowtech-extensions/utils"
|
8
13
|
require "cowtech-extensions/object"
|
9
14
|
require "cowtech-extensions/boolean"
|
@@ -15,7 +20,7 @@ require "cowtech-extensions/pathname"
|
|
15
20
|
|
16
21
|
module Cowtech
|
17
22
|
module Extensions
|
18
|
-
def self.load(what
|
23
|
+
def self.load!(*what)
|
19
24
|
what = ["object", "boolean", "string", "hash", "datetime", "math", "pathname"] if what.count == 0
|
20
25
|
what.collect! { |w| w.to_s }
|
21
26
|
|
@@ -65,8 +70,6 @@ module Cowtech
|
|
65
70
|
::DateTime.class_eval do
|
66
71
|
include Cowtech::Extensions::DateTime
|
67
72
|
end
|
68
|
-
|
69
|
-
#DateTime.cowtech_extensions_setup
|
70
73
|
end
|
71
74
|
|
72
75
|
if what.include?("math") then
|
@@ -84,5 +87,4 @@ module Cowtech
|
|
84
87
|
end
|
85
88
|
end
|
86
89
|
end
|
87
|
-
end
|
88
|
-
|
90
|
+
end
|
@@ -10,7 +10,17 @@ module Cowtech
|
|
10
10
|
extend ActiveSupport::Concern
|
11
11
|
|
12
12
|
def method_missing(method, *args, &block)
|
13
|
-
|
13
|
+
rv = nil
|
14
|
+
|
15
|
+
if self.has_key?(method.to_sym) then
|
16
|
+
rv = self[method.to_sym]
|
17
|
+
elsif self.has_key?(method.to_s) then
|
18
|
+
rv = self[method.to_s]
|
19
|
+
else
|
20
|
+
rv = super(method, *args, &block)
|
21
|
+
end
|
22
|
+
|
23
|
+
rv
|
14
24
|
end
|
15
25
|
|
16
26
|
def respond_to?(method)
|
@@ -10,14 +10,33 @@ module Cowtech
|
|
10
10
|
extend ActiveSupport::Concern
|
11
11
|
|
12
12
|
module ClassMethods
|
13
|
-
def
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
13
|
+
def min(*args)
|
14
|
+
args = args.ensure_array.flatten
|
15
|
+
|
16
|
+
if args.length > 0 then
|
17
|
+
rv = args[0]
|
18
|
+
args.each do |a| rv = a if a < rv end
|
19
|
+
else
|
20
|
+
rv = nil
|
21
|
+
end
|
22
|
+
|
23
|
+
rv
|
24
|
+
end
|
25
|
+
|
26
|
+
def max(*args)
|
27
|
+
args = args.ensure_array.flatten
|
28
|
+
|
29
|
+
if args.length > 0 then
|
30
|
+
rv = args[0]
|
31
|
+
args.each do |a| rv = a if a > rv end
|
32
|
+
else
|
33
|
+
rv = nil
|
34
|
+
end
|
35
|
+
|
36
|
+
rv
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
21
40
|
end
|
22
41
|
end
|
23
42
|
end
|
@@ -4,15 +4,13 @@
|
|
4
4
|
# Licensed under the MIT license, which can be found at http://www.opensource.org/licenses/mit-license.php.
|
5
5
|
#
|
6
6
|
|
7
|
-
require "active_support/all"
|
8
|
-
|
9
7
|
module Cowtech
|
10
8
|
module Extensions
|
11
9
|
module String
|
12
10
|
extend ActiveSupport::Concern
|
13
11
|
|
14
12
|
def remove_accents
|
15
|
-
self.mb_chars.normalize(:kd).gsub(/[
|
13
|
+
self.mb_chars.normalize(:kd).gsub(/[^\x00-\x7F]/n, "").to_s
|
16
14
|
end
|
17
15
|
|
18
16
|
def untitleize
|
@@ -4,14 +4,12 @@
|
|
4
4
|
# Licensed under the MIT license, which can be found at http://www.opensource.org/licenses/mit-license.php.
|
5
5
|
#
|
6
6
|
|
7
|
-
require "active_support"
|
8
|
-
|
9
7
|
module Cowtech
|
10
8
|
module Extensions
|
11
9
|
module Version
|
12
10
|
MAJOR = 1
|
13
11
|
MINOR = 6
|
14
|
-
PATCH =
|
12
|
+
PATCH = 3
|
15
13
|
|
16
14
|
STRING = [MAJOR, MINOR, PATCH].compact.join(".")
|
17
15
|
end
|
@@ -0,0 +1,21 @@
|
|
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
|
+
|
7
|
+
require "spec_helper"
|
8
|
+
|
9
|
+
describe Cowtech::Extensions::Boolean do
|
10
|
+
describe "#to_i" do
|
11
|
+
it "should return 1 for true" do true.to_i.should == 1 end
|
12
|
+
it "should return 0 for false" do false.to_i.should == 0 end
|
13
|
+
end
|
14
|
+
|
15
|
+
describe "#value" do
|
16
|
+
it "should return self" do
|
17
|
+
true.value.should be_true
|
18
|
+
false.value.should be_false
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,27 @@
|
|
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
|
+
|
7
|
+
require "spec_helper"
|
8
|
+
|
9
|
+
describe Cowtech::Extensions::Hash do
|
10
|
+
let(:reference) {
|
11
|
+
rv = {:a => 1, "b" => 2}
|
12
|
+
rv.default = 0
|
13
|
+
rv
|
14
|
+
}
|
15
|
+
|
16
|
+
describe "#method_missing" do
|
17
|
+
it "should allow method reference for string key" do reference.a.should == 1 end
|
18
|
+
it "should allow method reference for symbol key" do reference.b.should == 2 end
|
19
|
+
it "should use super for missing key" do expect {reference.c}.to raise_error(NoMethodError) end
|
20
|
+
end
|
21
|
+
|
22
|
+
describe "#respond_to" do
|
23
|
+
it "should return true for string key" do reference.respond_to?(:a).should be_true end
|
24
|
+
it "should return true for symbol key" do reference.respond_to?(:b).should be_true end
|
25
|
+
it "should return false for missing key" do reference.respond_to?(:c).should be_false end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,31 @@
|
|
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
|
+
|
7
|
+
require "spec_helper"
|
8
|
+
|
9
|
+
describe Cowtech::Extensions::Math do
|
10
|
+
let(:first) { 1 }
|
11
|
+
let(:second) { 2 }
|
12
|
+
let(:third) { 0 }
|
13
|
+
|
14
|
+
describe "#min" do
|
15
|
+
it "should return the minimum argument" do
|
16
|
+
::Math.min().should be_nil
|
17
|
+
::Math.min(first).should == first
|
18
|
+
::Math.min(first, second).should == first
|
19
|
+
::Math.min([first, [second, third]]).should == third
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
describe "#max" do
|
24
|
+
it "should return the maximum argument" do
|
25
|
+
::Math.min().should be_nil
|
26
|
+
::Math.max(first).should == first
|
27
|
+
::Math.max(first, second).should == second
|
28
|
+
::Math.max([first, [second, third]]).should == second
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,17 @@
|
|
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
|
+
|
7
|
+
require "spec_helper"
|
8
|
+
|
9
|
+
describe Cowtech::Extensions::Pathname do
|
10
|
+
let(:reference) { Pathname.new($0) }
|
11
|
+
|
12
|
+
describe "#components" do
|
13
|
+
it "should return the components of the path" do
|
14
|
+
([""] + reference.components).should == reference.to_s.split("/")
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,26 @@
|
|
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
|
+
|
7
|
+
require "spec_helper"
|
8
|
+
|
9
|
+
describe Cowtech::Extensions::String do
|
10
|
+
let(:reference) { "abc òùà èé &gt;" }
|
11
|
+
let(:translated_reference) { "abc oua ee &gt;" }
|
12
|
+
let(:untitleized_reference) { "abc-òùà-èé-&gt;" }
|
13
|
+
let(:amp_reference) { "abc òùà èé >" }
|
14
|
+
|
15
|
+
describe "#remove_accents" do
|
16
|
+
it "should translate accents" do reference.remove_accents.should == translated_reference end
|
17
|
+
end
|
18
|
+
|
19
|
+
describe "#untitleize" do
|
20
|
+
it "should convert spaces to dashes" do reference.untitleize.should == untitleized_reference end
|
21
|
+
end
|
22
|
+
|
23
|
+
describe "#replace_ampersands" do
|
24
|
+
it "should remove HTML ampersands" do reference.replace_ampersands.should == amp_reference end
|
25
|
+
end
|
26
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,13 @@
|
|
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
|
+
|
7
|
+
require "rubygems"
|
8
|
+
require "bundler/setup"
|
9
|
+
require "cowtech-extensions"
|
10
|
+
|
11
|
+
RSpec.configure do |config|
|
12
|
+
Cowtech::Extensions.load!
|
13
|
+
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cowtech-extensions
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 9
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 6
|
9
|
-
-
|
10
|
-
version: 1.6.
|
9
|
+
- 3
|
10
|
+
version: 1.6.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Shogun
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2012-06-
|
18
|
+
date: 2012-06-06 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: actionpack
|
@@ -32,6 +32,53 @@ dependencies:
|
|
32
32
|
version: "3.0"
|
33
33
|
type: :runtime
|
34
34
|
version_requirements: *id001
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
name: rspec
|
37
|
+
prerelease: false
|
38
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ~>
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
hash: 23
|
44
|
+
segments:
|
45
|
+
- 2
|
46
|
+
- 10
|
47
|
+
version: "2.10"
|
48
|
+
type: :development
|
49
|
+
version_requirements: *id002
|
50
|
+
- !ruby/object:Gem::Dependency
|
51
|
+
name: rcov
|
52
|
+
prerelease: false
|
53
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
54
|
+
none: false
|
55
|
+
requirements:
|
56
|
+
- - ~>
|
57
|
+
- !ruby/object:Gem::Version
|
58
|
+
hash: 23
|
59
|
+
segments:
|
60
|
+
- 1
|
61
|
+
- 0
|
62
|
+
- 0
|
63
|
+
version: 1.0.0
|
64
|
+
type: :development
|
65
|
+
version_requirements: *id003
|
66
|
+
- !ruby/object:Gem::Dependency
|
67
|
+
name: pry
|
68
|
+
prerelease: false
|
69
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
70
|
+
none: false
|
71
|
+
requirements:
|
72
|
+
- - ~>
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
hash: 41
|
75
|
+
segments:
|
76
|
+
- 0
|
77
|
+
- 9
|
78
|
+
- 9
|
79
|
+
version: 0.9.9
|
80
|
+
type: :development
|
81
|
+
version_requirements: *id004
|
35
82
|
description: Several Ruby object enhancements.
|
36
83
|
email:
|
37
84
|
- shogun_panda@me.com
|
@@ -58,6 +105,15 @@ files:
|
|
58
105
|
- lib/cowtech-extensions/string.rb
|
59
106
|
- lib/cowtech-extensions/utils.rb
|
60
107
|
- lib/cowtech-extensions/version.rb
|
108
|
+
- spec/cowtech-extensions/boolean_spec.rb
|
109
|
+
- spec/cowtech-extensions/datetime_spec.rb
|
110
|
+
- spec/cowtech-extensions/hash_spec.rb
|
111
|
+
- spec/cowtech-extensions/math_spec.rb
|
112
|
+
- spec/cowtech-extensions/object_spec.rb
|
113
|
+
- spec/cowtech-extensions/pathname_spec.rb
|
114
|
+
- spec/cowtech-extensions/string_spec.rb
|
115
|
+
- spec/cowtech-extensions_spec.rb
|
116
|
+
- spec/spec_helper.rb
|
61
117
|
homepage: http://github.com/ShogunPanda/cowtech-extensions
|
62
118
|
licenses: []
|
63
119
|
|
@@ -90,7 +146,15 @@ rubyforge_project: cowtech-extensions
|
|
90
146
|
rubygems_version: 1.8.24
|
91
147
|
signing_key:
|
92
148
|
specification_version: 3
|
93
|
-
summary: Several Ruby object
|
94
|
-
test_files:
|
95
|
-
|
149
|
+
summary: Several Ruby object enhancementa.
|
150
|
+
test_files:
|
151
|
+
- spec/cowtech-extensions/boolean_spec.rb
|
152
|
+
- spec/cowtech-extensions/datetime_spec.rb
|
153
|
+
- spec/cowtech-extensions/hash_spec.rb
|
154
|
+
- spec/cowtech-extensions/math_spec.rb
|
155
|
+
- spec/cowtech-extensions/object_spec.rb
|
156
|
+
- spec/cowtech-extensions/pathname_spec.rb
|
157
|
+
- spec/cowtech-extensions/string_spec.rb
|
158
|
+
- spec/cowtech-extensions_spec.rb
|
159
|
+
- spec/spec_helper.rb
|
96
160
|
has_rdoc:
|