cheatly 0.0.1 → 0.0.2
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 +8 -8
- data/README.md +10 -0
- data/lib/cheatly/sheet.rb +56 -0
- data/lib/cheatly/version.rb +1 -1
- data/lib/cheatly.rb +25 -47
- metadata +2 -1
checksums.yaml
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
---
|
|
2
2
|
!binary "U0hBMQ==":
|
|
3
3
|
metadata.gz: !binary |-
|
|
4
|
-
|
|
4
|
+
ODM2NTY4NjI1YjY0ZGY0MGQwNzAyOTFkMDJjOWY3OGUzMjU3OWM4OA==
|
|
5
5
|
data.tar.gz: !binary |-
|
|
6
|
-
|
|
6
|
+
NzNiM2JiYzA0MDczYTJiMjRkNzhmYzk3ZWVjODRhOTZiOWY3YmU5NQ==
|
|
7
7
|
SHA512:
|
|
8
8
|
metadata.gz: !binary |-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
M2VhZGI5MWFmYTM1OTUwODRhODRmNDc3YTA0ZThlYzk4NDcxYTQ0NzhkOTRi
|
|
10
|
+
ZmM4NmZlYmM4MWY5ZmRmNDNlM2YyNjA2MTUzYzljNTgxMTA4MWJhYzI5NThk
|
|
11
|
+
M2IxZGNhNmVkNTY2YTM2ZTlhNDhmOGY1YzA0NzhhZjM4ZDM3MTQ=
|
|
12
12
|
data.tar.gz: !binary |-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
ZTM3NmFmNWYxYjJlZjMzZTU4NmJlODk4OGU2MmUyOWQ3OGFmZWNhMDgzYTZl
|
|
14
|
+
OWNhZDUxYWMxYzNkMmM5OGUwMGM0Y2Y4YjhlNzQzZTdiNzc0NWQwZjdhMTli
|
|
15
|
+
MmY2YzA5ZDc4NTY5MGE2MGQ1ZTYzMWFlZjBhYmMwMzY2ODlhZTk=
|
data/README.md
CHANGED
|
@@ -13,6 +13,12 @@ Submit a PR, adding a file to `sheets` folder, with the cheat-sheet name.
|
|
|
13
13
|
|
|
14
14
|
## Usage
|
|
15
15
|
|
|
16
|
+
### List all cheat sheets
|
|
17
|
+
|
|
18
|
+
$ cheatly list
|
|
19
|
+
|
|
20
|
+
### Show a cheat sheet
|
|
21
|
+
|
|
16
22
|
$ cheatly show gem_release
|
|
17
23
|
|
|
18
24
|
## Contributing
|
|
@@ -22,3 +28,7 @@ Submit a PR, adding a file to `sheets` folder, with the cheat-sheet name.
|
|
|
22
28
|
3. Commit your changes (`git commit -am 'Add some feature'`)
|
|
23
29
|
4. Push to the branch (`git push origin my-new-feature`)
|
|
24
30
|
5. Create new Pull Request
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
[](https://bitdeli.com/free "Bitdeli Badge")
|
|
34
|
+
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
module Cheatly
|
|
2
|
+
class Sheet
|
|
3
|
+
attr_accessor :title, :body
|
|
4
|
+
def initialize(title, body)
|
|
5
|
+
@title, @body = title, body
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
def to_s
|
|
9
|
+
" #{@body.gsub("\r",'').gsub("\n", "\n ")}"
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def self.find(handle)
|
|
13
|
+
sheet_yaml = adapter.find("sheets/#{handle}.yml")
|
|
14
|
+
yml = YAML.load(sheet_yaml).first
|
|
15
|
+
t, b = yml.first, yml.last
|
|
16
|
+
Sheet.new(t, b)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def self.all
|
|
20
|
+
handles = adapter.all
|
|
21
|
+
handles.map { |h| Sheet.new(h, nil) }
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def self.adapter
|
|
25
|
+
# @adapter ||= FileAdapter.new
|
|
26
|
+
@adapter ||= GithubAdapter.new
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
class FileAdapter
|
|
31
|
+
def find(path)
|
|
32
|
+
File.read(path)
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
class GithubAdapter
|
|
37
|
+
include HTTParty
|
|
38
|
+
base_uri 'https://api.github.com'
|
|
39
|
+
|
|
40
|
+
def base_path
|
|
41
|
+
"/repos/arthurnn/cheatly/contents"
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def find(path)
|
|
45
|
+
response = self.class.get("#{base_path}/#{path}")
|
|
46
|
+
json = JSON.parse(response.body)
|
|
47
|
+
Base64.decode64(json["content"])
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def all
|
|
51
|
+
response = self.class.get("#{base_path}/sheets")
|
|
52
|
+
json = JSON.parse(response.body)
|
|
53
|
+
json.map { |entry| entry["name"].gsub('.yml', '') }
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
data/lib/cheatly/version.rb
CHANGED
data/lib/cheatly.rb
CHANGED
|
@@ -1,17 +1,24 @@
|
|
|
1
|
-
require "cheatly/version"
|
|
2
1
|
require "base64"
|
|
3
2
|
require "json"
|
|
4
3
|
|
|
5
4
|
require "httparty"
|
|
6
5
|
require "pager"
|
|
7
6
|
|
|
7
|
+
require "cheatly/sheet"
|
|
8
|
+
require "cheatly/version"
|
|
9
|
+
|
|
8
10
|
module Cheatly
|
|
9
11
|
class CLI
|
|
10
12
|
include Pager
|
|
11
13
|
|
|
12
14
|
def initialize(args)
|
|
13
|
-
@command = args.shift
|
|
15
|
+
@command = args.shift || "help"
|
|
14
16
|
@handle = args.first
|
|
17
|
+
|
|
18
|
+
if "help" == @command
|
|
19
|
+
@handle = @command
|
|
20
|
+
@commands = "show"
|
|
21
|
+
end
|
|
15
22
|
end
|
|
16
23
|
|
|
17
24
|
def sheet(handle)
|
|
@@ -21,53 +28,24 @@ module Cheatly
|
|
|
21
28
|
puts sheet.to_s
|
|
22
29
|
end
|
|
23
30
|
|
|
24
|
-
def
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
def initialize(title, body)
|
|
32
|
-
@title, @body = title, body
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
def to_s
|
|
36
|
-
" #{@body.gsub("\r",'').gsub("\n", "\n ")}"
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
def self.find(handle)
|
|
40
|
-
sheet_yaml = adapter.find("sheets/#{handle}.yml")
|
|
41
|
-
yml = YAML.load(sheet_yaml).first
|
|
42
|
-
t, b = yml.first, yml.last
|
|
43
|
-
Sheet.new(t, b)
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
def self.adapter
|
|
47
|
-
# @adapter ||= FileAdapter.new
|
|
48
|
-
@adapter ||= GithubAdapter.new
|
|
49
|
-
end
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
class FileAdapter
|
|
53
|
-
def find(path)
|
|
54
|
-
File.read(path)
|
|
55
|
-
end
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
class GithubAdapter
|
|
59
|
-
include HTTParty
|
|
60
|
-
base_uri 'https://api.github.com'
|
|
61
|
-
|
|
62
|
-
def base_path
|
|
63
|
-
"/repos/arthurnn/cheatly/contents"
|
|
31
|
+
def list
|
|
32
|
+
sheets = Sheet.all
|
|
33
|
+
page
|
|
34
|
+
puts "List of available cheat-sheets:"
|
|
35
|
+
sheets.each do |sheet|
|
|
36
|
+
puts " #{sheet.title}"
|
|
37
|
+
end
|
|
64
38
|
end
|
|
65
39
|
|
|
66
|
-
def
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
40
|
+
def process
|
|
41
|
+
case @command
|
|
42
|
+
when "show"
|
|
43
|
+
sheet(@handle)
|
|
44
|
+
when "list"
|
|
45
|
+
list
|
|
46
|
+
else
|
|
47
|
+
puts "Command [#{@command}] not found. :-("
|
|
48
|
+
end
|
|
70
49
|
end
|
|
71
|
-
|
|
72
50
|
end
|
|
73
51
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: cheatly
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Arthur Neves
|
|
@@ -82,6 +82,7 @@ files:
|
|
|
82
82
|
- bin/cheatly
|
|
83
83
|
- cheatly.gemspec
|
|
84
84
|
- lib/cheatly.rb
|
|
85
|
+
- lib/cheatly/sheet.rb
|
|
85
86
|
- lib/cheatly/version.rb
|
|
86
87
|
- sheets/gem_release.yml
|
|
87
88
|
- sheets/strftime.yml
|