neuron 0.0.5 → 0.0.6
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.
- data/lib/neuron/authorization.rb +13 -2
- data/lib/neuron/controller.rb +11 -0
- data/lib/neuron/railtie.rb +11 -0
- data/lib/neuron/resources.rb +3 -2
- data/lib/neuron/show_for/helper.rb +27 -0
- data/lib/neuron/show_for.rb +20 -0
- data/lib/neuron/version.rb +1 -1
- data/lib/neuron/view.rb +20 -6
- data/lib/neuron.rb +10 -23
- data/neuron.gemspec +2 -0
- metadata +23 -4
- data/lib/neuron/rails.rb +0 -10
data/lib/neuron/authorization.rb
CHANGED
@@ -12,9 +12,20 @@ module Neuron
|
|
12
12
|
end
|
13
13
|
end
|
14
14
|
|
15
|
-
|
16
|
-
|
15
|
+
if defined?(::Devise)
|
16
|
+
def access_denied(exception = nil)
|
17
|
+
if user_signed_in?
|
18
|
+
redirect_to '/422.html'
|
19
|
+
else
|
20
|
+
redirect_to new_user_session_path, alert: I18n.t('devise.failure.unauthenticated')
|
21
|
+
end
|
22
|
+
end
|
23
|
+
else
|
24
|
+
def access_denied(exception = nil)
|
25
|
+
redirect_to '/422.html'
|
26
|
+
end
|
17
27
|
end
|
28
|
+
|
18
29
|
end
|
19
30
|
|
20
31
|
module View
|
data/lib/neuron/controller.rb
CHANGED
@@ -5,6 +5,17 @@ module Neuron
|
|
5
5
|
module Controller
|
6
6
|
extend ActiveSupport::Concern
|
7
7
|
|
8
|
+
def self.setup!
|
9
|
+
if defined?(::ActionController)
|
10
|
+
ActionController::Base.send(:include, Neuron::Controller)
|
11
|
+
if defined?(::InheritedResources)
|
12
|
+
ActionController::Base.send(:include, Neuron::Resources::Controller)
|
13
|
+
require 'neuron/integrations/cancan_inherited_resources' if defined?(::CanCan)
|
14
|
+
end
|
15
|
+
ActionController::Base.send(:include, Neuron::Authorization::Controller) if defined?(::CanCan)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
8
19
|
module ClassMethods
|
9
20
|
def append_neuron_view_path_resolver
|
10
21
|
append_view_path Neuron::Resolver.new
|
data/lib/neuron/resources.rb
CHANGED
@@ -48,6 +48,7 @@ module Neuron
|
|
48
48
|
options[:class] ||= resource_class
|
49
49
|
options[:by] = options[:by].to_sym
|
50
50
|
options[:as] ||= human(options[:class], options[:by])
|
51
|
+
html_options[:title] ||= human(options[:class], options[:by])
|
51
52
|
asc_orders = Array(params[:ascending]).map(&:to_sym)
|
52
53
|
desc_orders = Array(params[:descending]).map(&:to_sym)
|
53
54
|
ascending = asc_orders.include?(options[:by])
|
@@ -107,7 +108,7 @@ module Neuron
|
|
107
108
|
collection ||= self.collection
|
108
109
|
content_tag(:article, class: 'b-collection') do
|
109
110
|
''.html_safe.tap do |result|
|
110
|
-
result << content_tag(:header, collection_title(collection, tag), class: 'b-collection__header')
|
111
|
+
result << content_tag(:header, collection_title(collection, tag: tag), class: 'b-collection__header')
|
111
112
|
if block_given?
|
112
113
|
result << capture(&block)
|
113
114
|
else
|
@@ -130,7 +131,7 @@ module Neuron
|
|
130
131
|
result << title(nil,
|
131
132
|
resource: link_to(resource, canonical_path(resource)),
|
132
133
|
default: resource.to_s)
|
133
|
-
if (action == :show) && can?(:update, resource)
|
134
|
+
if (action == :show) && can?(:update, resource) && controller.respond_to?(:edit)
|
134
135
|
result << content_tag(:sup,
|
135
136
|
link_to(t(:edit,
|
136
137
|
object: resource,
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'neuron/show_for'
|
2
|
+
require 'show_for/helper'
|
3
|
+
|
4
|
+
module Neuron
|
5
|
+
module ShowFor
|
6
|
+
module Helper
|
7
|
+
# Creates a div around the object and yields a builder.
|
8
|
+
#
|
9
|
+
# @example
|
10
|
+
# show_for @user do |f|
|
11
|
+
# f.attribute :name
|
12
|
+
# f.attribute :email
|
13
|
+
# end
|
14
|
+
def show_for(object, html_options={}, &block)
|
15
|
+
tag = html_options.delete(:show_for_tag) || ::ShowFor.show_for_tag
|
16
|
+
|
17
|
+
html_options[:id] ||= dom_id(object, :show_for)
|
18
|
+
html_options[:class] = "show_for #{dom_class(object)} #{html_options[:class]}".strip
|
19
|
+
|
20
|
+
builder = html_options.delete(:builder) || ::ShowFor::Builder
|
21
|
+
content = capture(builder.new(object, self), &block)
|
22
|
+
|
23
|
+
content_tag(tag, content, html_options)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'neuron'
|
2
|
+
require 'show_for'
|
3
|
+
|
4
|
+
module Neuron
|
5
|
+
module ShowFor
|
6
|
+
extend ActiveSupport::Autoload
|
7
|
+
|
8
|
+
autoload :Helper
|
9
|
+
|
10
|
+
def self.setup!
|
11
|
+
# Reconfigure ShowFor
|
12
|
+
ShowFor.wrapper_tag = :dl
|
13
|
+
ShowFor.label_tag = :dt
|
14
|
+
ShowFor.content_tag = :dd
|
15
|
+
ShowFor.separator = ''
|
16
|
+
|
17
|
+
Helper # loads improved ShowFor helper
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
data/lib/neuron/version.rb
CHANGED
data/lib/neuron/view.rb
CHANGED
@@ -2,6 +2,18 @@ require 'neuron'
|
|
2
2
|
|
3
3
|
module Neuron
|
4
4
|
module View
|
5
|
+
extend ActiveSupport::Memoizable
|
6
|
+
|
7
|
+
def self.setup!
|
8
|
+
if defined?(::ActionView)
|
9
|
+
ActionView::Base.send(:include, Neuron::View)
|
10
|
+
ActionView::Base.send(:include, Neuron::Navigation::View)
|
11
|
+
ActionView::Base.send(:include, Neuron::Resources::View) if defined?(::InheritedResources)
|
12
|
+
ActionView::Base.send(:include, Neuron::Authorization::View) if defined?(::CanCan)
|
13
|
+
ActionView::Base.send(:include, Neuron::ShowFor::Helper) if defined?(::ShowFor)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
5
17
|
def block_modifiers(block, *modifiers)
|
6
18
|
klasses = [block]
|
7
19
|
if (options = modifiers.extract_options!).any?
|
@@ -28,24 +40,26 @@ module Neuron
|
|
28
40
|
def human(klass, attribute = nil)
|
29
41
|
attribute ? klass.human_attribute_name(attribute) : klass.name.human
|
30
42
|
end
|
31
|
-
|
32
|
-
# Build canonical path for given resource
|
33
|
-
def canonical_path(resource, options = {})
|
34
|
-
canonical_url(resource, options.merge(routing_type: :path))
|
35
|
-
end
|
43
|
+
memoize :human
|
36
44
|
|
37
45
|
# Build canonical url for given resource
|
38
46
|
def canonical_url(resource, options = {})
|
39
47
|
polymorphic_url(resource, options)
|
40
48
|
end
|
41
49
|
|
50
|
+
# Build canonical path for given resource
|
51
|
+
def canonical_path(resource, options = {})
|
52
|
+
canonical_url(resource, options.merge(routing_type: :path))
|
53
|
+
end
|
54
|
+
|
42
55
|
def view_name
|
43
56
|
{create: 'new', update: 'edit'}[action_name] || action_name
|
44
57
|
end
|
45
58
|
|
46
59
|
def controller_i18n_scope
|
47
|
-
|
60
|
+
controller.controller_path.gsub(%r{/}, '.')
|
48
61
|
end
|
62
|
+
memoize :controller_i18n_scope
|
49
63
|
|
50
64
|
def time(time, options = {})
|
51
65
|
format = options.delete(:format) { :short }
|
data/lib/neuron.rb
CHANGED
@@ -5,35 +5,22 @@ module Neuron
|
|
5
5
|
autoload :Authorization, 'neuron/authorization'
|
6
6
|
autoload :Controller, 'neuron/controller'
|
7
7
|
autoload :Navigation, 'neuron/navigation'
|
8
|
+
autoload :Railtie, 'neuron/railtie'
|
8
9
|
autoload :Resolver, 'neuron/resolver'
|
9
10
|
autoload :Resources, 'neuron/resources'
|
10
|
-
autoload :
|
11
|
+
autoload :ShowFor, 'neuron/show_for'
|
11
12
|
autoload :View, 'neuron/view'
|
12
13
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
14
|
+
class << self
|
15
|
+
def setup!
|
16
|
+
Neuron::Controller.setup!
|
17
|
+
Neuron::View.setup!
|
17
18
|
end
|
18
|
-
if defined?(ActionController)
|
19
|
-
ActionController::Base.send :include, Neuron::Controller
|
20
|
-
end
|
21
|
-
if defined?(InheritedResources)
|
22
|
-
ActionController::Base.send :include, Neuron::Resources::Controller
|
23
|
-
ActionView::Base.send :include, Neuron::Resources::View
|
24
|
-
if defined?(CanCan)
|
25
|
-
require 'neuron/integrations/cancan_inherited_resources'
|
26
|
-
end
|
27
|
-
end
|
28
|
-
if defined?(CanCan)
|
29
|
-
ActionController::Base.send :include, Neuron::Authorization::Controller
|
30
|
-
ActionView::Base.send :include, Neuron::Authorization::View
|
31
|
-
end
|
32
|
-
end
|
33
19
|
|
34
|
-
|
35
|
-
|
20
|
+
def path
|
21
|
+
File.expand_path('../..', __FILE__)
|
22
|
+
end
|
36
23
|
end
|
37
24
|
end
|
38
25
|
|
39
|
-
require 'neuron/
|
26
|
+
require 'neuron/railtie' if defined?(Rails)
|
data/neuron.gemspec
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: neuron
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,8 +9,19 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-06-
|
13
|
-
dependencies:
|
12
|
+
date: 2011-06-11 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: rake
|
16
|
+
requirement: &73648720 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :development
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *73648720
|
14
25
|
description: Code reused in many applications
|
15
26
|
email:
|
16
27
|
- al@semyonov.us
|
@@ -36,9 +47,11 @@ files:
|
|
36
47
|
- lib/neuron/controller.rb
|
37
48
|
- lib/neuron/integrations/cancan_inherited_resources.rb
|
38
49
|
- lib/neuron/navigation.rb
|
39
|
-
- lib/neuron/
|
50
|
+
- lib/neuron/railtie.rb
|
40
51
|
- lib/neuron/resolver.rb
|
41
52
|
- lib/neuron/resources.rb
|
53
|
+
- lib/neuron/show_for.rb
|
54
|
+
- lib/neuron/show_for/helper.rb
|
42
55
|
- lib/neuron/version.rb
|
43
56
|
- lib/neuron/view.rb
|
44
57
|
- neuron.gemspec
|
@@ -54,12 +67,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
54
67
|
- - ! '>='
|
55
68
|
- !ruby/object:Gem::Version
|
56
69
|
version: '0'
|
70
|
+
segments:
|
71
|
+
- 0
|
72
|
+
hash: -188768273
|
57
73
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
58
74
|
none: false
|
59
75
|
requirements:
|
60
76
|
- - ! '>='
|
61
77
|
- !ruby/object:Gem::Version
|
62
78
|
version: '0'
|
79
|
+
segments:
|
80
|
+
- 0
|
81
|
+
hash: -188768273
|
63
82
|
requirements: []
|
64
83
|
rubyforge_project: neuron
|
65
84
|
rubygems_version: 1.8.5
|