superstring 0.0.1 → 0.0.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/lib/superstring.rb CHANGED
@@ -94,23 +94,20 @@ class ::String
94
94
  safer
95
95
  end
96
96
 
97
- DOMAIN_SEGMENT_PATTERN = "[a-z0-9][a-z0-9-]+"
98
- URI_PATTERN =
99
- %r{
100
- ^
101
- \s* # optional leading whitespace
102
- (?:[a-z]+:)? # optional protocol, eg http:
103
- // # required //
104
- (?:www\.)? # 'www.' is ignored
105
- (
106
- #{DOMAIN_SEGMENT_PATTERN} # first domain segment
107
- (?:\.#{DOMAIN_SEGMENT_PATTERN})+ # one or more additional domain segments
108
- )
109
- (?:/|$) # followed by a '/' or end of line
110
- }ix
111
-
112
97
  def domain
113
- match(URI_PATTERN).to_a[1]
98
+ host_without_www
99
+ end
100
+
101
+ def host_without_www
102
+ host.gsub(/^www./, '') if host
103
+ end
104
+
105
+ def host
106
+ uri.host if uri
107
+ end
108
+
109
+ def uri
110
+ URI.parse self rescue nil
114
111
  end
115
112
 
116
113
  def strip_lines!
@@ -1,3 +1,3 @@
1
1
  module Superstring
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -46,29 +46,32 @@ describe ::String do
46
46
  it { "\n\nfoo\nbar\n\n".compact_whitespace.should == "foo bar" }
47
47
  end
48
48
 
49
- describe "#domain" do
50
- it { "http://mediawiki.org".domain.should == "mediawiki.org"}
51
- it { "http://mediawiki.org/".domain.should == "mediawiki.org"}
52
- it { "http://mediawiki.org/foo.html".domain.should == "mediawiki.org"}
53
- it { "https://mediawiki.org/".domain.should == "mediawiki.org"}
54
- it { "gopher://mediawiki.org/".domain.should == "mediawiki.org"}
55
- it { "anyprotocol://mediawiki.org/".domain.should == "mediawiki.org"}
56
- it { "//mediawiki.org/".domain.should == "mediawiki.org"}
49
+ describe "#host" do
50
+ it { "http://mediawiki.org".host.should == "mediawiki.org"}
51
+ it { "http://mediawiki.org/".host.should == "mediawiki.org"}
52
+ it { "http://mediawiki.org/foo.html".host.should == "mediawiki.org"}
53
+ it { "https://mediawiki.org/".host.should == "mediawiki.org"}
54
+ it { "gopher://mediawiki.org/".host.should == "mediawiki.org"}
55
+ it { "anyprotocol://mediawiki.org/".host.should == "mediawiki.org"}
56
+ it { "//mediawiki.org/".host.should == "mediawiki.org"}
57
57
  context "subdomains" do
58
- it { "http://www.mediawiki.org/".domain.should == "mediawiki.org"}
59
- it { "http://dance.dance.mediawiki.org/".domain.should == "dance.dance.mediawiki.org"}
60
- it { "http://dance-dance-.mediawiki.org/".domain.should == "dance-dance-.mediawiki.org"}
61
- it { "http://www.dance.dance.mediawiki.org/".domain.should == "dance.dance.mediawiki.org"}
58
+ it { "http://www.mediawiki.org/".host.should == "www.mediawiki.org"}
59
+ it { "http://dance.dance.mediawiki.org/".host.should == "dance.dance.mediawiki.org"}
60
+ it { "http://dance-dance-.mediawiki.org/".host.should == "dance-dance-.mediawiki.org"}
61
+ it { "http://www.dance.dance.mediawiki.org/".host.should == "www.dance.dance.mediawiki.org"}
62
62
  end
63
63
  context "invalid URIs" do
64
- it { "".domain.should == nil }
65
- it { "/mediawiki.org".domain.should == nil }
66
- it { "http://mediawiki.org~~~".domain.should == nil }
67
- it { "http://-illegal-subdomain.mediawiki.org".domain.should == nil }
68
- it { "http://-illegal-subdomain.mediawiki.org".domain.should == nil }
64
+ it { "".host.should == nil }
65
+ it { "/mediawiki.org".host.should == nil }
66
+ it { "http://mediawiki.org~~~".host.should == nil }
69
67
  end
70
68
  end
71
69
 
70
+ describe "#host_without_www, #domain" do
71
+ it { "http://www.mediawiki.org/".host_without_www.should == "mediawiki.org"}
72
+ it { "http://www.mediawiki.org/".domain.should == "mediawiki.org"}
73
+ end
74
+
72
75
  describe "#slug" do
73
76
  context "slugs safe for file names, and (arguably) URLs" do
74
77
  it { "".slug(:page).should == "" }
@@ -137,4 +140,11 @@ describe ::String do
137
140
  it { "".in?(nil).should == false }
138
141
  end
139
142
 
140
- end
143
+ # Note: we don't define this method; it's from the shellescape standard ruby library
144
+ describe "#shellescape" do
145
+ it {"Nahko-Bear-(Medicine-for-the-People)-ღ-Aloha-Ke-Akua-ღ".shellescape.should ==
146
+ "Nahko-Bear-\\(Medicine-for-the-People\\)-\\ღ-Aloha-Ke-Akua-\\ღ" }
147
+ end
148
+
149
+
150
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: superstring
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
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-12-18 00:00:00.000000000 Z
12
+ date: 2013-03-07 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport