yield 0.1.0 → 0.1.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.
- checksums.yaml +4 -4
- data/Gemfile +0 -1
- data/README.md +5 -5
- data/bin/yield +1 -1
- data/lib/yield.rb +5 -5
- data/lib/yield/markdown.rb +11 -36
- data/lib/yield/server.rb +49 -0
- data/lib/yield/version.rb +1 -1
- data/yield.gemspec +14 -16
- metadata +6 -20
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 33095789491dcaf8af35fed8ba7508907d3d5e04
|
4
|
+
data.tar.gz: 7fee599e090db934d3781affa101109444345a02
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 83665eef2b98a62cd4542625939a7515d1b6466e611546d1f4ae31a0cbdf42380691bed5e765a51595d6564a3df785242d5d4bca39e0d282595a7963a7b207f7
|
7
|
+
data.tar.gz: 194c8d7daa3bff51a3b35e5cac827d5495b95dce2f3e1381f2bc27f8ed3a296bd201fd40aa4f7f6fb5f5a9bb319655288f106a7cc7c38b1912cfaf83f670d672
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -6,10 +6,10 @@ Yield is a command line utility that generates a preview of README.md and markdo
|
|
6
6
|
|
7
7
|
### Dependencies
|
8
8
|
|
9
|
-
* [Ruby
|
9
|
+
* [Ruby v1.9.3](http://www.ruby-lang.org/en/) or greater
|
10
10
|
* [sinatra](http://sinatrarb.com)
|
11
11
|
* [thin](http://code.macournoyer.com/thin/)
|
12
|
-
* [
|
12
|
+
* [launchy](https://github.com/copiousfreetime/launchy)
|
13
13
|
|
14
14
|
Install the gem by issuing the following command:
|
15
15
|
|
@@ -17,6 +17,8 @@ Install the gem by issuing the following command:
|
|
17
17
|
$ gem install yield
|
18
18
|
```
|
19
19
|
|
20
|
+
This will also install any necessary dependencies for the gem that are not currently installed.
|
21
|
+
|
20
22
|
## Usage
|
21
23
|
|
22
24
|
From the root of your project, or any folder containing a README.md file, run the following command:
|
@@ -32,9 +34,7 @@ You may also specify a path to a markdown file you'd like to render, such as:
|
|
32
34
|
$ yield UPDATES.md
|
33
35
|
```
|
34
36
|
|
35
|
-
Then navigate to [localhost:4000](http://localhost:4000) in your browser to view the preview of the file.
|
36
|
-
|
37
|
-
You can stop the server by pressing Control+C.
|
37
|
+
Then navigate to [localhost:4000](http://localhost:4000) in your browser to view the preview of the file. You can stop the server by pressing Control+C.
|
38
38
|
|
39
39
|
### Errors
|
40
40
|
|
data/bin/yield
CHANGED
data/lib/yield.rb
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
require "sinatra"
|
2
|
-
require "octokit"
|
3
2
|
require "thin"
|
4
3
|
require "launchy"
|
4
|
+
require "net/https"
|
5
|
+
require "uri"
|
6
|
+
require "json"
|
5
7
|
|
6
8
|
require_relative "yield/version"
|
7
|
-
|
9
|
+
require_relative "yield/markdown"
|
10
|
+
require_relative "yield/server"
|
8
11
|
|
9
12
|
module Yield
|
10
|
-
|
11
|
-
require_relative "yield/markdown"
|
12
|
-
|
13
13
|
end
|
data/lib/yield/markdown.rb
CHANGED
@@ -1,8 +1,6 @@
|
|
1
1
|
module Yield
|
2
2
|
class Markdown < Sinatra::Base
|
3
3
|
|
4
|
-
set :server, %w[thin]
|
5
|
-
set :port, 4000
|
6
4
|
@@content = nil
|
7
5
|
@@filename = nil
|
8
6
|
|
@@ -15,45 +13,22 @@ module Yield
|
|
15
13
|
end
|
16
14
|
end
|
17
15
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
unless handler_name =~ /cgi/i
|
26
|
-
$stderr.puts "=* Yield is serving your markdown at http://localhost:#{port}/"
|
27
|
-
end
|
28
|
-
[:INT, :TERM].each { |sig| trap(sig) { quit!(server, handler_name) } }
|
29
|
-
server.threaded = settings.threaded if server.respond_to? :threaded=
|
30
|
-
set :running, true
|
31
|
-
open_in_browser
|
32
|
-
yield server if block_given?
|
33
|
-
end
|
34
|
-
rescue Errno::EADDRINUSE
|
35
|
-
$stderr.puts "=* Port #{port} is already being used!"
|
36
|
-
end
|
37
|
-
|
38
|
-
# Override quit! method from Sinatra
|
39
|
-
def self.quit!(server, handler_name)
|
40
|
-
# Use Thin's hard #stop! if available, otherwise just #stop.
|
41
|
-
server.respond_to?(:stop!) ? server.stop! : server.stop
|
42
|
-
$stderr.puts "=* Stopping yield..." unless handler_name =~/cgi/i
|
16
|
+
def self.convert_to_html(text)
|
17
|
+
uri = URI('https://api.github.com/markdown')
|
18
|
+
req = Net::HTTP::Post.new(uri.to_s)
|
19
|
+
req.body = { :text => "#{text}", :mode => "gfm" }.to_json
|
20
|
+
|
21
|
+
response = Net::HTTP.start(uri.host, uri.port, :use_ssl => true) { |http| http.request(req) }
|
22
|
+
response.body
|
43
23
|
end
|
44
24
|
|
45
|
-
|
46
|
-
@@
|
47
|
-
erb :index, locals: { content: @@content, filename: @@filename }
|
25
|
+
def self.filename
|
26
|
+
@@filename
|
48
27
|
end
|
49
28
|
|
50
|
-
|
51
|
-
|
29
|
+
def self.content
|
30
|
+
@@content
|
52
31
|
end
|
53
32
|
|
54
|
-
def self.open_in_browser
|
55
|
-
Launchy.open("http://localhost:#{port}/")
|
56
|
-
end
|
57
|
-
|
58
33
|
end
|
59
34
|
end
|
data/lib/yield/server.rb
ADDED
@@ -0,0 +1,49 @@
|
|
1
|
+
module Yield
|
2
|
+
class Server < Sinatra::Base
|
3
|
+
|
4
|
+
set :server, %w[thin]
|
5
|
+
set :port, 4000
|
6
|
+
|
7
|
+
# Override run! method from Sinatra
|
8
|
+
def self.run!(options = {})
|
9
|
+
set options
|
10
|
+
handler = detect_rack_handler
|
11
|
+
handler_name = handler.name.gsub(/.*::/, '')
|
12
|
+
server_settings = settings.respond_to?(:server_settings) ? settings.server_settings : {}
|
13
|
+
handler.run self, server_settings.merge(:Port => port, :Host => bind) do |server|
|
14
|
+
unless handler_name =~ /cgi/i
|
15
|
+
$stderr.puts "=* Yield is serving your markdown at http://localhost:#{port}/"
|
16
|
+
end
|
17
|
+
[:INT, :TERM].each { |sig| trap(sig) { quit!(server, handler_name) } }
|
18
|
+
server.threaded = settings.threaded if server.respond_to? :threaded=
|
19
|
+
set :running, true
|
20
|
+
open_in_browser
|
21
|
+
yield server if block_given?
|
22
|
+
end
|
23
|
+
rescue Errno::EADDRINUSE
|
24
|
+
$stderr.puts "=* Port #{port} is already being used!"
|
25
|
+
end
|
26
|
+
|
27
|
+
# Override quit! method from Sinatra
|
28
|
+
def self.quit!(server, handler_name)
|
29
|
+
# Use Thin's hard #stop! if available, otherwise just #stop.
|
30
|
+
server.respond_to?(:stop!) ? server.stop! : server.stop
|
31
|
+
$stderr.puts "=* Stopping yield..." unless handler_name =~/cgi/i
|
32
|
+
end
|
33
|
+
|
34
|
+
get '/' do
|
35
|
+
@@content = Yield::Markdown.convert_to_html(File.read(Yield::Markdown.filename).to_s)
|
36
|
+
erb :index, locals: { content: @@content, filename: Yield::Markdown.filename }
|
37
|
+
end
|
38
|
+
|
39
|
+
not_found do
|
40
|
+
erb :'404', locals: { filename: params[:filename] }
|
41
|
+
end
|
42
|
+
|
43
|
+
|
44
|
+
def self.open_in_browser
|
45
|
+
Launchy.open("http://localhost:#{port}/")
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
49
|
+
end
|
data/lib/yield/version.rb
CHANGED
data/yield.gemspec
CHANGED
@@ -4,27 +4,25 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
require 'yield/version'
|
5
5
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
|
-
spec.name =
|
7
|
+
spec.name = 'yield'
|
8
8
|
spec.version = Yield::VERSION
|
9
|
-
spec.
|
10
|
-
spec.email =
|
11
|
-
spec.description =
|
12
|
-
spec.summary =
|
13
|
-
|
14
|
-
|
15
|
-
spec.homepage = ""
|
16
|
-
spec.license = "MIT"
|
9
|
+
spec.author = 'Casey Scarborough'
|
10
|
+
spec.email = 'caseyscarborough@gmail.com'
|
11
|
+
spec.description = 'A utility for previewing markdown files in GitHub Flavored Markdown.'
|
12
|
+
spec.summary = 'Yield is a command line utility written in Ruby that allows a user to render markdown files for previewing in a browser. It renders the markdown files using GitHub flavored markdown at http://localhost:4000/ using Sinatra and Thin.'
|
13
|
+
spec.homepage = 'https://github.com/caseyscarborough/yield'
|
14
|
+
spec.license = 'MIT'
|
17
15
|
|
18
16
|
spec.files = `git ls-files`.split($/)
|
19
17
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
20
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
21
|
-
spec.require_paths = [
|
19
|
+
spec.require_paths = ['lib']
|
22
20
|
|
23
|
-
spec.
|
24
|
-
spec.add_development_dependency
|
21
|
+
spec.required_ruby_version = '>= 1.9.3'
|
22
|
+
spec.add_development_dependency 'bundler', '~> 1.3'
|
23
|
+
spec.add_development_dependency 'rake'
|
25
24
|
|
26
|
-
spec.add_dependency
|
27
|
-
spec.add_dependency
|
28
|
-
spec.add_dependency
|
29
|
-
spec.add_dependency "launchy", "2.3.0"
|
25
|
+
spec.add_dependency 'sinatra', '1.4.3'
|
26
|
+
spec.add_dependency 'thin', '1.5.1'
|
27
|
+
spec.add_dependency 'launchy', '2.3.0'
|
30
28
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: yield
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Casey Scarborough
|
@@ -52,20 +52,6 @@ dependencies:
|
|
52
52
|
- - '='
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: 1.4.3
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: octokit
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - '='
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: 1.25.0
|
62
|
-
type: :runtime
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - '='
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: 1.25.0
|
69
55
|
- !ruby/object:Gem::Dependency
|
70
56
|
name: thin
|
71
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -95,8 +81,7 @@ dependencies:
|
|
95
81
|
- !ruby/object:Gem::Version
|
96
82
|
version: 2.3.0
|
97
83
|
description: A utility for previewing markdown files in GitHub Flavored Markdown.
|
98
|
-
email:
|
99
|
-
- caseyscarborough@gmail.com
|
84
|
+
email: caseyscarborough@gmail.com
|
100
85
|
executables:
|
101
86
|
- yield
|
102
87
|
extensions: []
|
@@ -110,11 +95,12 @@ files:
|
|
110
95
|
- bin/yield
|
111
96
|
- lib/yield.rb
|
112
97
|
- lib/yield/markdown.rb
|
98
|
+
- lib/yield/server.rb
|
113
99
|
- lib/yield/version.rb
|
114
100
|
- lib/yield/views/404.erb
|
115
101
|
- lib/yield/views/index.erb
|
116
102
|
- yield.gemspec
|
117
|
-
homepage:
|
103
|
+
homepage: https://github.com/caseyscarborough/yield
|
118
104
|
licenses:
|
119
105
|
- MIT
|
120
106
|
metadata: {}
|
@@ -126,7 +112,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
126
112
|
requirements:
|
127
113
|
- - '>='
|
128
114
|
- !ruby/object:Gem::Version
|
129
|
-
version:
|
115
|
+
version: 1.9.3
|
130
116
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
131
117
|
requirements:
|
132
118
|
- - '>='
|
@@ -139,5 +125,5 @@ signing_key:
|
|
139
125
|
specification_version: 4
|
140
126
|
summary: Yield is a command line utility written in Ruby that allows a user to render
|
141
127
|
markdown files for previewing in a browser. It renders the markdown files using
|
142
|
-
GitHub flavored
|
128
|
+
GitHub flavored markdown at http://localhost:4000/ using Sinatra and Thin.
|
143
129
|
test_files: []
|