ryodo 0.2.0 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -21,6 +21,7 @@ dom = Ryodo.parse("my.awesome.domain.co.jp")
21
21
  # SUBDOMAIN DOMAIN TLD
22
22
  dom.tld #=> "co.jp" - returns only the public suffix
23
23
  dom.domain #=> "domain.co.jp" - returns only registered/registrable domain
24
+ dom.sld #=> "domain" - returns only registered/registrable domain name w/o TLD
24
25
  dom.subdomain #=> "my.awesome" - returns only subdomain parts
25
26
  dom #=> "my.awesome.domain.co.jp" - returns full domain string
26
27
  dom.fqdn #=> "my.awesome.domain.co.jp." - full domain + trailing dot
@@ -32,6 +33,7 @@ dom.fqdn.reverse #=> ".jp.co.domain.awesome.my"
32
33
 
33
34
  dom.to_a #=> ["my","awesome","domain","co","jp"]
34
35
  dom.domain.to_a #=> ["domain","co","jp"]
36
+ dom.sld.to_a #=> ["domain"]
35
37
  dom.subdomain.to_a #=> ["my","awesome"]
36
38
  dom.fqdn.to_a #=> ["my","awesome","domain","co","jp",""]
37
39
 
@@ -50,6 +52,22 @@ Ryodo["my.awesome.domain.co.jp"]
50
52
  ryodo("my.awesome.domain.co.jp")
51
53
  ```
52
54
 
55
+
56
+ ### Quick check (.valid_domain?)
57
+
58
+ ```ruby
59
+ Ryodo.domain_valid?("my.awesome.domain.co.jp") #=> true
60
+ Ryodo.domain_valid?("co.jp") #=> false
61
+
62
+ # aliases
63
+ Ryodo.domain_valid?("my.awesome.domain.co.jp")
64
+ Ryodo.valid?("my.awesome.domain.co.jp")
65
+ Ryodo?("my.awesome.domain.co.jp")
66
+ ryodo?("my.awesome.domain.co.jp")
67
+ valid_domain?("my.awesome.domain.co.jp")
68
+ ```
69
+
70
+
53
71
  ### String extension
54
72
 
55
73
  ```ruby
@@ -57,6 +75,9 @@ require "ryodo/ext/string"
57
75
 
58
76
  "my.awesome.domain.co.jp".to_domain
59
77
  "my.awesome.domain.co.jp".ryodo
78
+
79
+ # validation
80
+ "my.awesome.domain.co.jp".valid_domain?
60
81
  ```
61
82
 
62
83
  In Gemfile:
@@ -65,17 +86,27 @@ In Gemfile:
65
86
  gem "ryodo", :require => ["ryodo", "ryodo/ext/string"]
66
87
  ```
67
88
 
89
+
68
90
  ### UTF-8 junkie?
69
91
 
70
92
  ```ruby
71
93
  # encoding: utf-8
94
+ require "ryodo/convenience/utf8"
95
+
72
96
  ryōdo("my.awesome.domain.co.jp")
73
97
  領土("my.awesome.domain.co.jp")
74
98
  りょうど("my.awesome.domain.co.jp")
99
+
100
+ ryōdo?("my.awesome.domain.co.jp")
101
+ 領土?("my.awesome.domain.co.jp")
102
+ りょうどか("my.awesome.domain.co.jp")
75
103
  ```
76
104
 
105
+
77
106
  ### Extension of URI
78
107
 
108
+ Ryodo can transparently hook into URI, so you can use every described method on `.host`.
109
+
79
110
  ```ruby
80
111
  require "ryodo/ext/uri"
81
112
 
@@ -89,6 +120,11 @@ uri.host.class
89
120
 
90
121
  uri.host.domain
91
122
  #=> "domain.com"
123
+
124
+ # awesome quick check before doing further stuff with URI
125
+ # because why you would do a request to an URI with obviously invalid domain?
126
+ uri.host.is_valid?
127
+ #=> true
92
128
  ```
93
129
 
94
130
  In Gemfile:
data/Rakefile CHANGED
@@ -37,11 +37,6 @@ task :pry do
37
37
  sh "pry -I lib -r ryodo --no-pager"
38
38
  end
39
39
 
40
- desc "Starts PRY with gem loaded (RYODO_NO_U)"
41
- task :pryu do
42
- sh "pry -I lib --no-pager -e 'RYODO_NO_U=true;require \"ryodo\"'"
43
- end
44
-
45
40
  desc "Run all specs"
46
41
  task RSpec::Core::RakeTask.new(:spec) do |t|
47
42
  t.pattern = 'spec/**/*_spec.rb'
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.0
1
+ 0.2.2
data/lib/ryodo.rb CHANGED
@@ -26,5 +26,5 @@ require "ryodo/methods"
26
26
  module Ryodo
27
27
  extend Ryodo::Methods
28
28
  require "ryodo/convenience"
29
- require "ryodo/convenience/.u" unless Kernel.const_defined?("RYODO_NO_U") || ENV['RYODO_NO_U']
30
29
  end
30
+ #require "ryodo/convenience/utf8"
@@ -7,6 +7,10 @@ module Ryodo
7
7
  Ryodo.parse(domain_string)
8
8
  end
9
9
 
10
+ def Ryodo?(domain_string)
11
+ Ryodo.valid?(domain_string)
12
+ end
13
+
10
14
  end
11
15
  end
12
16
 
@@ -0,0 +1,28 @@
1
+ # encoding: utf-8
2
+
3
+ module Ryodo
4
+ module Convenience
5
+ module UTF8
6
+
7
+ alias_method :ryodo, :Ryodo
8
+
9
+ alias_method :ryodo?, :Ryodo?
10
+ alias_method :valid_domain?, :Ryodo?
11
+
12
+ # Unicode junkie? ;o)
13
+ alias_method :"ryōdo", :Ryodo
14
+ alias_method :"ryōdo?", :Ryodo?
15
+
16
+ alias_method :"領土", :Ryodo
17
+ alias_method :"りょうど", :Ryodo
18
+
19
+ alias_method :"領土?", :Ryodo?
20
+ alias_method :"りょうどか", :Ryodo?
21
+ alias_method :"りょうどか。", :Ryodo?
22
+
23
+ end
24
+
25
+ end
26
+ end
27
+
28
+ include Ryodo::Convenience::UTF8
data/lib/ryodo/domain.rb CHANGED
@@ -72,6 +72,7 @@ module Ryodo
72
72
  def is_valid?
73
73
  !!@suffix && !!@secondary
74
74
  end
75
+ alias_method :valid?, :is_valid?
75
76
 
76
77
  def to_s
77
78
  @domain_string
data/lib/ryodo/methods.rb CHANGED
@@ -9,9 +9,10 @@ module Ryodo
9
9
  alias_method :[], :parse
10
10
 
11
11
  def domain_valid? domain_string
12
- self.parse(domain_string).is_valid?
12
+ self.parse(domain_string).valid?
13
13
  end
14
14
  alias_method :valid_domain?, :domain_valid?
15
+ alias_method :valid?, :domain_valid?
15
16
 
16
17
  end
17
18
  end
data/ryodo.gemspec CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "ryodo"
8
- s.version = "0.2.0"
8
+ s.version = "0.2.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Christoph Grabo"]
@@ -33,7 +33,7 @@ Gem::Specification.new do |s|
33
33
  "data/suffix.dat",
34
34
  "lib/ryodo.rb",
35
35
  "lib/ryodo/convenience.rb",
36
- "lib/ryodo/convenience/.u.rb",
36
+ "lib/ryodo/convenience/utf8.rb",
37
37
  "lib/ryodo/domain.rb",
38
38
  "lib/ryodo/ext/string.rb",
39
39
  "lib/ryodo/ext/uri.rb",
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ryodo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -148,7 +148,7 @@ files:
148
148
  - data/suffix.dat
149
149
  - lib/ryodo.rb
150
150
  - lib/ryodo/convenience.rb
151
- - lib/ryodo/convenience/.u.rb
151
+ - lib/ryodo/convenience/utf8.rb
152
152
  - lib/ryodo/domain.rb
153
153
  - lib/ryodo/ext/string.rb
154
154
  - lib/ryodo/ext/uri.rb
@@ -179,7 +179,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
179
179
  version: '0'
180
180
  segments:
181
181
  - 0
182
- hash: -3115775854791943199
182
+ hash: -174586125708232789
183
183
  required_rubygems_version: !ruby/object:Gem::Requirement
184
184
  none: false
185
185
  requirements:
@@ -1,19 +0,0 @@
1
- # encoding: utf-8
2
-
3
- module Ryodo
4
- module Convenience
5
- module U
6
-
7
- alias_method :ryodo, :Ryodo
8
-
9
- # Unicode junkie? ;o)
10
- alias_method :"ryōdo", :Ryodo
11
- alias_method :"領土", :Ryodo
12
- alias_method :"りょうど", :Ryodo
13
-
14
- end
15
-
16
- end
17
- end
18
-
19
- include Ryodo::Convenience::U