push_type_core 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 +4 -4
- data/app/controllers/concerns/push_type/application_controller_methods.rb +18 -0
- data/app/controllers/front_end_controller.rb +17 -4
- data/lib/push_type/core/engine.rb +2 -0
- data/lib/push_type/core.rb +5 -0
- data/lib/push_type/version.rb +3 -0
- data/test/controllers/front_end_controller_test.rb +19 -0
- data/test/dummy/log/test.log +66782 -0
- data/test/lib/push_type/core_test.rb +6 -1
- data/test/test_helper.rb +1 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4248b67982fe778388b3418614a95043834315ce
|
4
|
+
data.tar.gz: 5d64098c0f00b7d3aad9a7dabd151e4eff907abc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e953d4035fca92bd4f5deeaf4b7cb7f0374071c49f34c423fae5b6c8cc373e595c896c88aa58ea084d69f4083fbea71de6d85f284518b1ddfc9cb34ea17a5877
|
7
|
+
data.tar.gz: 54c2ef9df08874ee1f59fac6682e1158e4db7d868b1f9de4a34d3699c52c96b842e1d61eb9885fd5a8389eb650754646080e992babf2cbb8038594abe5cd5bd6
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module PushType
|
2
|
+
module ApplicationControllerMethods
|
3
|
+
extend ActiveSupport::Concern
|
4
|
+
|
5
|
+
protected
|
6
|
+
|
7
|
+
def permalink_path
|
8
|
+
params[:permalink].split('/')
|
9
|
+
end
|
10
|
+
|
11
|
+
private
|
12
|
+
|
13
|
+
def node_hook(method)
|
14
|
+
send(method) if self.class.method_defined?(method.to_sym)
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
class FrontEndController < ApplicationController
|
2
2
|
|
3
|
-
|
3
|
+
before_action :before_load, :load_node, :before_node, only: :node
|
4
|
+
after_action :after_node, only: :node
|
4
5
|
|
5
6
|
def node
|
6
7
|
render *@node.template_args
|
@@ -9,13 +10,25 @@ class FrontEndController < ApplicationController
|
|
9
10
|
private
|
10
11
|
|
11
12
|
def load_node
|
12
|
-
@node = PushType::Node.published.find_by_path
|
13
|
+
@node = PushType::Node.published.find_by_path permalink_path
|
13
14
|
raise ActiveRecord::RecordNotFound unless @node
|
14
15
|
instance_variable_set "@#{ @node.type.underscore }", @node
|
15
16
|
end
|
16
17
|
|
17
|
-
def
|
18
|
-
|
18
|
+
def before_load
|
19
|
+
node_hook(:before_node_load)
|
20
|
+
end
|
21
|
+
|
22
|
+
def node_types_array
|
23
|
+
['node', @node.type.underscore]
|
24
|
+
end
|
25
|
+
|
26
|
+
def before_node
|
27
|
+
node_types_array.each { |kind| node_hook(:"before_#{ kind }_action") }
|
28
|
+
end
|
29
|
+
|
30
|
+
def after_node
|
31
|
+
node_types_array.each { |kind| node_hook(:"after_#{ kind }_action") }
|
19
32
|
end
|
20
33
|
|
21
34
|
end
|
@@ -14,12 +14,14 @@ module PushType
|
|
14
14
|
|
15
15
|
config.to_prepare do
|
16
16
|
Rails.application.eager_load! unless Rails.application.config.cache_classes
|
17
|
+
ApplicationController.send :include, PushType::ApplicationControllerMethods
|
17
18
|
end
|
18
19
|
|
19
20
|
initializer 'push_type.dragonfly_config' do
|
20
21
|
PushType.config.dragonfly_secret ||= Rails.application.secrets.secret_key_base
|
21
22
|
PushType.dragonfly_app_setup!
|
22
23
|
end
|
24
|
+
|
23
25
|
end
|
24
26
|
end
|
25
27
|
end
|
data/lib/push_type/core.rb
CHANGED
@@ -5,6 +5,10 @@ module PushType
|
|
5
5
|
|
6
6
|
class << self
|
7
7
|
|
8
|
+
def version
|
9
|
+
PushType::VERSION
|
10
|
+
end
|
11
|
+
|
8
12
|
def config
|
9
13
|
PushType::Config
|
10
14
|
end
|
@@ -56,3 +60,4 @@ require 'push_type/config'
|
|
56
60
|
require 'push_type/core/engine'
|
57
61
|
require 'push_type/rails/routes'
|
58
62
|
require 'push_type/field_type'
|
63
|
+
require 'push_type/version'
|
@@ -26,4 +26,23 @@ describe FrontEndController do
|
|
26
26
|
end
|
27
27
|
end
|
28
28
|
|
29
|
+
describe 'node filters' do
|
30
|
+
ApplicationController.module_eval do
|
31
|
+
def before_node_load
|
32
|
+
@foo = {}
|
33
|
+
end
|
34
|
+
def before_node_action
|
35
|
+
@foo[:node_action] = true
|
36
|
+
end
|
37
|
+
def before_page_action
|
38
|
+
@foo[:page_action] = true
|
39
|
+
end
|
40
|
+
end
|
41
|
+
let(:page) { FactoryGirl.create :published_node, type: 'Page' }
|
42
|
+
before { get :node, permalink: page.permalink }
|
43
|
+
it { assigns[:foo].must_be_instance_of Hash }
|
44
|
+
it { assigns[:foo][:node_action].must_equal true }
|
45
|
+
it { assigns[:foo][:page_action].must_equal true }
|
46
|
+
end
|
47
|
+
|
29
48
|
end
|