yield 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
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: {}