benofsky-bolt 0.4.5 → 0.4.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/lib/bolt/base.rb +2 -2
  2. data/lib/bolt/serve.rb +10 -3
  3. metadata +6 -14
data/lib/bolt/base.rb CHANGED
@@ -12,7 +12,7 @@ require 'ftools' if RUBY_VERSION.to_f <= 1.8
12
12
  $BOLT_BASE = File.dirname(__FILE__) + "/../../"
13
13
 
14
14
  module Bolt
15
- class Base
15
+ class Base
16
16
  def initialize
17
17
  STDOUT.sync = true
18
18
  end
@@ -45,7 +45,7 @@ module Bolt
45
45
  options[:copy_from] ||= false
46
46
 
47
47
  if options[:copy_from]
48
- f = File.copy(options[:copy_from], file)
48
+ f = FileUtils.copy(options[:copy_from], file)
49
49
  else
50
50
  f = File.new(file, options[:mode])
51
51
  end
data/lib/bolt/serve.rb CHANGED
@@ -45,6 +45,8 @@ module Bolt
45
45
  end
46
46
  end
47
47
 
48
+ class NotFound404 < Exception; end;
49
+
48
50
  class Serve < Build
49
51
  attr_accessor :pages
50
52
 
@@ -82,7 +84,11 @@ module Bolt
82
84
  page_name = "index" if page_name == ""
83
85
  page = @pages[page_name]
84
86
 
85
- if(!page.nil?)
87
+ # Handle subdirectories
88
+ page = @pages[page_name + "index"] if page.nil?
89
+ page = @pages[page_name + "/index"] if page.nil?
90
+
91
+ if(!page.nil?)
86
92
  # A tad hacky, otherwise @current_page isn't set properly and all hell breaks loose
87
93
  body = PageBinding.new(page_name).instance_eval(&page)
88
94
  @server.reply(body)
@@ -90,10 +96,11 @@ module Bolt
90
96
  f = File.new(d($config.resources) + request['GET'])
91
97
  @server.reply(f.to_s, 200, 'Content-Type' => f.content_type)
92
98
  else
93
- # want to raise an exception here
94
- @server.reply(File.new(@errors_base + '404.html').to_s, 404)
99
+ raise NotFound404
95
100
  end
96
101
  end
102
+ rescue NotFound404
103
+ @server.reply(File.new(@errors_base + '404.html').to_s, 404)
97
104
  rescue Exception => e
98
105
  puts "Error: #{e}"
99
106
  puts e.backtrace
metadata CHANGED
@@ -1,12 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: benofsky-bolt
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 4
8
- - 5
9
- version: 0.4.5
4
+ prerelease:
5
+ version: 0.4.7
10
6
  platform: ruby
11
7
  authors:
12
8
  - Ben McRedmond
@@ -22,12 +18,10 @@ dependencies:
22
18
  name: haml
23
19
  prerelease: false
24
20
  requirement: &id001 !ruby/object:Gem::Requirement
21
+ none: false
25
22
  requirements:
26
23
  - - ">="
27
24
  - !ruby/object:Gem::Version
28
- segments:
29
- - 2
30
- - 2
31
25
  version: "2.2"
32
26
  type: :runtime
33
27
  version_requirements: *id001
@@ -66,23 +60,21 @@ rdoc_options: []
66
60
  require_paths:
67
61
  - lib
68
62
  required_ruby_version: !ruby/object:Gem::Requirement
63
+ none: false
69
64
  requirements:
70
65
  - - ">="
71
66
  - !ruby/object:Gem::Version
72
- segments:
73
- - 0
74
67
  version: "0"
75
68
  required_rubygems_version: !ruby/object:Gem::Requirement
69
+ none: false
76
70
  requirements:
77
71
  - - ">="
78
72
  - !ruby/object:Gem::Version
79
- segments:
80
- - 0
81
73
  version: "0"
82
74
  requirements: []
83
75
 
84
76
  rubyforge_project:
85
- rubygems_version: 1.3.6
77
+ rubygems_version: 1.6.2
86
78
  signing_key:
87
79
  specification_version: 3
88
80
  summary: Bolt is a simple static website generator with great support for dynamic content insertion.