vidibus-core_extensions 0.3.12 → 0.3.14
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/Gemfile +6 -4
- data/Gemfile.lock +11 -9
- data/README.rdoc +1 -1
- data/VERSION +1 -1
- data/lib/vidibus/core_extensions/hash.rb +8 -13
- data/lib/vidibus/core_extensions/object.rb +7 -0
- data/lib/vidibus/core_extensions/string.rb +12 -0
- data/spec/vidibus/core_extensions/hash_spec.rb +10 -5
- data/spec/vidibus/core_extensions/string_spec.rb +22 -4
- data/vidibus-core_extensions.gemspec +40 -33
- metadata +53 -9
- data/.gitignore +0 -21
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,17 +1,19 @@
|
|
1
1
|
GEM
|
2
|
-
remote: http://
|
2
|
+
remote: http://rubygems.org/
|
3
3
|
specs:
|
4
4
|
diff-lcs (1.1.2)
|
5
5
|
relevance-rcov (0.9.2.1)
|
6
|
-
rr (1.0.
|
7
|
-
rspec (2.0.
|
8
|
-
rspec-core (
|
9
|
-
rspec-expectations (
|
10
|
-
rspec-mocks (
|
11
|
-
rspec-core (2.0.
|
12
|
-
rspec-expectations (2.0.
|
6
|
+
rr (1.0.2)
|
7
|
+
rspec (2.0.1)
|
8
|
+
rspec-core (~> 2.0.1)
|
9
|
+
rspec-expectations (~> 2.0.1)
|
10
|
+
rspec-mocks (~> 2.0.1)
|
11
|
+
rspec-core (2.0.1)
|
12
|
+
rspec-expectations (2.0.1)
|
13
13
|
diff-lcs (>= 1.1.2)
|
14
|
-
rspec-mocks (2.0.
|
14
|
+
rspec-mocks (2.0.1)
|
15
|
+
rspec-core (~> 2.0.1)
|
16
|
+
rspec-expectations (~> 2.0.1)
|
15
17
|
|
16
18
|
PLATFORMS
|
17
19
|
ruby
|
data/README.rdoc
CHANGED
@@ -50,7 +50,7 @@ Examples:
|
|
50
50
|
Returns URL-encoded string of uri params. Examples:
|
51
51
|
|
52
52
|
{:some => :value, :another => "speciál"}.to_uri # => "some=value&another=speci%C3%A1l"
|
53
|
-
{:some => {:nested => :thing}}.to_uri # => "some
|
53
|
+
{:some => {:nested => :thing}}.to_uri # => "some[nested]=thing"
|
54
54
|
|
55
55
|
|
56
56
|
=== Hash#only
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.3.
|
1
|
+
0.3.14
|
@@ -23,21 +23,16 @@ class Hash
|
|
23
23
|
# Examples:
|
24
24
|
#
|
25
25
|
# {:some => :value, :another => "speciál"}.to_uri # => "some=value&another=speci%C3%A1l"
|
26
|
-
# {:some => {:nested => :thing}}.to_uri # => "some
|
26
|
+
# {:some => {:nested => :thing}}.to_uri # => "some[nested]=thing"
|
27
27
|
#
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
else
|
35
|
-
value = URI.escape(value.to_s)
|
36
|
-
end
|
37
|
-
"#{URI.escape(arg[0].to_s)}=#{value}"
|
38
|
-
end
|
39
|
-
list.join("&")
|
28
|
+
# Stolen from active_record/core_ext. Thanks
|
29
|
+
#
|
30
|
+
def to_query(namespace = nil)
|
31
|
+
out = collect do |key, value|
|
32
|
+
value.to_query(namespace ? "#{namespace}[#{key}]" : key)
|
33
|
+
end.sort * "&"
|
40
34
|
end
|
35
|
+
alias_method :to_uri, :to_query
|
41
36
|
|
42
37
|
# Returns a copy of self including only the given keys.
|
43
38
|
#
|
@@ -13,4 +13,11 @@ class Object
|
|
13
13
|
raise e
|
14
14
|
end
|
15
15
|
end
|
16
|
+
|
17
|
+
# Turns object into a key-value pair.
|
18
|
+
# Stolen from active_support/core_ext
|
19
|
+
def to_query(key)
|
20
|
+
require "cgi" unless defined?(CGI) && defined?(CGI::escape)
|
21
|
+
"#{CGI.escape(key.to_s)}=#{CGI.escape(to_s)}"
|
22
|
+
end
|
16
23
|
end
|
@@ -123,4 +123,16 @@ class String
|
|
123
123
|
def strip_tags!
|
124
124
|
self.replace strip_tags
|
125
125
|
end
|
126
|
+
|
127
|
+
# Appends hash of query params to current string.
|
128
|
+
#
|
129
|
+
# Example:
|
130
|
+
#
|
131
|
+
# "http://vidibus.org".with_params(:awesome => "yes")
|
132
|
+
# # => "http://vidibus.org?awesome=yes"
|
133
|
+
#
|
134
|
+
def with_params(params = {})
|
135
|
+
return self unless params and params.any?
|
136
|
+
self + (self.match(/\?/) ? "&" : "?") + params.to_query
|
137
|
+
end
|
126
138
|
end
|
@@ -1,21 +1,26 @@
|
|
1
1
|
require "spec_helper"
|
2
2
|
|
3
3
|
describe "Hash" do
|
4
|
-
describe "#
|
4
|
+
describe "#to_query" do
|
5
5
|
it "should join params with '&'" do
|
6
6
|
hash = {:some => "value", :another => "thing"}
|
7
|
-
parts = hash.
|
7
|
+
parts = hash.to_query.split("&")
|
8
8
|
parts.sort.should eql(['another=thing', 'some=value'])
|
9
9
|
end
|
10
10
|
|
11
11
|
it "should return items as urlencoded string" do
|
12
12
|
hash = {:another => "speciál"}
|
13
|
-
hash.
|
13
|
+
hash.to_query.should eql("another=speci%C3%A1l")
|
14
14
|
end
|
15
15
|
|
16
16
|
it "should support multi-level hashes" do
|
17
17
|
hash = {:some => {:nested => :thing}}
|
18
|
-
hash.
|
18
|
+
hash.to_query.should eql("some%5Bnested%5D=thing")
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should support a namespace" do
|
22
|
+
hash = {:nested => :thing}
|
23
|
+
hash.to_query(:some).should eql("some%5Bnested%5D=thing")
|
19
24
|
end
|
20
25
|
end
|
21
26
|
|
@@ -63,7 +68,7 @@ describe "Hash" do
|
|
63
68
|
hash = {:some => {:nested => {:is => ["really", "groovy"]}}}
|
64
69
|
hash.to_a_rec.should eql([[:some, [[:nested, [[:is, ["really", "groovy"]]]]]]])
|
65
70
|
end
|
66
|
-
|
71
|
+
|
67
72
|
it "should return an array from hashes within arrays" do
|
68
73
|
hash = {:some => [:nested, {:is => ["really", "groovy"]}]}
|
69
74
|
hash.to_a_rec.should eql([[:some, [:nested, [[:is, ["really", "groovy"]]]]]])
|
@@ -76,7 +76,7 @@ describe "String" do
|
|
76
76
|
end
|
77
77
|
end
|
78
78
|
|
79
|
-
describe "snip" do
|
79
|
+
describe "#snip" do
|
80
80
|
it "should truncate string to given length while preserving words" do
|
81
81
|
"O Brother, Where Art Thou?".snip(13).should eql("O Brother, Where…")
|
82
82
|
end
|
@@ -96,7 +96,7 @@ describe "String" do
|
|
96
96
|
it "should strip trailing white space" do
|
97
97
|
"O Brother, Where Art Thou? ".snip(26).should eql("O Brother, Where Art Thou?")
|
98
98
|
end
|
99
|
-
|
99
|
+
|
100
100
|
it "should strip leading white space" do
|
101
101
|
" O Brother, Where Art Thou?".snip(26).should eql("O Brother, Where Art Thou?")
|
102
102
|
end
|
@@ -106,7 +106,7 @@ describe "String" do
|
|
106
106
|
end
|
107
107
|
end
|
108
108
|
|
109
|
-
describe "strip_tags" do
|
109
|
+
describe "#strip_tags" do
|
110
110
|
it "should remove all tags from string" do
|
111
111
|
"<p>Think<br />different</p>".strip_tags.should eql("Thinkdifferent")
|
112
112
|
end
|
@@ -116,11 +116,29 @@ describe "String" do
|
|
116
116
|
end
|
117
117
|
end
|
118
118
|
|
119
|
-
describe "strip_tags!" do
|
119
|
+
describe "#strip_tags!" do
|
120
120
|
it "should strip tags on self" do
|
121
121
|
string = "<p>Think<br />different</p>"
|
122
122
|
string.strip_tags!
|
123
123
|
string.should eql("Thinkdifferent")
|
124
124
|
end
|
125
125
|
end
|
126
|
+
|
127
|
+
describe "#with_params" do
|
128
|
+
it "should return the current string unless params are given" do
|
129
|
+
"http://vidibus.org".with_params.should eql("http://vidibus.org")
|
130
|
+
end
|
131
|
+
|
132
|
+
it "should return the current string if an empty hash is given" do
|
133
|
+
"http://vidibus.org".with_params({}).should eql("http://vidibus.org")
|
134
|
+
end
|
135
|
+
|
136
|
+
it "should return the current string with params as query" do
|
137
|
+
"http://vidibus.org".with_params(:awesome => "yes").should eql("http://vidibus.org?awesome=yes")
|
138
|
+
end
|
139
|
+
|
140
|
+
it "should append params to existing query" do
|
141
|
+
"http://vidibus.org?opensource=true".with_params(:awesome => "yes").should eql("http://vidibus.org?opensource=true&awesome=yes")
|
142
|
+
end
|
143
|
+
end
|
126
144
|
end
|
@@ -1,59 +1,57 @@
|
|
1
1
|
# Generated by jeweler
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{vidibus-core_extensions}
|
8
|
-
s.version = "0.3.
|
8
|
+
s.version = "0.3.14"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Andre Pankratz"]
|
12
|
-
s.date = %q{
|
12
|
+
s.date = %q{2011-01-14}
|
13
13
|
s.description = %q{Provides some extensions to the ruby core.}
|
14
14
|
s.email = %q{andre@vidibus.com}
|
15
15
|
s.extra_rdoc_files = [
|
16
16
|
"LICENSE",
|
17
|
-
|
17
|
+
"README.rdoc"
|
18
18
|
]
|
19
19
|
s.files = [
|
20
20
|
".bundle/config",
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
"vidibus-core_extensions.gemspec"
|
21
|
+
".document",
|
22
|
+
".rspec",
|
23
|
+
"Gemfile",
|
24
|
+
"Gemfile.lock",
|
25
|
+
"LICENSE",
|
26
|
+
"README.rdoc",
|
27
|
+
"Rakefile",
|
28
|
+
"VERSION",
|
29
|
+
"lib/vidibus-core_extensions.rb",
|
30
|
+
"lib/vidibus/core_extensions.rb",
|
31
|
+
"lib/vidibus/core_extensions/array.rb",
|
32
|
+
"lib/vidibus/core_extensions/file_utils.rb",
|
33
|
+
"lib/vidibus/core_extensions/hash.rb",
|
34
|
+
"lib/vidibus/core_extensions/object.rb",
|
35
|
+
"lib/vidibus/core_extensions/string.rb",
|
36
|
+
"spec/spec_helper.rb",
|
37
|
+
"spec/vidibus/core_extensions/array_spec.rb",
|
38
|
+
"spec/vidibus/core_extensions/file_utils_spec.rb",
|
39
|
+
"spec/vidibus/core_extensions/hash_spec.rb",
|
40
|
+
"spec/vidibus/core_extensions/object_spec.rb",
|
41
|
+
"spec/vidibus/core_extensions/string_spec.rb",
|
42
|
+
"vidibus-core_extensions.gemspec"
|
44
43
|
]
|
45
44
|
s.homepage = %q{http://github.com/vidibus/vidibus-core_extensions}
|
46
|
-
s.rdoc_options = ["--charset=UTF-8"]
|
47
45
|
s.require_paths = ["lib"]
|
48
46
|
s.rubygems_version = %q{1.3.7}
|
49
47
|
s.summary = %q{Extends the ruby core.}
|
50
48
|
s.test_files = [
|
51
49
|
"spec/spec_helper.rb",
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
50
|
+
"spec/vidibus/core_extensions/array_spec.rb",
|
51
|
+
"spec/vidibus/core_extensions/file_utils_spec.rb",
|
52
|
+
"spec/vidibus/core_extensions/hash_spec.rb",
|
53
|
+
"spec/vidibus/core_extensions/object_spec.rb",
|
54
|
+
"spec/vidibus/core_extensions/string_spec.rb"
|
57
55
|
]
|
58
56
|
|
59
57
|
if s.respond_to? :specification_version then
|
@@ -61,9 +59,18 @@ Gem::Specification.new do |s|
|
|
61
59
|
s.specification_version = 3
|
62
60
|
|
63
61
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
62
|
+
s.add_development_dependency(%q<rspec>, ["~> 2.0.0.beta.20"])
|
63
|
+
s.add_development_dependency(%q<rr>, [">= 0"])
|
64
|
+
s.add_development_dependency(%q<relevance-rcov>, [">= 0"])
|
64
65
|
else
|
66
|
+
s.add_dependency(%q<rspec>, ["~> 2.0.0.beta.20"])
|
67
|
+
s.add_dependency(%q<rr>, [">= 0"])
|
68
|
+
s.add_dependency(%q<relevance-rcov>, [">= 0"])
|
65
69
|
end
|
66
70
|
else
|
71
|
+
s.add_dependency(%q<rspec>, ["~> 2.0.0.beta.20"])
|
72
|
+
s.add_dependency(%q<rr>, [">= 0"])
|
73
|
+
s.add_dependency(%q<relevance-rcov>, [">= 0"])
|
67
74
|
end
|
68
75
|
end
|
69
76
|
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vidibus-core_extensions
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 15
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 3
|
9
|
-
-
|
10
|
-
version: 0.3.
|
9
|
+
- 14
|
10
|
+
version: 0.3.14
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Andre Pankratz
|
@@ -15,10 +15,55 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date:
|
18
|
+
date: 2011-01-14 00:00:00 +01:00
|
19
19
|
default_executable:
|
20
|
-
dependencies:
|
21
|
-
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
type: :development
|
23
|
+
prerelease: false
|
24
|
+
name: rspec
|
25
|
+
version_requirements: &id001 !ruby/object:Gem::Requirement
|
26
|
+
none: false
|
27
|
+
requirements:
|
28
|
+
- - ~>
|
29
|
+
- !ruby/object:Gem::Version
|
30
|
+
hash: 62196427
|
31
|
+
segments:
|
32
|
+
- 2
|
33
|
+
- 0
|
34
|
+
- 0
|
35
|
+
- beta
|
36
|
+
- 20
|
37
|
+
version: 2.0.0.beta.20
|
38
|
+
requirement: *id001
|
39
|
+
- !ruby/object:Gem::Dependency
|
40
|
+
type: :development
|
41
|
+
prerelease: false
|
42
|
+
name: rr
|
43
|
+
version_requirements: &id002 !ruby/object:Gem::Requirement
|
44
|
+
none: false
|
45
|
+
requirements:
|
46
|
+
- - ">="
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
hash: 3
|
49
|
+
segments:
|
50
|
+
- 0
|
51
|
+
version: "0"
|
52
|
+
requirement: *id002
|
53
|
+
- !ruby/object:Gem::Dependency
|
54
|
+
type: :development
|
55
|
+
prerelease: false
|
56
|
+
name: relevance-rcov
|
57
|
+
version_requirements: &id003 !ruby/object:Gem::Requirement
|
58
|
+
none: false
|
59
|
+
requirements:
|
60
|
+
- - ">="
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
hash: 3
|
63
|
+
segments:
|
64
|
+
- 0
|
65
|
+
version: "0"
|
66
|
+
requirement: *id003
|
22
67
|
description: Provides some extensions to the ruby core.
|
23
68
|
email: andre@vidibus.com
|
24
69
|
executables: []
|
@@ -31,7 +76,6 @@ extra_rdoc_files:
|
|
31
76
|
files:
|
32
77
|
- .bundle/config
|
33
78
|
- .document
|
34
|
-
- .gitignore
|
35
79
|
- .rspec
|
36
80
|
- Gemfile
|
37
81
|
- Gemfile.lock
|
@@ -58,8 +102,8 @@ homepage: http://github.com/vidibus/vidibus-core_extensions
|
|
58
102
|
licenses: []
|
59
103
|
|
60
104
|
post_install_message:
|
61
|
-
rdoc_options:
|
62
|
-
|
105
|
+
rdoc_options: []
|
106
|
+
|
63
107
|
require_paths:
|
64
108
|
- lib
|
65
109
|
required_ruby_version: !ruby/object:Gem::Requirement
|