basics 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.
Files changed (2) hide show
  1. data/bin/basics +67 -0
  2. metadata +122 -0
data/bin/basics ADDED
@@ -0,0 +1,67 @@
1
+ #!/usr/bin/env ruby
2
+ require 'rubygems'
3
+ require 'open-uri'
4
+ require 'json'
5
+ require 'rainbow'
6
+ require 'console_renderer'
7
+ require 'redcarpet'
8
+
9
+ URL = "http://basics.adit.io/"
10
+ markdown = Redcarpet::Markdown.new(ConsoleRenderer)
11
+
12
+ def get(url)
13
+ begin
14
+ JSON.parse(open(url).read)
15
+ rescue OpenURI::HTTPError => e
16
+ puts (e.to_s + " with url: #{url}").color(:red)
17
+ puts "file a bug report at https://github.com/egonschiele/basics".color(:yellow)
18
+ exit
19
+ rescue
20
+ puts "ERROR! with url: #{url}".color(:red)
21
+ puts "file a bug report at https://github.com/egonschiele/basics".color(:yellow)
22
+ exit
23
+ end
24
+ end
25
+
26
+ case ARGV.size
27
+ when 0
28
+ puts "usage: #{$0} [term to search] [category (optional)]\nSee a list of available categories with #{$0} -l"
29
+ exit
30
+ when 1
31
+ if ARGV[0] == "-l"
32
+ puts get(URL + "categories").sort.inspect
33
+ exit
34
+ end
35
+ tips = get(URL + "search/#{ARGV[0]}")
36
+ when 2
37
+ tips = get(URL + "category_search/#{ARGV[1]}/#{ARGV[0]}")
38
+ end
39
+
40
+ if tips.size == 0
41
+ puts "NO CONTENT".color(:yellow)
42
+ exit
43
+ end
44
+
45
+ puts "CONTENTS:".color(:yellow)
46
+
47
+ prev_category = nil
48
+
49
+ tips.each do |tip|
50
+ if tip["category"] != prev_category
51
+ prev_category = tip["category"]
52
+ puts tip["category"].upcase.background(:red).foreground("#000000")
53
+ end
54
+ puts tip["title"].background(:white).foreground("#000000")
55
+ end
56
+
57
+ prev_category = nil
58
+ puts "\nDETAILS:".color(:yellow)
59
+ tips.each do |tip|
60
+ if tip["category"] != prev_category
61
+ prev_category = tip["category"]
62
+ puts tip["category"].upcase.background(:red).foreground("#000000")
63
+ end
64
+ puts tip["title"].background(:white).foreground("#000000")
65
+ puts markdown.render(tip["text"])
66
+ puts "\n\n\n"
67
+ end
metadata ADDED
@@ -0,0 +1,122 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: basics
3
+ version: !ruby/object:Gem::Version
4
+ hash: 29
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 1
10
+ version: 0.0.1
11
+ platform: ruby
12
+ authors:
13
+ - Aditya Bhargava
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2012-02-01 00:00:00 -08:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: json
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ hash: 3
30
+ segments:
31
+ - 0
32
+ version: "0"
33
+ type: :runtime
34
+ version_requirements: *id001
35
+ - !ruby/object:Gem::Dependency
36
+ name: rainbow
37
+ prerelease: false
38
+ requirement: &id002 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ hash: 3
44
+ segments:
45
+ - 0
46
+ version: "0"
47
+ type: :runtime
48
+ version_requirements: *id002
49
+ - !ruby/object:Gem::Dependency
50
+ name: redcarpet
51
+ prerelease: false
52
+ requirement: &id003 !ruby/object:Gem::Requirement
53
+ none: false
54
+ requirements:
55
+ - - ">="
56
+ - !ruby/object:Gem::Version
57
+ hash: 3
58
+ segments:
59
+ - 0
60
+ version: "0"
61
+ type: :runtime
62
+ version_requirements: *id003
63
+ - !ruby/object:Gem::Dependency
64
+ name: console_renderer
65
+ prerelease: false
66
+ requirement: &id004 !ruby/object:Gem::Requirement
67
+ none: false
68
+ requirements:
69
+ - - ">="
70
+ - !ruby/object:Gem::Version
71
+ hash: 3
72
+ segments:
73
+ - 0
74
+ version: "0"
75
+ type: :runtime
76
+ version_requirements: *id004
77
+ description: Cheat sheets for basic programming knowledge.
78
+ email: batman@scribd.com
79
+ executables:
80
+ - basics
81
+ extensions: []
82
+
83
+ extra_rdoc_files: []
84
+
85
+ files:
86
+ - bin/basics
87
+ has_rdoc: true
88
+ homepage: https://github.com/egonSchiele/basics
89
+ licenses: []
90
+
91
+ post_install_message:
92
+ rdoc_options: []
93
+
94
+ require_paths:
95
+ - lib
96
+ required_ruby_version: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ">="
100
+ - !ruby/object:Gem::Version
101
+ hash: 3
102
+ segments:
103
+ - 0
104
+ version: "0"
105
+ required_rubygems_version: !ruby/object:Gem::Requirement
106
+ none: false
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ hash: 3
111
+ segments:
112
+ - 0
113
+ version: "0"
114
+ requirements: []
115
+
116
+ rubyforge_project:
117
+ rubygems_version: 1.3.7
118
+ signing_key:
119
+ specification_version: 3
120
+ summary: Cheat sheets for basic programming knowledge.
121
+ test_files: []
122
+