yield 0.2.0 → 0.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 02a641621a62dc49014f39bce2a1e6caba8d3f03
4
- data.tar.gz: 07d5e89234624f95f581e3a03b72e15a56e6a8b0
3
+ metadata.gz: 7d05c742780e6c9166f606a4686b5acee21bc486
4
+ data.tar.gz: 17055d7b5de8aa074c904985aee520670f1b5929
5
5
  SHA512:
6
- metadata.gz: 2ff9bcfe989f1ed2f827b14a80f640d35a0e4457f5bf9f70d547c1359cc6785cf340d689b07d572fe5622ce2820fb8839304c1ca3dd2729345783011cb86e8b3
7
- data.tar.gz: a171350d8f9ca629f6b4231ff2df32dcf300e3143eb06d428ef062234ad72b26aa81596e0eea91e4b11c03ef50f209dede6f11c8a0646ada41206718dbf57fa4
6
+ metadata.gz: d2c6589a5328150b9b5df2c291e10869c6e11e52b3625acdf26cc273d20eed2de5fa671b9c8fb7232c7e5dde2713aa80bb57864116df4fd5d1df03aed42c067a
7
+ data.tar.gz: e246e63eb5be03da6b18236d7df5d8e4707edcd32bd669e5ac5be00332e1a32a8e9366b1e51442d0070dc51af602117c4463388cedae5e4f7adab94fd5a3039a
data/.gitignore CHANGED
@@ -16,4 +16,7 @@ test/tmp
16
16
  test/version_tmp
17
17
  tmp
18
18
  .DS_Store
19
- /versions
19
+ /versions
20
+ /spec
21
+ .rspec
22
+ test.md
data/bin/yield CHANGED
@@ -3,25 +3,26 @@ require 'rbconfig'
3
3
  require 'optparse'
4
4
  require_relative '../lib/yield'
5
5
 
6
- # Determine if OS is Windows, and disable echo of characters in hat notation (^C) if it is not.
6
+ port = 4000
7
+
8
+ # Determine OS type and disable echo of hat notation characters (^C) if not Windows.
7
9
  is_windows = (RbConfig::CONFIG['host_os'] =~ /mswin|mingw|cygwin/)
8
10
  `stty -echoctl` unless is_windows
9
11
 
10
- port = 4000
11
-
12
- OptionParser.new do |o|
13
- o.banner = "Usage: #{o.program_name} MARKDOWN_FILE.md"
12
+ OptionParser.new do |opt|
13
+ opt.banner = "=* Usage: #{opt.program_name} MARKDOWN_FILE.md"
14
14
 
15
- o.on('-h', '--help', 'View the help menu') { puts o; Kernel.exit }
16
- o.on('-p PORT', '--port PORT', 'Specify port to run Yield on') { |o| port = o }
17
- o.on('-v', '--version', 'Display version number') do
18
- puts 'yield version ' + Yield::VERSION
15
+ opt.on('-h', '--help', 'View the help menu') { puts opt; Kernel.exit }
16
+ opt.on('-p PORT', '--port PORT', 'Specify port to run Yield on') { |o| port = o }
17
+ opt.on('-v', '--version', 'Display version number') do
18
+ puts '=* yield v' + Yield::VERSION
19
19
  Kernel.exit
20
20
  end
21
21
 
22
22
  begin
23
- o.parse!
23
+ opt.parse!
24
24
  rescue OptionParser::InvalidOption => o
25
+ # Print invalid option message, but still run yield.
25
26
  puts o.message
26
27
  end
27
28
  end
@@ -1,12 +1,12 @@
1
- require "sinatra"
2
- require "launchy"
3
- require "net/https"
4
- require "uri"
5
- require "json"
1
+ require 'sinatra'
2
+ require 'launchy'
3
+ require 'net/https'
4
+ require 'uri'
5
+ require 'json'
6
6
 
7
- require_relative "yield/version"
8
- require_relative "yield/markdown"
9
- require_relative "yield/server"
7
+ require_relative 'yield/version'
8
+ require_relative 'yield/markdown'
9
+ require_relative 'yield/server'
10
10
 
11
11
  module Yield
12
12
  end
@@ -1,12 +1,10 @@
1
1
  module Yield
2
2
  class Markdown < Sinatra::Base
3
3
 
4
- @content = nil
5
- @filename = nil
4
+ @content, @filename = nil
6
5
 
7
6
  def self.init(filename = 'README.md')
8
7
  @filename = filename.to_s
9
- $stdout = StringIO.new
10
8
  abort "Filename '#{@filename}' doesn't exist." unless File.exist?(@filename)
11
9
  end
12
10
 
@@ -18,7 +16,7 @@ module Yield
18
16
  response.body
19
17
  end
20
18
 
21
- def self.filename
19
+ def self.filename
22
20
  @filename
23
21
  end
24
22
 
@@ -1,4 +1,7 @@
1
1
  module Yield
2
+
3
+ class BadConnection < StandardError; end
4
+
2
5
  class Server < Sinatra::Base
3
6
 
4
7
  set :server, 'webrick'
@@ -15,7 +18,9 @@ module Yield
15
18
  yield server if block_given?
16
19
  end
17
20
  rescue Errno::EADDRINUSE
18
- $stderr.puts "=* Port #{port} is already in use!"
21
+ $stderr.puts "=* Port #{port} is already in use."
22
+ rescue Errno::EACCES
23
+ $stderr.puts "=* Port #{port} could not be used: Permission denied."
19
24
  end
20
25
 
21
26
  # Override quit! method from Sinatra
@@ -25,24 +30,30 @@ module Yield
25
30
  end
26
31
 
27
32
  get '/' do
28
- filename = Markdown.filename
29
- content = Markdown.convert_to_html(File.read(filename))
30
- erb :index, locals: { content: content, filename: filename }
33
+ begin
34
+ filename = Markdown.filename
35
+ content = Markdown.convert_to_html(File.read(filename))
36
+ erb :index, locals: { content: content, filename: filename }
37
+ rescue SocketError => e
38
+ erb :error
39
+ end
31
40
  end
32
41
 
33
42
  get '/:filename' do
34
- filename = params[:filename]
35
43
  begin
44
+ filename = params[:filename]
36
45
  content = Markdown.convert_to_html(File.read(filename))
37
46
  erb :index, locals: { content: content, filename: filename }
38
47
  rescue Errno::EISDIR
39
48
  raise Sinatra::NotFound
40
49
  rescue Errno::ENOENT
41
50
  raise Sinatra::NotFound
51
+ rescue SocketError => e
52
+ erb :error
42
53
  end
43
- end
54
+ end
44
55
 
45
- not_found do
56
+ not_found do
46
57
  filename = request.fullpath.split('/')[-1]
47
58
  erb :'404', locals: { filename: filename }
48
59
  end
@@ -1,3 +1,3 @@
1
1
  module Yield
2
- VERSION = "0.2.0"
2
+ VERSION = "0.2.1"
3
3
  end
@@ -0,0 +1,2 @@
1
+ <h2>Connection Error</h2>
2
+ <p>Yield requires an active internet connection.</p>
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
10
10
  spec.email = 'caseyscarborough@gmail.com'
11
11
  spec.description = 'A utility for previewing markdown files in GitHub Flavored Markdown.'
12
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'
13
+ spec.homepage = 'http://caseyscarborough.github.io/yield'
14
14
  spec.license = 'MIT'
15
15
 
16
16
  spec.files = `git ls-files`.split($/)
@@ -21,6 +21,7 @@ Gem::Specification.new do |spec|
21
21
  spec.required_ruby_version = '>= 1.9.3'
22
22
  spec.add_development_dependency 'bundler', '~> 1.3'
23
23
  spec.add_development_dependency 'rake'
24
+ spec.add_development_dependency 'rspec'
24
25
 
25
26
  spec.add_dependency 'sinatra', '1.4.3'
26
27
  spec.add_dependency 'launchy', '2.3.0'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yield
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Casey Scarborough
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-08-10 00:00:00.000000000 Z
11
+ date: 2013-08-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - '>='
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
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'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: sinatra
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -84,9 +98,10 @@ files:
84
98
  - lib/yield/server.rb
85
99
  - lib/yield/version.rb
86
100
  - lib/yield/views/404.erb
101
+ - lib/yield/views/error.erb
87
102
  - lib/yield/views/index.erb
88
103
  - yield.gemspec
89
- homepage: https://github.com/caseyscarborough/yield
104
+ homepage: http://caseyscarborough.github.io/yield
90
105
  licenses:
91
106
  - MIT
92
107
  metadata: {}