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.
@@ -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: