rack-jekyll 0.4.2 → 0.4.3

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: 65a9a75b71d00f183b26748662eee97d23ab42cf
4
- data.tar.gz: af266d768a47a4fc17050955626480e437e67388
3
+ metadata.gz: fd2b0682778934b95fb214c1ea9513534d4bb9da
4
+ data.tar.gz: 669fb5b28bd62cff68d1a963c1456e6994aeab21
5
5
  SHA512:
6
- metadata.gz: 7be8456d67a62653587ff1282b771abd5899766d0a9a4eb9ff82c467dbb1551a887b7d8baa1c7b31ea0ac387c5088d65857158c226036408651144e3cf116aaf
7
- data.tar.gz: b11490d802a8ffc92654dcd6a24fe26f78e7d880364c0df37ba50352c9d116c5ad07972b304897e0ae155fca43b20dd3da82457f3dc46e36d2ef17e838157a42
6
+ metadata.gz: bf6a882bf48cc66254af840440d479cff60f6c9c0170ca46039b909cf31e0605d635f0722d7fc0abfcf7e11e70f7c84913ed2b0eda750f75ca023ffb5cf0742c
7
+ data.tar.gz: da4666f7f6893f7d407b2643e58f6bff8cf4a9e7fac344a6b7a8d749d1e3cc09939dfbe9fdc1f278925d181291507c3dc818fdcf4591d88b22da095e783babd8
data/Rakefile CHANGED
@@ -1,9 +1,5 @@
1
- require 'rubygems'
2
- require 'rubygems/specification'
3
- require 'rubygems/package_task'
4
1
  require 'rake/testtask'
5
- #require 'extensions/all'
6
- require_relative 'lib/rack/jekyll'
2
+
7
3
 
8
4
  task :default => :test
9
5
 
@@ -0,0 +1,10 @@
1
+ ---
2
+ layout: default
3
+ title: 404
4
+ ---
5
+
6
+ # 404: Not Found
7
+
8
+ The requested page does not exist.
9
+
10
+ [Go back to home page](/)
@@ -0,0 +1,5 @@
1
+ permalink: /:year/:month/:day/:title/
2
+ markdown: kramdown
3
+
4
+ exclude:
5
+ - config.ru
@@ -0,0 +1,15 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <link rel="stylesheet" type="text/css" href="/css/site.css">
6
+ {% if page.title != null %}
7
+ <title>Rack-Jekyll Demo - {{ page.title }}</title>
8
+ {% else %}
9
+ <title>Rack-Jekyll Demo</title>
10
+ {% endif %}
11
+ </head>
12
+ <body>
13
+ {{ content }}
14
+ </body>
15
+ </html>
@@ -0,0 +1,7 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ {{ content }}
6
+
7
+ <p><a href="/">Go back to home page</a></p>
@@ -0,0 +1,8 @@
1
+ ---
2
+ layout: post
3
+ title: Hello World!
4
+ ---
5
+
6
+ # Hello World!
7
+
8
+ A demo blog post for Rack-Jekyll.
@@ -0,0 +1,6 @@
1
+ require_relative "../lib/rack/jekyll"
2
+
3
+ # Middleware
4
+ use Rack::ShowExceptions # Nice looking errors
5
+
6
+ run Rack::Jekyll.new
@@ -0,0 +1,6 @@
1
+ body {
2
+ background-color: #f0f0f0;
3
+ font-family: sans-serif;
4
+ }
5
+
6
+ .date { color: #808080; }
@@ -0,0 +1,16 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ # Rack-Jekyll Demo
6
+
7
+ Blog posts:
8
+
9
+ <ul>
10
+ {% for post in site.posts %}
11
+ <li>
12
+ <span class="date">{{ post.date | date_to_string }}:</span>
13
+ <a href="{{ post.url }}">{{ post.title }}</a>
14
+ </li>
15
+ {% endfor %}
16
+ </ul>
@@ -1,10 +1,9 @@
1
1
  require "rack"
2
2
  require "jekyll"
3
- require "rack/request"
4
- require "rack/response"
5
- require File.join(File.dirname(__FILE__), 'jekyll', 'helpers')
6
- require File.join(File.dirname(__FILE__), 'jekyll', 'version')
7
- require File.join(File.dirname(__FILE__), 'jekyll', 'ext')
3
+
4
+ require_relative "jekyll/filehandler"
5
+ require_relative "jekyll/utils"
6
+ require_relative "jekyll/version"
8
7
 
9
8
  module Rack
10
9
  class Jekyll
@@ -36,14 +35,10 @@ module Rack
36
35
  @destination = @config["destination"]
37
36
  @source = @config["source"]
38
37
 
39
- load_file_list
40
- puts @files.inspect if ENV['RACK_DEBUG']
41
-
42
- @mimes = Rack::Mime::MIME_TYPES.map{|k,v| /#{k.gsub('.','\.')}$/i }
43
-
38
+ @files = FileHandler.new(@destination)
44
39
  @site = ::Jekyll::Site.new(@config)
45
40
 
46
- if ::Dir[@destination + "/**/*"].empty? || @force_build
41
+ if @files.empty? || @force_build
47
42
  process("Generating site: #{@source} -> #{@destination}")
48
43
  end
49
44
 
@@ -71,53 +66,68 @@ module Rack
71
66
  end
72
67
 
73
68
  def call(env)
74
- @request = Rack::Request.new(env)
75
- @response = Rack::Response.new
76
- path_info = @request.path_info
77
69
  while @compiling
78
70
  sleep 0.1
79
71
  end
80
- if @files.inspect.include?(path_info)
81
- if path_info =~ /(\/?)$/
82
- if @mimes.collect {|regex| path_info =~ regex }.compact.empty?
83
- path_info += $1.nil? ? "/index.html" : "index.html"
84
- end
85
- end
86
- mime = mime(path_info)
87
72
 
88
- file = file_info(@destination + path_info)
73
+ request = Rack::Request.new(env)
74
+
75
+ filename = @files.get_filename(request.path_info)
76
+
77
+ if filename
78
+ media_type = Utils.media_type(filename)
79
+
80
+ file = Utils.file_info(filename)
89
81
  body = file[:body]
90
82
  time = file[:time]
91
- hdrs = { 'Last-Modified' => time }
83
+ hdrs = { "Last-Modified" => time }
92
84
 
93
- if time == @request.env['HTTP_IF_MODIFIED_SINCE']
94
- [304, hdrs, []]
85
+ if time == request.env["HTTP_IF_MODIFIED_SINCE"]
86
+ response = [304, hdrs, []]
95
87
  else
96
- hdrs.update({ 'Content-Length' => body.bytesize.to_s,
97
- 'Content-Type' => mime, } )
98
- [@response.status, hdrs, [body]]
88
+ hdrs.update({ "Content-Length" => body.bytesize.to_s,
89
+ "Content-Type" => media_type })
90
+ response = [200, hdrs, [body]]
99
91
  end
100
92
 
101
93
  else
102
- status, body, path_info = ::File.exist?(@destination+"/404.html") ? [404,file_info(@destination+"/404.html")[:body],"404.html"] : [404,"Not found","404.html"]
103
- mime = mime(path_info)
104
-
105
- [status, {"Content-Type" => mime, "Content-Length" => body.bytesize.to_s}, [body]]
94
+ body = not_found_message
95
+ hdrs = { "Content-Length" => body.bytesize.to_s,
96
+ "Content-Type" => "text/html" }
97
+ response = [404, hdrs, [body]]
106
98
  end
99
+
100
+ request.head? ? remove_body(response) : response
107
101
  end
108
102
 
109
103
  private
110
104
 
111
- def load_file_list
112
- @files = ::Dir[@destination + "/**/*"]
113
- end
114
-
115
105
  def process(message = nil)
116
106
  @compiling = true
117
107
  puts message if message
118
108
  @site.process
119
- load_file_list
109
+ @files.update
120
110
  @compiling = false
121
111
  end
112
+
113
+ def not_found_message
114
+ custom_404 || default_404
115
+ end
116
+
117
+ def default_404
118
+ "Not found"
119
+ end
120
+
121
+ def custom_404
122
+ filename = @files.get_filename("/404.html")
123
+
124
+ filename ? Utils.file_info(filename)[:body] : nil
125
+ end
126
+
127
+ def remove_body(response)
128
+ status, headers, _body = response
129
+
130
+ [status, headers, []]
131
+ end
122
132
  end
123
133
  end
@@ -0,0 +1,56 @@
1
+ module Rack
2
+ class Jekyll
3
+ class FileHandler
4
+
5
+ attr_reader :root, :files
6
+
7
+ # Initializes a FileHandler for a given root directory
8
+ # (for testing only: use a given array of filenames, +files+).
9
+ def initialize(root, files = nil)
10
+ @root = ::File.expand_path(root)
11
+ @files = files || get_file_list
12
+ end
13
+
14
+ def empty?
15
+ @files.empty?
16
+ end
17
+
18
+ def update
19
+ @files = get_file_list
20
+ end
21
+
22
+ # Returns the full file system path of the file corresponding to
23
+ # the given URL path, or +nil+ if no corresponding file exists.
24
+ def get_filename(path)
25
+ fullpath = ::File.join(@root, path)
26
+
27
+ if fullpath.end_with?("/")
28
+ normalized = fullpath + "index.html"
29
+ elsif !@files.include?(fullpath)
30
+ normalized = fullpath + "/index.html"
31
+ else
32
+ normalized = fullpath
33
+ end
34
+
35
+ if @files.include?(normalized)
36
+ filename = normalized
37
+ else
38
+ filename = nil
39
+ end
40
+
41
+ filename
42
+ end
43
+
44
+ private
45
+
46
+ # Retrieves and returns a list of all files in the root directory
47
+ # (excluding directory names).
48
+ def get_file_list
49
+ files = ::Dir[@root + "/**/*"]
50
+ files.delete_if {|file| ::FileTest.directory?(file) }
51
+
52
+ files
53
+ end
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,21 @@
1
+ module Rack
2
+ class Jekyll
3
+ module Utils
4
+
5
+ def self.media_type(filename)
6
+ extension = ::File.extname(filename)
7
+
8
+ Rack::Mime.mime_type(extension)
9
+ end
10
+
11
+ def self.file_info(path)
12
+ info = {
13
+ :body => ::File.read(path),
14
+ :time => ::File.mtime(path).httpdate
15
+ }
16
+
17
+ info
18
+ end
19
+ end
20
+ end
21
+ end
@@ -1,7 +1,7 @@
1
1
  module Rack
2
2
  class Jekyll
3
3
  def self.version
4
- '0.4.2'
4
+ '0.4.3'
5
5
  end
6
6
  end
7
7
  end
@@ -1,6 +1,6 @@
1
1
  # coding: utf-8
2
2
 
3
- require File.join(File.dirname(__FILE__), "lib", "rack", "jekyll", "version")
3
+ require_relative "lib/rack/jekyll/version"
4
4
 
5
5
  Gem::Specification.new do |s|
6
6
  s.required_rubygems_version = ">= 1.3.6"
@@ -22,13 +22,16 @@ Gem::Specification.new do |s|
22
22
  Rakefile
23
23
  LICENSE
24
24
  } +
25
- Dir.glob("lib/**/*")
25
+ Dir.glob("lib/**/*") +
26
+ Dir.glob("example/**/*").reject {|f| f =~ %r(\Aexample/_site/) }
26
27
  s.test_files = Dir.glob("{test,features}/**/*")
27
28
  s.require_paths = ["lib"]
28
29
 
29
- s.extra_rdoc_files = ["README.markdown"]
30
+ s.extra_rdoc_files = %w[README.markdown LICENSE]
30
31
  s.rdoc_options = ['--charset=UTF-8', '--main=README.markdown']
31
32
 
33
+ s.required_ruby_version = '>= 1.9.3'
34
+
32
35
  s.add_dependency "jekyll", ">= 1.3"
33
36
  s.add_dependency "rack", "~> 1.5"
34
37
  s.add_dependency "listen", ">= 1.3"
@@ -0,0 +1,3 @@
1
+ ---
2
+ ---
3
+ Test
@@ -0,0 +1,3 @@
1
+ ---
2
+ ---
3
+ Test
@@ -0,0 +1 @@
1
+ Test
@@ -0,0 +1,91 @@
1
+ require_relative "helper"
2
+
3
+
4
+ describe Rack::Jekyll::FileHandler do
5
+
6
+ describe "when asked for filenames with #get_filename" do
7
+
8
+ before do
9
+ files = [
10
+ "/site/index.html",
11
+ "/site/page.html",
12
+ "/site/README",
13
+ "/site/dir-with-index/index.html",
14
+ "/site/dir-without-index/page.html",
15
+ "/site/dir1/dir2/dir3/index.html"
16
+ ]
17
+ @filehandler = Rack::Jekyll::FileHandler.new("/site", files)
18
+ end
19
+
20
+ it "should return path for '/'" do
21
+ @filehandler.get_filename("/").must_equal "/site/index.html"
22
+ end
23
+
24
+ it "should return existing path" do
25
+ @filehandler.get_filename("/page.html").must_equal "/site/page.html"
26
+ end
27
+
28
+ it "should return nil for non-existent path" do
29
+ @filehandler.get_filename("/not-a-page.html").must_be_nil
30
+ end
31
+
32
+ it "should return existing path for resource without extension" do
33
+ @filehandler.get_filename("/README").must_equal "/site/README"
34
+ end
35
+
36
+ it "should return nil for partially matching paths" do
37
+ @filehandler.get_filename("/dir1/dir2/").must_be_nil
38
+ @filehandler.get_filename("/dir2/dir3").must_be_nil
39
+ @filehandler.get_filename("ir1/di").must_be_nil
40
+ end
41
+
42
+ it "should return path for directory/ with index" do
43
+ @filehandler.get_filename("/dir-with-index/").must_equal "/site/dir-with-index/index.html"
44
+ end
45
+
46
+ it "should return path for directory with index" do
47
+ @filehandler.get_filename("/dir-with-index").must_equal "/site/dir-with-index/index.html"
48
+ end
49
+
50
+ it "should return nil for directory/ without index" do
51
+ @filehandler.get_filename("/dir-without-index/").must_be_nil
52
+ end
53
+
54
+ it "should return nil for directory without index" do
55
+ @filehandler.get_filename("/dir-without-index").must_be_nil
56
+ end
57
+ end
58
+
59
+
60
+ describe "when retrieving the file list from root directory" do
61
+
62
+ before do
63
+ sourcedir = File.join(TEST_DIR, "source")
64
+ @filehandler = Rack::Jekyll::FileHandler.new(sourcedir)
65
+ @existing_file = File.join(sourcedir, "index.md")
66
+ @existing_dir = File.join(sourcedir, "css")
67
+ end
68
+
69
+ it "should include regular files" do
70
+ @filehandler.files.must_include @existing_file
71
+ end
72
+
73
+ it "should not include directories" do
74
+ @filehandler.files.wont_include @existing_dir
75
+ end
76
+ end
77
+
78
+
79
+ describe "when initialized" do
80
+
81
+ it "should strip trailing slash from root" do
82
+ filehandler = Rack::Jekyll::FileHandler.new("/site/", [])
83
+ filehandler.root.must_equal "/site"
84
+ end
85
+
86
+ it "should not append a trailing slash to root" do
87
+ filehandler = Rack::Jekyll::FileHandler.new("/site", [])
88
+ filehandler.root.must_equal "/site"
89
+ end
90
+ end
91
+ end
@@ -30,12 +30,24 @@ describe "when handling requests" do
30
30
  @request.wont_be_nil
31
31
  end
32
32
 
33
- it "should return correct http status code" do
33
+ it "should return status 200 for existing path" do
34
34
  @request.get("/").status.must_equal 200
35
+ @request.get("/2015/10/05/hello-world.html").status.must_equal 200
36
+ end
37
+
38
+ it "should return status 404 for nonexistent path" do
35
39
  @request.get("/show/me/404").status.must_equal 404
36
40
  end
37
41
 
38
- it "should return correct http status code for If-Modified-Since" do
42
+ it "should return status 404 for partially matching path 1" do
43
+ @request.get("/2015/10/05/hello").status.must_equal 404
44
+ end
45
+
46
+ it "should return status 404 for partially matching path 2" do
47
+ @request.get("/10/05/hello-world.html").status.must_equal 404
48
+ end
49
+
50
+ it "should return correct status code for If-Modified-Since" do
39
51
  modify_time = @request.get("/").headers["Last-Modified"]
40
52
  earlier_time = (Time.parse(modify_time) - 3600).httpdate
41
53
 
@@ -43,7 +55,7 @@ describe "when handling requests" do
43
55
  @request.get("/", {"HTTP_IF_MODIFIED_SINCE" => earlier_time}).status.must_equal 200
44
56
  end
45
57
 
46
- it "should return correct http status code for If-Modified-Since with 404s" do
58
+ it "should return correct status code for If-Modified-Since with 404s" do
47
59
  modify_time = @request.get("/").headers["Last-Modified"]
48
60
  earlier_time = (Time.parse(modify_time) - 3600).httpdate
49
61
 
@@ -58,9 +70,8 @@ describe "when handling requests" do
58
70
  @request.get("/show/me/404").headers["Content-Type"].must_equal "text/html"
59
71
  end
60
72
 
61
- it "should return correct Content-Length header" do
73
+ it "should return correct Content-Length header for '/'" do
62
74
  @request.get("/").original_headers["Content-Length"].to_i.must_equal 24
63
- @request.get("/show/me/404").original_headers["Content-Length"].to_i.must_equal 9
64
75
  end
65
76
 
66
77
  it "should return correct Content-Length header for If-Modified-Since" do
@@ -68,9 +79,42 @@ describe "when handling requests" do
68
79
  @request.get("/", {"HTTP_IF_MODIFIED_SINCE" => modify_time}).original_headers["Content-Length"].must_be_nil
69
80
  end
70
81
 
71
- it "should return correct body" do
82
+ it "should return correct body for '/'" do
72
83
  @request.get("/").body.must_equal "<p>Rack-Jekyll Test</p>\n"
73
- @request.get("/show/me/404").body.must_equal "Not found"
84
+ end
85
+
86
+
87
+ describe "when a directory is requested" do
88
+
89
+ it "should redirect with status 301 to 'directory/' for 'directory' with index.html" do
90
+ skip
91
+ @request.get("/dir-with-index").status.must_equal 301
92
+ @request.get("/dir-with-index").headers["Location"].must_equal "/dir-with-index/"
93
+ end
94
+
95
+ it "should return status 200 for 'directory/' with index.html" do
96
+ @request.get("/dir-with-index/").status.must_equal 200
97
+ end
98
+
99
+ it "should return status 404 for 'directory' without index.html" do
100
+ @request.get("/dir-without-index").status.must_equal 404
101
+ end
102
+
103
+ it "should return status 404 for 'directory/' without index.html" do
104
+ @request.get("/dir-without-index/").status.must_equal 404
105
+ end
106
+ end
107
+
108
+
109
+ describe "when a resource of unknown mime type is requested" do
110
+
111
+ it "should return status 200" do
112
+ @request.get("/no-extension").status.must_equal 200
113
+ end
114
+
115
+ it "should return Content-Type 'application/octet-stream'" do
116
+ @request.get("/no-extension").headers["Content-Type"].must_equal "application/octet-stream"
117
+ end
74
118
  end
75
119
 
76
120
 
@@ -88,4 +132,48 @@ describe "when handling requests" do
88
132
  @response.original_headers["Content-Length"].to_i.must_equal 23
89
133
  end
90
134
  end
135
+
136
+
137
+ describe "when returning 404s" do
138
+
139
+ it "should return correct body for default 404" do
140
+ @request.get("/show/me/404").body.must_equal "Not found"
141
+ end
142
+
143
+ it "should return correct Content-Length header for default 404" do
144
+ @request.get("/show/me/404").original_headers["Content-Length"].to_i.must_equal 9
145
+ end
146
+
147
+ it "should return correct body for custom 404" do
148
+ begin
149
+ filename = File.join(@sourcedir, "404.html")
150
+ File.open(filename, "w") {|f| f.puts "Custom 404" }
151
+
152
+ jekyll = rack_jekyll(:force_build => true,
153
+ :source => @sourcedir,
154
+ :destination => @destdir)
155
+ request = Rack::MockRequest.new(jekyll)
156
+
157
+ request.get("/show/me/404").body.must_match %r{Custom 404}
158
+ ensure
159
+ FileUtils.rm(filename)
160
+ end
161
+ end
162
+ end
163
+
164
+
165
+ describe "when handling HEAD requests" do
166
+
167
+ it "should return status 200 for '/'" do
168
+ @request.head("/").status.must_equal 200
169
+ end
170
+
171
+ it "should return correct Content-Length header for '/'" do
172
+ @request.head("/").original_headers["Content-Length"].to_i.must_equal 24
173
+ end
174
+
175
+ it "should not return a body" do
176
+ @request.head("/").body.must_equal ""
177
+ end
178
+ end
91
179
  end
@@ -0,0 +1,54 @@
1
+ require_relative "helper"
2
+
3
+
4
+ describe Rack::Jekyll::Utils do
5
+
6
+ before do
7
+ @utils = Rack::Jekyll::Utils
8
+ end
9
+
10
+
11
+ describe "when asked for #media_type" do
12
+
13
+ it "returns correct type for HTML" do
14
+ @utils.media_type("index.html").must_equal "text/html"
15
+ end
16
+
17
+ it "returns correct type for HTML with full path" do
18
+ @utils.media_type("/path/index.html").must_equal "text/html"
19
+ end
20
+
21
+ it "returns correct type for CSS" do
22
+ @utils.media_type("/path/style.css").must_equal "text/css"
23
+ end
24
+
25
+ it "returns correct type for *.min.js" do
26
+ @utils.media_type("script.min.js").must_equal "application/javascript"
27
+ end
28
+
29
+ it "returns correct default type for files without extension" do
30
+ @utils.media_type("README").must_equal "application/octet-stream"
31
+ end
32
+
33
+ it "ignores lower/upper case in file extensions" do
34
+ @utils.media_type("image.JpG").must_equal "image/jpeg"
35
+ end
36
+ end
37
+
38
+
39
+ describe "when asked for #file_info" do
40
+
41
+ before do
42
+ @filename = __FILE__
43
+ @info = @utils.file_info(@filename)
44
+ end
45
+
46
+ it "has the file content" do
47
+ @info[:body].must_equal ::File.read(@filename)
48
+ end
49
+
50
+ it "has the modification time in httpdate format" do
51
+ @info[:time].must_equal ::File.mtime(@filename).httpdate
52
+ end
53
+ end
54
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rack-jekyll
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.4.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bryan Goines
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-10-12 00:00:00.000000000 Z
12
+ date: 2015-11-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: jekyll
@@ -87,17 +87,26 @@ executables: []
87
87
  extensions: []
88
88
  extra_rdoc_files:
89
89
  - README.markdown
90
+ - LICENSE
90
91
  files:
91
92
  - Gemfile
92
93
  - LICENSE
93
94
  - README.markdown
94
95
  - Rakefile
96
+ - example/404.md
97
+ - example/_config.yml
98
+ - example/_layouts/default.html
99
+ - example/_layouts/post.html
100
+ - example/_posts/2009-12-21-hello-world.md
101
+ - example/config.ru
102
+ - example/css/site.css
103
+ - example/index.md
95
104
  - features/requests.feature
96
105
  - features/step_definitions/rack_jekyll_steps.rb
97
106
  - features/support/env.rb
98
107
  - lib/rack/jekyll.rb
99
- - lib/rack/jekyll/ext.rb
100
- - lib/rack/jekyll/helpers.rb
108
+ - lib/rack/jekyll/filehandler.rb
109
+ - lib/rack/jekyll/utils.rb
101
110
  - lib/rack/jekyll/version.rb
102
111
  - rack-jekyll.gemspec
103
112
  - test/helper.rb
@@ -105,12 +114,17 @@ files:
105
114
  - test/source/_posts/2015-10-05-hello-world.md
106
115
  - test/source/buenos_dias.md
107
116
  - test/source/css/test.css
117
+ - test/source/dir-with-index/index.md
118
+ - test/source/dir-without-index/page.md
108
119
  - test/source/index.md
109
120
  - test/source/js/test.js
110
121
  - test/source/js/test.min.js
122
+ - test/source/no-extension
111
123
  - test/test_build.rb
112
124
  - test/test_configuration.rb
125
+ - test/test_filehandler.rb
113
126
  - test/test_requests.rb
127
+ - test/test_utils.rb
114
128
  homepage: https://github.com/adaoraul/rack-jekyll
115
129
  licenses: []
116
130
  metadata: {}
@@ -124,7 +138,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
124
138
  requirements:
125
139
  - - ">="
126
140
  - !ruby/object:Gem::Version
127
- version: '0'
141
+ version: 1.9.3
128
142
  required_rubygems_version: !ruby/object:Gem::Requirement
129
143
  requirements:
130
144
  - - ">="
@@ -142,12 +156,17 @@ test_files:
142
156
  - test/source/_posts/2015-10-05-hello-world.md
143
157
  - test/source/buenos_dias.md
144
158
  - test/source/css/test.css
159
+ - test/source/dir-with-index/index.md
160
+ - test/source/dir-without-index/page.md
145
161
  - test/source/index.md
146
162
  - test/source/js/test.js
147
163
  - test/source/js/test.min.js
164
+ - test/source/no-extension
148
165
  - test/test_build.rb
149
166
  - test/test_configuration.rb
167
+ - test/test_filehandler.rb
150
168
  - test/test_requests.rb
169
+ - test/test_utils.rb
151
170
  - features/requests.feature
152
171
  - features/step_definitions/rack_jekyll_steps.rb
153
172
  - features/support/env.rb
@@ -1,7 +0,0 @@
1
- class String
2
- if RUBY_VERSION < "1.9"
3
- def bytesize
4
- size
5
- end
6
- end
7
- end
@@ -1,19 +0,0 @@
1
- module Rack
2
- class Jekyll
3
- def mime(path_info)
4
- if path_info !~ /html$/i
5
- ext = $1 if path_info =~ /(\.[\S&&[^.]]+)$/
6
- Mime.mime_type((ext.nil? ? ".html" : ext))
7
- else
8
- Mime.mime_type(".html")
9
- end
10
- end
11
-
12
- def file_info(path)
13
- expand_path = ::File.expand_path(path)
14
- ::File.open(expand_path, 'r') do |f|
15
- {:body => f.read, :time => f.mtime.httpdate, :expand_path => expand_path}
16
- end
17
- end
18
- end
19
- end