rafters 1.2.0 → 1.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +5 -5
- data/lib/rafters.rb +3 -3
- data/lib/rafters/{component_context.rb → context.rb} +2 -2
- data/lib/rafters/railtie.rb +1 -1
- data/lib/rafters/{component_renderer.rb → renderer.rb} +5 -4
- data/lib/rafters/{directive_processor.rb → sprockets/directive_processor.rb} +0 -0
- data/lib/rafters/version.rb +1 -1
- data/spec/rafters/{component_context_spec.rb → context_spec.rb} +4 -4
- data/spec/rafters/{component_renderer_spec.rb → renderer_spec.rb} +3 -3
- metadata +8 -9
- data/lib/tasks/rafters_tasks.rake +0 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 72ca3bd17594c2258f6e49db8ae9cd9a790e8401
|
4
|
+
data.tar.gz: 56180a28505beb04a9ed2586b46cbaed30f52e4e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cd5c342a61c308221678523c547564656ff80cca6ac9b1eccfc3eb404862ca100ff90ce48b398eafe63358ec6a91f3fa3c770eb48253526d86e6e112568dc279
|
7
|
+
data.tar.gz: 349c5562bfee46be2fd5fb63a528ecd880dd33f64cb8783b7b2df074b97ff0fb92a872766287b667d07a7c568b56466dd3e1684d79134f65a5f7ac92fe49cbad
|
data/README.md
CHANGED
@@ -58,7 +58,7 @@ app/rafters/{name}/assets/javascripts/{name}_component.js.coffee
|
|
58
58
|
app/rafters/{name}/views/{name}_component.html.erb
|
59
59
|
```
|
60
60
|
|
61
|
-
The two most important files generated above are `app/rafters/
|
61
|
+
The two most important files generated above are `app/rafters/{name}/{name}_component.rb` and `app/rafters/{name}/views/{name}_component.html.erb`, which are (respectively) our component controller and view.
|
62
62
|
|
63
63
|
### Rendering a component
|
64
64
|
|
@@ -184,17 +184,17 @@ defaults type: "comment", filter: "none"
|
|
184
184
|
default :published, false
|
185
185
|
```
|
186
186
|
|
187
|
-
|
187
|
+
### Creating a source option for a component
|
188
188
|
|
189
189
|
There are often times when a single, general component can be powered by multiple complex data sources. In order to do this Rafters includes to option to create "source" classes that belong to individual components. Each source should expose an interface that can be consumed by the component's template, and options that are set on the component level are accessible at the source level as well.
|
190
190
|
|
191
191
|
To create a source, run the following generator:
|
192
192
|
|
193
|
-
```
|
194
|
-
$ rails g rafters:source {
|
193
|
+
```sh
|
194
|
+
$ rails g rafters:source {component_name} {source_name}
|
195
195
|
```
|
196
196
|
|
197
|
-
This generator will create a file named `{
|
197
|
+
This generator will create a file named `{component_name}_{source_name}_source.rb` in the specified component's sources directory.
|
198
198
|
|
199
199
|
A source class is a simple Ruby class that includes the `Rafters::Source` module. You can do pretty much anything you want with source classes (including subclassing), as long as they all expose the same public interface methods. When a component is configured to use a specific source, the `#source` method in that component will return an instance of the specified source class.
|
200
200
|
|
data/lib/rafters.rb
CHANGED
@@ -8,8 +8,8 @@ module Rafters
|
|
8
8
|
|
9
9
|
eager_autoload do
|
10
10
|
autoload :Component
|
11
|
-
autoload :
|
12
|
-
autoload :
|
11
|
+
autoload :Context
|
12
|
+
autoload :Renderer
|
13
13
|
autoload :Source
|
14
14
|
end
|
15
15
|
|
@@ -24,4 +24,4 @@ module Rafters
|
|
24
24
|
@@asset_paths = nil
|
25
25
|
end
|
26
26
|
|
27
|
-
ActionController::Base.send(:include, Rafters::
|
27
|
+
ActionController::Base.send(:include, Rafters::Context)
|
@@ -1,4 +1,4 @@
|
|
1
|
-
module Rafters::
|
1
|
+
module Rafters::Context
|
2
2
|
extend ActiveSupport::Concern
|
3
3
|
|
4
4
|
included do
|
@@ -34,7 +34,7 @@ module Rafters::ComponentContext
|
|
34
34
|
private
|
35
35
|
|
36
36
|
def component_renderer
|
37
|
-
@_component_renderer ||= Rafters::
|
37
|
+
@_component_renderer ||= Rafters::Renderer.new(self, view_context)
|
38
38
|
end
|
39
39
|
|
40
40
|
def component(name, options = {})
|
data/lib/rafters/railtie.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
|
-
class Rafters::
|
2
|
-
def initialize(controller)
|
1
|
+
class Rafters::Renderer
|
2
|
+
def initialize(controller, view_context)
|
3
3
|
@controller = controller
|
4
|
+
@view_context = view_context
|
4
5
|
|
5
6
|
Rafters.view_paths.each do |view_path|
|
6
7
|
@controller.prepend_view_path(view_path)
|
@@ -12,8 +13,8 @@ class Rafters::ComponentRenderer
|
|
12
13
|
|
13
14
|
store(component)
|
14
15
|
|
15
|
-
@
|
16
|
-
@
|
16
|
+
@view_context.content_tag(:div, class: "component #{component.name.dasherize}", id: component.identifier) do
|
17
|
+
@view_context.render(file: "/#{component.template_name}", locals: component.attributes)
|
17
18
|
end
|
18
19
|
end
|
19
20
|
|
File without changes
|
data/lib/rafters/version.rb
CHANGED
@@ -1,19 +1,19 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
class FooController < ActionController::Base
|
4
|
-
include Rafters::
|
4
|
+
include Rafters::Context
|
5
5
|
end
|
6
6
|
|
7
7
|
class FooComponent
|
8
8
|
include Rafters::Component
|
9
9
|
end
|
10
10
|
|
11
|
-
describe Rafters::
|
11
|
+
describe Rafters::Context do
|
12
12
|
let(:controller) { FooController.new }
|
13
|
-
let(:renderer) { double("
|
13
|
+
let(:renderer) { double("Renderer", render: "<p>Output</p>") }
|
14
14
|
|
15
15
|
before do
|
16
|
-
Rafters::
|
16
|
+
Rafters::Renderer.stub(:new).and_return(renderer)
|
17
17
|
end
|
18
18
|
|
19
19
|
describe "#render_component" do
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
describe Rafters::
|
3
|
+
describe Rafters::Renderer do
|
4
4
|
let(:view_context) { double("ViewContext").as_null_object }
|
5
5
|
let(:controller) { double("Controller").as_null_object }
|
6
6
|
|
@@ -17,12 +17,12 @@ describe Rafters::ComponentRenderer do
|
|
17
17
|
|
18
18
|
it "should add the view paths for all components to the controller" do
|
19
19
|
controller.should_receive(:prepend_view_path).with("/path/to/views")
|
20
|
-
Rafters::
|
20
|
+
Rafters::Renderer.new(controller)
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
24
24
|
describe "#render" do
|
25
|
-
subject { Rafters::
|
25
|
+
subject { Rafters::Renderer.new(controller) }
|
26
26
|
|
27
27
|
let(:component) { double("Component").as_null_object }
|
28
28
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rafters
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Hite
|
@@ -177,13 +177,12 @@ files:
|
|
177
177
|
- lib/generators/rafters/source/templates/source.rb.erb
|
178
178
|
- lib/rafters.rb
|
179
179
|
- lib/rafters/component.rb
|
180
|
-
- lib/rafters/
|
181
|
-
- lib/rafters/component_renderer.rb
|
182
|
-
- lib/rafters/directive_processor.rb
|
180
|
+
- lib/rafters/context.rb
|
183
181
|
- lib/rafters/railtie.rb
|
182
|
+
- lib/rafters/renderer.rb
|
184
183
|
- lib/rafters/source.rb
|
184
|
+
- lib/rafters/sprockets/directive_processor.rb
|
185
185
|
- lib/rafters/version.rb
|
186
|
-
- lib/tasks/rafters_tasks.rake
|
187
186
|
- rafters.gemspec
|
188
187
|
- spec/dummy/Rakefile
|
189
188
|
- spec/dummy/app/assets/javascripts/application.js
|
@@ -245,10 +244,10 @@ files:
|
|
245
244
|
- spec/dummy/public/500.html
|
246
245
|
- spec/dummy/public/favicon.ico
|
247
246
|
- spec/dummy/script/rails
|
248
|
-
- spec/rafters/component_context_spec.rb
|
249
|
-
- spec/rafters/component_renderer_spec.rb
|
250
247
|
- spec/rafters/component_spec.rb
|
248
|
+
- spec/rafters/context_spec.rb
|
251
249
|
- spec/rafters/features/rendering_a_page_spec.rb
|
250
|
+
- spec/rafters/renderer_spec.rb
|
252
251
|
- spec/spec_helper.rb
|
253
252
|
homepage: ''
|
254
253
|
licenses:
|
@@ -336,9 +335,9 @@ test_files:
|
|
336
335
|
- spec/dummy/public/500.html
|
337
336
|
- spec/dummy/public/favicon.ico
|
338
337
|
- spec/dummy/script/rails
|
339
|
-
- spec/rafters/component_context_spec.rb
|
340
|
-
- spec/rafters/component_renderer_spec.rb
|
341
338
|
- spec/rafters/component_spec.rb
|
339
|
+
- spec/rafters/context_spec.rb
|
342
340
|
- spec/rafters/features/rendering_a_page_spec.rb
|
341
|
+
- spec/rafters/renderer_spec.rb
|
343
342
|
- spec/spec_helper.rb
|
344
343
|
has_rdoc:
|