check_everything 0.1.4 → 0.2.5
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 +4 -4
- data/README.md +24 -9
- data/lib/check_everything.rb +73 -12
- metadata +22 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4780781db8fef0b550c8f5030cc4739377a73a4b
|
4
|
+
data.tar.gz: 4fc4ea0c7abe0afb8e083bcad632ee8c3dc3392c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2015d412a6e590c2c69f6f7b3b1fc8682c5917fc00c825aee9166863866078db14595738e2fcd02f3668ea6727cbcabb169ffff44ddc329ec5f204a462a22e26
|
7
|
+
data.tar.gz: 1cc5bc85325ae4f2d906fb0d2d624c1815f0b1e60208eb1fb63320e9b8bad0981df8ddba317c40e5912628434e5f1f6fe20b8c70b91f0d29f6a0be82dcc4a487
|
data/README.md
CHANGED
@@ -1,31 +1,46 @@
|
|
1
1
|
# check_everything
|
2
2
|
|
3
3
|
## Open frequently accessed websites from your command line, in one go!
|
4
|
+
####(Also includes the ability to find documentation for the Ruby core classes)
|
4
5
|
|
5
6
|
### Install
|
6
7
|
|
7
|
-
Type
|
8
|
+
Type `gem install check_everything` into the command line.
|
8
9
|
|
9
10
|
### Run
|
10
11
|
|
11
|
-
Type
|
12
|
+
Type `check_everything` into the command line to pull up the default URLs.
|
12
13
|
|
13
14
|
You can add the following tags (listed in order of precedence; only the first
|
14
15
|
will be evaluated):
|
15
16
|
|
16
17
|
| Tag | Result |
|
17
18
|
|-----|-----|
|
18
|
-
| \-h, \-\-help | display the help message
|
19
|
-
| \-l, \-\-links | view/edit links and categories
|
20
|
-
| \-
|
21
|
-
| \-
|
22
|
-
|
|
19
|
+
| \-h, \-\-help | display the help message |
|
20
|
+
| \-l, \-\-links | view/edit links and categories |
|
21
|
+
| \-r, \-\-ruby | install Ruby Documentation functionality |
|
22
|
+
| \-c, \-\-categories | view the currently defined categories |
|
23
|
+
| \-a, \-\-all | open all websites |
|
24
|
+
| <category> | open a specific site group |
|
25
|
+
| <Ruby class> | open Ruby documentation (if feature is installed) |
|
23
26
|
|
24
27
|
|
25
28
|
### Configure
|
26
29
|
|
27
|
-
|
28
|
-
|
30
|
+
On your first run, you will be asked to do 2 things:
|
31
|
+
|
32
|
+
1. Choose whether to install Ruby Documentation lookup functionality. This will
|
33
|
+
give you command-line access to Ruby Documentation for the Core classes. For
|
34
|
+
example, to see documentation for array, type `check_everything array`
|
35
|
+
|
36
|
+
2. Input your URLs and customize your categories! Check out the instructions in
|
37
|
+
the configuration file.
|
38
|
+
|
39
|
+
### Update Your Bash Profile (optional)
|
40
|
+
|
41
|
+
You can update your Bash profile (~/.bash_profile) with:
|
42
|
+
```alias check="check_everything"```
|
43
|
+
to just type `check` instead of `check_everything` and make things even simpler!
|
29
44
|
|
30
45
|
### Enjoy!
|
31
46
|
|
data/lib/check_everything.rb
CHANGED
@@ -1,19 +1,42 @@
|
|
1
|
+
require 'open-uri'
|
2
|
+
require 'nokogiri'
|
3
|
+
|
1
4
|
class CheckEverything
|
2
5
|
KNOWN_TAGS = {
|
3
6
|
:help => ['-h','--help'],
|
4
7
|
:links => ['-l','--links'],
|
8
|
+
:ruby => ['-r','--ruby'],
|
5
9
|
:categories => ['-c', '--categories'],
|
6
10
|
:all => ['-a', '--all']
|
7
11
|
}
|
8
|
-
|
12
|
+
LINKPATH = "#{File.expand_path('~')}/.check_everything_links"
|
13
|
+
LINKFILE = "#{LINKPATH}/links.txt"
|
14
|
+
RUBYFILE = "#{LINKPATH}/ruby.txt"
|
9
15
|
|
10
16
|
def self.run
|
11
17
|
@argv = ARGV.map(&:downcase)
|
18
|
+
until ARGV.empty?
|
19
|
+
ARGV.pop
|
20
|
+
end
|
21
|
+
# Only assemble Ruby development library if requested to.
|
22
|
+
@ruby_dev_assemble = false
|
12
23
|
# Create a new link file if none has been created yet
|
13
|
-
|
14
|
-
|
24
|
+
if !File.exists?(LINKFILE)
|
25
|
+
# If a previous version created a file rather than a directory, move it into
|
26
|
+
# the new directory.
|
27
|
+
if File.exists?(LINKPATH)
|
28
|
+
system("mv #{LINKPATH} #{LINKPATH}2")
|
29
|
+
system("mkdir #{LINKPATH}")
|
30
|
+
system("mv #{LINKPATH}2 #{LINKFILE}")
|
31
|
+
else
|
32
|
+
system("mkdir #{LINKPATH}")
|
33
|
+
system("cp #{File.dirname(__FILE__)}/check_everything/links.txt #{LINKFILE}")
|
34
|
+
end
|
15
35
|
@argv = ["-l"]
|
16
|
-
|
36
|
+
print "Are you a Ruby Dev who will want documentation-checking ",
|
37
|
+
"functionality? [Y/n] "
|
38
|
+
@ruby_dev_assemble = true unless gets.strip.downcase == 'n'
|
39
|
+
puts "\nPlease customize your installation.",
|
17
40
|
"This message will only be shown once.",
|
18
41
|
"To open again and customize, just enter 'check_everything -l' to open",
|
19
42
|
"the link file."
|
@@ -24,8 +47,10 @@ class CheckEverything
|
|
24
47
|
extract_links
|
25
48
|
|
26
49
|
# First check for unknown arguments and print out a helpful message.
|
27
|
-
known_tags = KNOWN_TAGS.values.flatten + @links.keys
|
28
|
-
unmatched_args = @argv.select
|
50
|
+
known_tags = KNOWN_TAGS.values.flatten + @links.keys + @ruby_links
|
51
|
+
unmatched_args = @argv.select do |arg|
|
52
|
+
!known_tags.any?{|known_tag| known_tag.downcase == arg.downcase}
|
53
|
+
end
|
29
54
|
if !unmatched_args.empty?
|
30
55
|
puts "\nUnknown option#{@argv.size > 1 ? "s" : nil}: " +
|
31
56
|
"#{unmatched_args.join(" ")}"
|
@@ -40,8 +65,14 @@ class CheckEverything
|
|
40
65
|
|
41
66
|
# Edit the tags and links.
|
42
67
|
elsif @argv.any? {|arg| KNOWN_TAGS[:links].include?(arg)}
|
68
|
+
# If asked to build the Ruby Dev file, build it!
|
69
|
+
assemble_ruby_docs_file if @ruby_dev_assemble
|
70
|
+
|
43
71
|
system("open #{LINKFILE}")
|
44
72
|
|
73
|
+
elsif @argv.any? {|arg| KNOWN_TAGS[:ruby].include?(arg)}
|
74
|
+
assemble_ruby_docs_file
|
75
|
+
|
45
76
|
# Check for errors; don't allow the user to see bad categories or open up
|
46
77
|
# websites if the categories are not formatted properly.
|
47
78
|
elsif @category_space
|
@@ -57,7 +88,7 @@ class CheckEverything
|
|
57
88
|
|
58
89
|
# Open up the websites!
|
59
90
|
else
|
60
|
-
|
91
|
+
open_links
|
61
92
|
end
|
62
93
|
end
|
63
94
|
|
@@ -67,9 +98,10 @@ class CheckEverything
|
|
67
98
|
puts
|
68
99
|
puts "Available tags:"
|
69
100
|
puts " -h, --help display the help message"
|
70
|
-
puts " -l, --links
|
101
|
+
puts " -l, --links view/edit links and categories"
|
102
|
+
puts " -r, --ruby install Ruby Documentation functionality"
|
71
103
|
puts " -c, --categories view the currently defined categories"
|
72
|
-
puts " -a, --all open all websites"
|
104
|
+
puts " -a, --all open all websites (will override documentation lookup)"
|
73
105
|
puts " <tags> open a specific site group"
|
74
106
|
puts " (multiple are allowed, separated by spaces)"
|
75
107
|
puts
|
@@ -82,7 +114,20 @@ class CheckEverything
|
|
82
114
|
@links.keys.sort.each {|key| puts " #{key}"}
|
83
115
|
end
|
84
116
|
|
85
|
-
def self.
|
117
|
+
def self.assemble_ruby_docs_file
|
118
|
+
ruby_doc = Nokogiri::HTML(open("http://ruby-doc.org/core/"))
|
119
|
+
class_names = []
|
120
|
+
ruby_doc.css("p.class a").each{|class_name| class_names << class_name.text}
|
121
|
+
class_names.map!{|class_name| class_name.gsub(/::/,"/")}
|
122
|
+
|
123
|
+
system("touch #{File.dirname(__FILE__)}/ruby_doc")
|
124
|
+
File.open("#{File.dirname(__FILE__)}/ruby_doc", 'w') { |f|
|
125
|
+
f.print class_names.join("\n")
|
126
|
+
}
|
127
|
+
system("cp #{File.dirname(__FILE__)}/ruby_doc #{RUBYFILE}")
|
128
|
+
end
|
129
|
+
|
130
|
+
def self.open_links
|
86
131
|
@argv << "default" if @argv.empty?
|
87
132
|
|
88
133
|
# If -a or --all is specified, select all links. Otherwise, select specified
|
@@ -90,7 +135,17 @@ class CheckEverything
|
|
90
135
|
if @argv.any?{|arg| KNOWN_TAGS[:all].include?(arg)}
|
91
136
|
links = @links.values.flatten.uniq
|
92
137
|
else
|
93
|
-
links = @argv.map{|
|
138
|
+
links = @argv.map{|category| @links[category]}.flatten.compact.uniq
|
139
|
+
# If a Ruby class name has been specified, open documentation for that class.
|
140
|
+
if File.exists?(RUBYFILE)
|
141
|
+
classes = read_file(RUBYFILE).split
|
142
|
+
class_matches = classes.map { |class_name|
|
143
|
+
class_name if @argv.any? {|name| class_name.downcase == name.downcase}
|
144
|
+
}.compact
|
145
|
+
if class_matches.size > 0
|
146
|
+
class_matches.each {|link| links << "ruby-doc.org/core/#{link}.html"}
|
147
|
+
end
|
148
|
+
end
|
94
149
|
end
|
95
150
|
|
96
151
|
links.each do |url|
|
@@ -98,7 +153,7 @@ class CheckEverything
|
|
98
153
|
system("open #{url}")
|
99
154
|
end
|
100
155
|
|
101
|
-
puts "\nIt's been a pleasure serving up your
|
156
|
+
puts "\nIt's been a pleasure serving up your websites!"
|
102
157
|
puts "Did you know you can use categories to open specific site groups? " +
|
103
158
|
"Enter 'check_everything --links' for details.\n" if ARGV.empty?
|
104
159
|
end
|
@@ -126,6 +181,12 @@ class CheckEverything
|
|
126
181
|
}
|
127
182
|
end
|
128
183
|
end
|
184
|
+
|
185
|
+
@ruby_links = []
|
186
|
+
if File.exists?(RUBYFILE)
|
187
|
+
classes = read_file(RUBYFILE).split
|
188
|
+
classes.each {|class_name| @ruby_links << class_name}
|
189
|
+
end
|
129
190
|
end
|
130
191
|
|
131
192
|
# Recursive helper method for extract_links
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: check_everything
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ariel Caplan
|
@@ -9,7 +9,27 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
date: 2014-02-12 00:00:00.000000000 Z
|
12
|
-
dependencies:
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: nokogiri
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ~>
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.6'
|
20
|
+
- - '>='
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 1.6.1
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '1.6'
|
30
|
+
- - '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 1.6.1
|
13
33
|
description: Open Frequently Used Websites from the Command Line!
|
14
34
|
email: ariel.caplan@flatironschool.com
|
15
35
|
executables:
|