domainr-cli 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'domainr/cli'
4
+
5
+ Domainr::CLI::Commands.start(ARGV)
@@ -0,0 +1,15 @@
1
+ require 'bundler/setup'
2
+
3
+ require 'thor'
4
+ require 'domainr'
5
+ require 'colorize'
6
+ require 'hirb'
7
+ require 'awesome_print'
8
+
9
+ require 'domainr/cli/commands'
10
+ require 'hirb-colors'
11
+
12
+ module Domainr
13
+ module CLI
14
+ end
15
+ end
@@ -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
@@ -0,0 +1,5 @@
1
+ module Domainr
2
+ module CLI
3
+ VERSION = '0.0.1'
4
+ end
5
+ end
@@ -0,0 +1 @@
1
+ require "hirb/colors"
@@ -0,0 +1,3 @@
1
+ require 'hirb'
2
+ require 'hirb/colors/version'
3
+ require 'hirb/colors/string_util'
@@ -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)
@@ -0,0 +1,5 @@
1
+ module Hirb
2
+ module Colors
3
+ VERSION = "0.0.1"
4
+ end
5
+ end
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: