small 0.4 → 0.5

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/README.md CHANGED
@@ -108,7 +108,7 @@ Small collection of useful Ruby utilities
108
108
  end
109
109
  end
110
110
 
111
- **Notes:** + = some codes extracted from ActiveSupport, but some codes are modified
111
+ **Notes:** some codes extracted from ActiveSupport, but some codes are modified
112
112
 
113
113
  ## Benchmark
114
114
 
@@ -1,6 +1,6 @@
1
1
 
2
2
  module Small
3
- VERSION = "0.4"
3
+ VERSION = "0.5"
4
4
  end
5
5
 
6
6
  require 'small/object'
@@ -1,13 +1,30 @@
1
1
  class Hash
2
2
 
3
- def stringify_keys!
4
- keys.each {|key| self[key.to_s] = delete(key) }
3
+ def transform_keys
4
+ result = {}
5
+ keys.each {|key| result[(yield(key) rescue key)] = self[key] }
6
+ result
7
+ end
8
+
9
+ def transform_keys!
10
+ keys.each {|key| self[(yield(key) rescue key)] = delete(key)}
5
11
  self
6
12
  end
7
13
 
14
+ def stringify_keys
15
+ transform_keys(&:to_s)
16
+ end
17
+
18
+ def stringify_keys!
19
+ transform_keys!(&:to_s)
20
+ end
21
+
22
+ def symbolize_keys
23
+ transform_keys(&:to_sym)
24
+ end
25
+
8
26
  def symbolize_keys!
9
- keys.each {|key| self[key.to_sym] = delete(key) }
10
- self
27
+ transform_keys!(&:to_sym)
11
28
  end
12
29
 
13
30
  def to_param
@@ -1,5 +1,33 @@
1
1
  class Object
2
2
 
3
+ def string?
4
+ is_a?(String)
5
+ end
6
+
7
+ def integer?
8
+ is_a?(Integer)
9
+ end
10
+
11
+ def boolean?
12
+ is_a?(FalseClass) || is_a?(TrueClass)
13
+ end
14
+
15
+ def fixnum?
16
+ is_a?(Fixnum)
17
+ end
18
+
19
+ def numeric?
20
+ is_a?(Numeric)
21
+ end
22
+
23
+ def float?
24
+ is_a?(Float)
25
+ end
26
+
27
+ def proc?
28
+ is_a?(Proc)
29
+ end
30
+
3
31
  def blank?
4
32
  respond_to?(:empty?) ? empty? : !self
5
33
  end
@@ -63,4 +63,15 @@ class String
63
63
  require 'cgi' unless defined?(CGI)
64
64
  CGI.unescape(self.to_s)
65
65
  end
66
+
67
+ def html_escape
68
+ require 'erb' unless defined?(ERB::Util)
69
+ ERB::Util.html_escape(self.to_s)
70
+ end
71
+
72
+ def url_encode
73
+ require 'erb' unless defined?(ERB::Util)
74
+ ERB::Util.url_encode(self.to_s)
75
+ end
76
+
66
77
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: small
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.4'
4
+ version: '0.5'
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-05-04 00:00:00.000000000 Z
12
+ date: 2012-05-18 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description:
15
15
  email: bryann83@gmail.com
@@ -49,8 +49,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
49
49
  version: '0'
50
50
  requirements: []
51
51
  rubyforge_project:
52
- rubygems_version: 1.8.11
52
+ rubygems_version: 1.8.23
53
53
  signing_key:
54
54
  specification_version: 3
55
55
  summary: A small collection of useful Ruby utilities
56
56
  test_files: []
57
+ has_rdoc: