domainr-cli 0.0.1
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.
- checksums.yaml +7 -0
- data/bin/domainr-cli +5 -0
- data/lib/domainr/cli.rb +15 -0
- data/lib/domainr/cli/commands.rb +42 -0
- data/lib/domainr/cli/version.rb +5 -0
- data/lib/hirb-colors.rb +1 -0
- data/lib/hirb/colors.rb +3 -0
- data/lib/hirb/colors/string_util.rb +100 -0
- data/lib/hirb/colors/version.rb +5 -0
- metadata +166 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 43e245b3dbb53d4f7a6e4cf2ce076744ba011f44
|
4
|
+
data.tar.gz: 1797c0457f13d551e6be93e619e3accb4723c9d7
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 0ce5622d62135c15bffa28834648bbbe1d55de63d2d2fc3303e8ac301d980dcecaa81ae57c8ede0b86d6a6ad8a15504b436bd62396d91dd05168490e6e07294f
|
7
|
+
data.tar.gz: 29ce048631b3c6c0c3870ffa1b6e9da6f0fc3b18d7cf7965a1f3371d9713029d9ee8713de0013cdc858a27f927405f10746b880d39c3cc6aad8d53816590f7dd
|
data/bin/domainr-cli
ADDED
data/lib/domainr/cli.rb
ADDED
@@ -0,0 +1,42 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
|
3
|
+
module Domainr
|
4
|
+
module CLI
|
5
|
+
class Commands < ::Thor
|
6
|
+
include Hirb::Console
|
7
|
+
|
8
|
+
package_name 'domainr-cli'
|
9
|
+
|
10
|
+
desc 'info', 'Request info on the specified domain'
|
11
|
+
def info(query)
|
12
|
+
ap client.info(query)
|
13
|
+
end
|
14
|
+
|
15
|
+
desc 'search', 'Query for availability on domains matching the provided keyword'
|
16
|
+
def search(query)
|
17
|
+
client.search(query).results.tap do |results|
|
18
|
+
available, unavailable = results.map! { |res|
|
19
|
+
res.suggestion = "#{res.domain.bold}#{res.path.underline}"
|
20
|
+
res
|
21
|
+
}.partition { |res| res.availability == 'available' }
|
22
|
+
|
23
|
+
available.map! { |res| res.available = '✔'.green; res }
|
24
|
+
unavailable.map! { |res| res.available = '✗'.red; res }
|
25
|
+
|
26
|
+
table available + unavailable,
|
27
|
+
fields: [:suggestion, :available],
|
28
|
+
unicode: true
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
private
|
33
|
+
|
34
|
+
def client
|
35
|
+
@client ||= begin
|
36
|
+
Domainr.client_id = 'd03a6364139c4b32bb969d45db549b10'
|
37
|
+
Domainr
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
data/lib/hirb-colors.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require "hirb/colors"
|
data/lib/hirb/colors.rb
ADDED
@@ -0,0 +1,100 @@
|
|
1
|
+
module Hirb
|
2
|
+
module Colors
|
3
|
+
module StringUtil
|
4
|
+
COLORIZED_REGEX = /\e\[(\d|;)+m/
|
5
|
+
|
6
|
+
# :stopdoc:
|
7
|
+
if RUBY_VERSION < '1.9'
|
8
|
+
def size(string)
|
9
|
+
string.gsub(COLORIZED_REGEX, '').scan(/./).length
|
10
|
+
end
|
11
|
+
|
12
|
+
def rjust(string, desired_length)
|
13
|
+
leftover = desired_length - size(string)
|
14
|
+
leftover > 0 ? " " * leftover + string : string
|
15
|
+
end
|
16
|
+
|
17
|
+
def slice(string, start, finish)
|
18
|
+
if string =~ COLORIZED_REGEX
|
19
|
+
slice_colorized_string(string, start, finish)
|
20
|
+
else
|
21
|
+
string.scan(/./).slice(start, finish).join('')
|
22
|
+
end
|
23
|
+
end
|
24
|
+
else
|
25
|
+
def size(string)
|
26
|
+
string.gsub(COLORIZED_REGEX, '').length
|
27
|
+
end
|
28
|
+
|
29
|
+
def ljust(string, desired_length)
|
30
|
+
leftover = desired_length - size(string)
|
31
|
+
leftover > 0 ? string + " " * leftover : string
|
32
|
+
end
|
33
|
+
|
34
|
+
def rjust(string, desired_length)
|
35
|
+
leftover = desired_length - size(string)
|
36
|
+
leftover > 0 ? " " * leftover + string : string
|
37
|
+
end
|
38
|
+
|
39
|
+
def slice(*args)
|
40
|
+
string = args.shift
|
41
|
+
|
42
|
+
# if string contains colorization code
|
43
|
+
if string =~ COLORIZED_REGEX
|
44
|
+
slice_start, slice_end = args
|
45
|
+
|
46
|
+
slice_colorized_string(string, slice_start, slice_end)
|
47
|
+
else
|
48
|
+
string.slice(*args)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
def slice_colorized_string(string, slice_start, slice_end)
|
54
|
+
# store the codes and their position in the original string
|
55
|
+
markers = []
|
56
|
+
string.scan(COLORIZED_REGEX) do |code|
|
57
|
+
marker = { :code => code,
|
58
|
+
:position => Regexp.last_match.offset(0).first
|
59
|
+
}
|
60
|
+
markers << marker
|
61
|
+
end
|
62
|
+
|
63
|
+
markers_before_slice = []
|
64
|
+
markers_in_slice = []
|
65
|
+
markers_after_slice = []
|
66
|
+
# interate over elements in code_markers
|
67
|
+
# will be mutating array so cannot use .each
|
68
|
+
markers.size.times do
|
69
|
+
marker = markers.shift
|
70
|
+
# shift remaining markers position by that of the popped code
|
71
|
+
markers.map! { |c| c[:position] -= marker[:code].size; c }
|
72
|
+
if marker[:position] <= slice_start
|
73
|
+
markers_before_slice << marker
|
74
|
+
elsif marker[:position] > slice_start && marker[:position] < slice_end
|
75
|
+
markers_in_slice << marker
|
76
|
+
else
|
77
|
+
markers_after_slice << marker
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
# slice the string without the codes
|
82
|
+
slice = string.gsub(COLORIZED_REGEX, '').slice(slice_start, slice_end)
|
83
|
+
|
84
|
+
# insert codes back into the slice
|
85
|
+
markers_in_slice.each do |marker|
|
86
|
+
slice.insert(marker[:position], marker[:code])
|
87
|
+
markers_in_slice.map! { |c| c[:position] += marker[:code].size; c }
|
88
|
+
end
|
89
|
+
|
90
|
+
markers_before_slice.each { |marker| slice.insert(0, marker[:code])}
|
91
|
+
markers_after_slice.each { |marker| slice << marker[:code] }
|
92
|
+
|
93
|
+
slice
|
94
|
+
end
|
95
|
+
#:startdoc:
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
Hirb::String.extend(Hirb::Colors::StringUtil)
|
metadata
ADDED
@@ -0,0 +1,166 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: domainr-cli
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Dimitris Zorbas
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-08-20 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rubocop
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: domainr
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: thor
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0.19'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0.19'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: awesome_print
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: colorize
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 0.7.5
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 0.7.5
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: hirb
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :runtime
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
description: Command line interface to https://domainr.com/
|
126
|
+
email:
|
127
|
+
- dimitrisplusplus@gmail.com
|
128
|
+
executables:
|
129
|
+
- domainr-cli
|
130
|
+
extensions: []
|
131
|
+
extra_rdoc_files: []
|
132
|
+
files:
|
133
|
+
- bin/domainr-cli
|
134
|
+
- lib/domainr/cli.rb
|
135
|
+
- lib/domainr/cli/commands.rb
|
136
|
+
- lib/domainr/cli/version.rb
|
137
|
+
- lib/hirb-colors.rb
|
138
|
+
- lib/hirb/colors.rb
|
139
|
+
- lib/hirb/colors/string_util.rb
|
140
|
+
- lib/hirb/colors/version.rb
|
141
|
+
homepage: https://github.com/Zorbash/domainr-cli
|
142
|
+
licenses:
|
143
|
+
- MIT
|
144
|
+
metadata: {}
|
145
|
+
post_install_message:
|
146
|
+
rdoc_options: []
|
147
|
+
require_paths:
|
148
|
+
- lib
|
149
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
150
|
+
requirements:
|
151
|
+
- - ">="
|
152
|
+
- !ruby/object:Gem::Version
|
153
|
+
version: '0'
|
154
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
155
|
+
requirements:
|
156
|
+
- - ">="
|
157
|
+
- !ruby/object:Gem::Version
|
158
|
+
version: '0'
|
159
|
+
requirements: []
|
160
|
+
rubyforge_project:
|
161
|
+
rubygems_version: 2.2.2
|
162
|
+
signing_key:
|
163
|
+
specification_version: 4
|
164
|
+
summary: A cli utility to lookup domains powered by Domainr
|
165
|
+
test_files: []
|
166
|
+
has_rdoc:
|