push_type_core 0.2.0 → 0.2.1
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 +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
|