scharfie-bones 0.2.6.1 → 0.2.7

Sign up to get free protection for your applications and to get access to all the features.
data/lib/bones/bones.rb CHANGED
@@ -64,7 +64,7 @@ class Bones
64
64
  def self.reset
65
65
  @pages_path = @layouts_path = @root = @base = nil
66
66
  end
67
-
67
+
68
68
  # Process incoming request (for real this time!)
69
69
  def call(env)
70
70
  # Grab the request
@@ -72,7 +72,8 @@ class Bones
72
72
 
73
73
  # Create a new template for the given path
74
74
  # and compile it
75
- template = Template.new(request.path_info)
75
+
76
+ template = Template.new(Template.template_for_request(request))
76
77
  template.request = request
77
78
  output = template.compile
78
79
 
data/lib/bones/cache.rb CHANGED
@@ -141,8 +141,9 @@ class Bones
141
141
  end
142
142
 
143
143
  def process_page(page)
144
- template = Bones::Template.new(page)
145
- template.request = generate_mock_request(:path_info => page)
144
+ request = generate_mock_request(page)
145
+ template = Bones::Template.new(Bones::Template.template_for_request(request))
146
+ template.request = request
146
147
  process_template(template.compile)
147
148
  end
148
149
 
@@ -184,8 +185,8 @@ class Bones
184
185
  end
185
186
  end
186
187
 
187
- def generate_mock_request(options={})
188
- OpenStruct.new(options)
188
+ def generate_mock_request(path, options={})
189
+ Rack::Request.new(Rack::MockRequest.env_for(path, options))
189
190
  end
190
191
  end
191
192
  end
data/lib/bones/proxy.rb CHANGED
@@ -16,4 +16,4 @@ class Bones
16
16
  force_load 'Bones' => File.join(File.dirname(__FILE__), '..', 'bones.rb')
17
17
  end
18
18
  end
19
- end
19
+ end
@@ -25,7 +25,11 @@ class Bones
25
25
  include klass.constantize
26
26
  end
27
27
  end
28
-
28
+
29
+ def self.template_for_request(request)
30
+ request.path_info
31
+ end
32
+
29
33
  # Load the helpers
30
34
  include_helpers if Bones.booted?
31
35
 
@@ -73,19 +77,22 @@ class Bones
73
77
  @layout
74
78
  end
75
79
 
76
- # Compiles the template (along with the layout
77
- # if necessary)
78
- def compile
79
- # go away, favicon requests
80
- return String.new if File.basename(filename) =~ /^favicon.ico/
81
-
80
+ def source
82
81
  unless File.exist?(filename)
83
82
  raise "Template missing\n#{filename}"
84
83
  end
85
84
 
86
85
  src = ERB.new(File.read(filename)).src
87
86
  src = (local_assigns_source || '') + (src || '')
88
- @content_for_layout = eval(src)
87
+ end
88
+
89
+ # Compiles the template (along with the layout
90
+ # if necessary)
91
+ def compile
92
+ # go away, favicon requests
93
+ return String.new if File.basename(filename) =~ /^favicon.ico/
94
+
95
+ @content_for_layout = eval(source)
89
96
 
90
97
  if layout && File.file?(layout_filename)
91
98
  erb = ERB.new(File.read(layout_filename))
@@ -126,4 +133,4 @@ class Bones
126
133
  template.compile
127
134
  end
128
135
  end
129
- end
136
+ end
data/lib/tasks/bones.rb CHANGED
@@ -1,5 +1,4 @@
1
- require File.join(File.dirname(__FILE__), '../bones.rb')
2
-
1
+ # require File.join(File.dirname(__FILE__), '../bones.rb')
3
2
  task :default => :server
4
3
 
5
4
  desc "Start bones server"
data/pushables/boot.rb CHANGED
@@ -4,6 +4,7 @@ if File.file?(vendor_bones)
4
4
  require vendor_bones
5
5
  else
6
6
  require 'rubygems'
7
+ gem 'scharfie-bones', '0.2.7'
7
8
  require 'bones'
8
9
  end
9
10
 
data/pushables/config.ru CHANGED
@@ -2,4 +2,4 @@ require File.join(File.dirname(__FILE__), 'boot.rb')
2
2
  use Rack::CommonLogger
3
3
  use Rack::ShowExceptions
4
4
  use Bones::Static
5
- run Bones::Proxy.new
5
+ run Bones.new
@@ -1,7 +1,7 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "scharfie-bones"
3
- s.version = "0.2.6.1"
4
- s.date = "2011-02-15"
3
+ s.version = "0.2.7"
4
+ s.date = "2011-02-21"
5
5
  s.authors = ["Chris Scharf", "Ryan Heath"]
6
6
  s.email = "scharfie@gmail.com"
7
7
 
@@ -3,10 +3,22 @@ require File.dirname(__FILE__) + '/test_helper'
3
3
  context "Bones Template" do
4
4
  uses_example_site
5
5
 
6
+ def mock_request_for(path, options={})
7
+ Rack::Request.new(Rack::MockRequest.env_for(path, options))
8
+ end
9
+
6
10
  setup do
7
11
  @template = Bones::Template.new('')
8
12
  end
9
13
 
14
+ test ".template_for_request" do
15
+ @request = mock_request_for("/about-something")
16
+ assert_include Bones::Template.template_for_request(@request), 'about-something'
17
+
18
+ @request = mock_request_for('/things/whatever')
19
+ assert_include Bones::Template.template_for_request(@request), 'things/whatever'
20
+ end
21
+
10
22
  test "should return proper filename for top-level files" do
11
23
  @template.path = 'about'
12
24
  assert_include @template.filename, '/about.html.erb'
@@ -71,4 +83,4 @@ context "Bones template 'about'" do
71
83
 
72
84
  assert 'Chris', @template.instance_variable_get(:@content_for_name)
73
85
  end
74
- end
86
+ end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: scharfie-bones
3
3
  version: !ruby/object:Gem::Version
4
- hash: 69
4
+ hash: 25
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 2
9
- - 6
10
- - 1
11
- version: 0.2.6.1
9
+ - 7
10
+ version: 0.2.7
12
11
  platform: ruby
13
12
  authors:
14
13
  - Chris Scharf
@@ -17,7 +16,7 @@ autorequire:
17
16
  bindir: bin
18
17
  cert_chain: []
19
18
 
20
- date: 2011-02-15 00:00:00 -05:00
19
+ date: 2011-02-21 00:00:00 -05:00
21
20
  default_executable: bones
22
21
  dependencies:
23
22
  - !ruby/object:Gem::Dependency