tanga_namespaced_helpers 0.0.6 → 0.1.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 +7 -0
- data/README +5 -12
- data/lib/tanga_namespaced_helpers.rb +34 -14
- data/lib/tanga_namespaced_helpers/version.rb +1 -1
- data/tanga_namespaced_helpers.gemspec +1 -0
- metadata +22 -11
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 5849a60b093b3846289497670f4dbb37203fe30e
|
4
|
+
data.tar.gz: e2624e05b3b89c0d962ddf71be5ef7eeb83b9e21
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 6b64bc490293ef76805ae6af0df77c6b208d74457400415c3035a6a1071f621bb0a62b3b78ef865fc1c4ef6a3739fdbf90b4660e653dfb99773a8b78bbef7719
|
7
|
+
data.tar.gz: 0312c50d77e616a230546fe46071a7662fc6f0fccf0c72e1733d77f6a0b6127def7ef72cf6b2da83272dc5b3b3d319560f78a4df7594cf47c11adb2ecbf2d10c
|
data/README
CHANGED
@@ -1,23 +1,16 @@
|
|
1
1
|
No longer suffer the tyranny of 10 billion helper methods scattered throughout
|
2
2
|
files without hierarchy.
|
3
3
|
|
4
|
-
Your Code in
|
5
|
-
module
|
4
|
+
Your Code in app/helpers/links_helper.rb:
|
5
|
+
module LinksHelper
|
6
6
|
extend TangaNamespacedHelpers
|
7
7
|
|
8
8
|
def self.tanga_points user
|
9
|
-
link_to(pluralize(user.total_points, "Tanga Point"),
|
9
|
+
link_to(pluralize(user.total_points, "Tanga Point"),
|
10
|
+
leaderboards_path(:user_id => user.id))
|
10
11
|
end
|
11
12
|
end
|
12
13
|
|
13
14
|
|
14
15
|
Your View:
|
15
|
-
<%=
|
16
|
-
|
17
|
-
For shorter code, in an initializer or something, do:
|
18
|
-
|
19
|
-
H = YourApp::Helpers
|
20
|
-
|
21
|
-
Then your views can do:
|
22
|
-
|
23
|
-
<%= H::Links.tanga_points(user) %>
|
16
|
+
<%= LinksHelper.tanga_points(user) %>
|
@@ -1,34 +1,54 @@
|
|
1
1
|
require "tanga_namespaced_helpers/version"
|
2
|
+
require 'request_store'
|
3
|
+
|
4
|
+
module Rooster
|
5
|
+
def self.view_context
|
6
|
+
RequestStore.store[:view_context]
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.view_context= context
|
10
|
+
RequestStore.store[:view_context] = context
|
11
|
+
end
|
12
|
+
|
13
|
+
# Workaround for ActionMMailer apparently resetting some of the view context sometimes.
|
14
|
+
def self.original_view_context
|
15
|
+
RequestStore.store[:original_view_context]
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.original_view_context= context
|
19
|
+
RequestStore.store[:original_view_context] = context
|
20
|
+
end
|
21
|
+
end
|
2
22
|
|
3
23
|
# This probably isn't the best way to structure the code.
|
4
24
|
# Stupid name, bad code, no tests, etc.
|
5
25
|
module TangaNamespacedHelpers
|
6
26
|
def self.reset! controller
|
7
|
-
|
8
|
-
if controller.is_a?(ActionController::Base)
|
9
|
-
@original_context = @view
|
10
|
-
end
|
27
|
+
view_context = controller.view_context
|
11
28
|
|
12
29
|
# Hack to get Haml helpers available
|
13
30
|
if defined? Haml
|
14
|
-
class <<
|
31
|
+
class << view_context
|
15
32
|
include Haml::Helpers
|
16
33
|
end
|
17
|
-
|
34
|
+
view_context.init_haml_helpers
|
35
|
+
end
|
36
|
+
Rooster.view_context = view_context
|
37
|
+
|
38
|
+
if controller.is_a?(ActionController::Base)
|
39
|
+
Rooster.original_view_context = view_context
|
18
40
|
end
|
19
|
-
end
|
20
41
|
|
21
|
-
def self.view
|
22
|
-
@view
|
23
42
|
end
|
24
43
|
|
25
44
|
def self.use_controller!
|
26
|
-
|
45
|
+
if Rooster.original_view_context
|
46
|
+
Rooster.view_context = Rooster.original_view_context
|
47
|
+
end
|
27
48
|
end
|
28
49
|
|
29
|
-
# TODO Gotta be a better way to do this.
|
30
50
|
def view
|
31
|
-
|
51
|
+
Rooster.view_context
|
32
52
|
end
|
33
53
|
|
34
54
|
def method_missing *args, &block
|
@@ -51,15 +71,15 @@ module TangaNamespacedHelpers
|
|
51
71
|
end
|
52
72
|
|
53
73
|
def reset_namespace_view_context
|
54
|
-
TangaNamespacedHelpers.reset!
|
74
|
+
TangaNamespacedHelpers.reset!(self)
|
55
75
|
end
|
56
76
|
end
|
57
77
|
end
|
58
78
|
|
59
|
-
|
60
79
|
ActionController::Base.send :include, TangaNamespacedHelpers::ControllerMethods
|
61
80
|
|
62
81
|
class ActionMailer::Base
|
63
82
|
# This is necessary to use namespaced helpers from the actionmailer views
|
64
83
|
default 'init-view' => Proc.new { TangaNamespacedHelpers.reset!(self) }
|
65
84
|
end
|
85
|
+
|
metadata
CHANGED
@@ -1,16 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tanga_namespaced_helpers
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.1.1
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Joe Van Dyk
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
13
|
-
dependencies:
|
11
|
+
date: 2013-10-30 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: request_store
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 1.0.5
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 1.0.5
|
14
27
|
description: Namespace your Rails helper methods
|
15
28
|
email:
|
16
29
|
- joe@tanga.com
|
@@ -27,27 +40,25 @@ files:
|
|
27
40
|
- tanga_namespaced_helpers.gemspec
|
28
41
|
homepage: ''
|
29
42
|
licenses: []
|
43
|
+
metadata: {}
|
30
44
|
post_install_message:
|
31
45
|
rdoc_options: []
|
32
46
|
require_paths:
|
33
47
|
- lib
|
34
48
|
required_ruby_version: !ruby/object:Gem::Requirement
|
35
|
-
none: false
|
36
49
|
requirements:
|
37
|
-
- -
|
50
|
+
- - '>='
|
38
51
|
- !ruby/object:Gem::Version
|
39
52
|
version: '0'
|
40
53
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
54
|
requirements:
|
43
|
-
- -
|
55
|
+
- - '>='
|
44
56
|
- !ruby/object:Gem::Version
|
45
57
|
version: '0'
|
46
58
|
requirements: []
|
47
59
|
rubyforge_project: tanga_namespaced_helpers
|
48
|
-
rubygems_version: 1.
|
60
|
+
rubygems_version: 2.1.9
|
49
61
|
signing_key:
|
50
|
-
specification_version:
|
62
|
+
specification_version: 4
|
51
63
|
summary: Namespace your Rails helper methods
|
52
64
|
test_files: []
|
53
|
-
has_rdoc:
|