tanga_namespaced_helpers 0.0.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.
- data/.gitignore +4 -0
- data/Gemfile +4 -0
- data/README +27 -0
- data/Rakefile +1 -0
- data/lib/tanga_namespaced_helpers/version.rb +3 -0
- data/lib/tanga_namespaced_helpers.rb +35 -0
- data/tanga_namespaced_helpers.gemspec +20 -0
- metadata +74 -0
data/.gitignore
ADDED
data/Gemfile
ADDED
data/README
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
|
2
|
+
No longer suffer the tyranny of 10 billion helper methods scattered throughout
|
3
|
+
files without hierarchy.
|
4
|
+
|
5
|
+
Your Code in lib/your_app/helpers/links.rb:
|
6
|
+
module YourApp::Helpers::Links
|
7
|
+
extend TangaNamespacedHelpers
|
8
|
+
|
9
|
+
def self.tanga_points user
|
10
|
+
link_to(pluralize(user.total_points, "Tanga Point"),
|
11
|
+
leaderboards_path(:user_id => user.id))
|
12
|
+
|
13
|
+
# You can also access the view directory with:
|
14
|
+
view.link_to(view.pluralize(user.total_points, "Tanga Point"),
|
15
|
+
view.leaderboards_path(:user_id => user.id))
|
16
|
+
# I'm not sure which is better here. The first is less magic, more explicit.
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
|
21
|
+
Your View:
|
22
|
+
<%= YourApp::Helpers::Links.tanga_points(user) %>
|
23
|
+
|
24
|
+
For shorter code, in an initializer or something, do:
|
25
|
+
H = YourApp::Helpers
|
26
|
+
Then your views can do:
|
27
|
+
<%= H::Links.tanga_points(user)
|
data/Rakefile
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require 'bundler/gem_tasks'
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require "tanga_namespaced_helpers/version"
|
2
|
+
|
3
|
+
# This probably isn't the best way to structure the code.
|
4
|
+
# Stupid name, bad code, no tests, etc.
|
5
|
+
module TangaNamespacedHelpers
|
6
|
+
def self.reset! controller
|
7
|
+
@view = controller.view_context
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.view
|
11
|
+
@view
|
12
|
+
end
|
13
|
+
|
14
|
+
# TODO Gotta be a better way to do this.
|
15
|
+
def view
|
16
|
+
TangaNamespacedHelpers.view
|
17
|
+
end
|
18
|
+
|
19
|
+
def method_missing *args, &block
|
20
|
+
view.send *args, &block
|
21
|
+
end
|
22
|
+
|
23
|
+
module ControllerMethods
|
24
|
+
def self.included base
|
25
|
+
base.before_filter :reset_namespace_view_context
|
26
|
+
end
|
27
|
+
|
28
|
+
def reset_namespace_view_context
|
29
|
+
TangaNamespacedHelpers.reset! self
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
|
35
|
+
ActionController::Base.send :include, TangaNamespacedHelpers::ControllerMethods
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "tanga_namespaced_helpers/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "tanga_namespaced_helpers"
|
7
|
+
s.version = TangaNamespacedHelpers::VERSION
|
8
|
+
s.authors = ["Joe Van Dyk"]
|
9
|
+
s.email = ["joe@tanga.com"]
|
10
|
+
s.homepage = ""
|
11
|
+
s.summary = %q{Namespace your Rails helper methods}
|
12
|
+
s.description = %q{Namespace your Rails helper methods}
|
13
|
+
|
14
|
+
s.rubyforge_project = "tanga_namespaced_helpers"
|
15
|
+
|
16
|
+
s.files = `git ls-files`.split("\n")
|
17
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
18
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
19
|
+
s.require_paths = ["lib"]
|
20
|
+
end
|
metadata
ADDED
@@ -0,0 +1,74 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: tanga_namespaced_helpers
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 29
|
5
|
+
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
- 1
|
10
|
+
version: 0.0.1
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Joe Van Dyk
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2011-08-25 00:00:00 -07:00
|
19
|
+
default_executable:
|
20
|
+
dependencies: []
|
21
|
+
|
22
|
+
description: Namespace your Rails helper methods
|
23
|
+
email:
|
24
|
+
- joe@tanga.com
|
25
|
+
executables: []
|
26
|
+
|
27
|
+
extensions: []
|
28
|
+
|
29
|
+
extra_rdoc_files: []
|
30
|
+
|
31
|
+
files:
|
32
|
+
- .gitignore
|
33
|
+
- Gemfile
|
34
|
+
- README
|
35
|
+
- Rakefile
|
36
|
+
- lib/tanga_namespaced_helpers.rb
|
37
|
+
- lib/tanga_namespaced_helpers/version.rb
|
38
|
+
- tanga_namespaced_helpers.gemspec
|
39
|
+
has_rdoc: true
|
40
|
+
homepage: ""
|
41
|
+
licenses: []
|
42
|
+
|
43
|
+
post_install_message:
|
44
|
+
rdoc_options: []
|
45
|
+
|
46
|
+
require_paths:
|
47
|
+
- lib
|
48
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ">="
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
hash: 3
|
54
|
+
segments:
|
55
|
+
- 0
|
56
|
+
version: "0"
|
57
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
58
|
+
none: false
|
59
|
+
requirements:
|
60
|
+
- - ">="
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
hash: 3
|
63
|
+
segments:
|
64
|
+
- 0
|
65
|
+
version: "0"
|
66
|
+
requirements: []
|
67
|
+
|
68
|
+
rubyforge_project: tanga_namespaced_helpers
|
69
|
+
rubygems_version: 1.5.2
|
70
|
+
signing_key:
|
71
|
+
specification_version: 3
|
72
|
+
summary: Namespace your Rails helper methods
|
73
|
+
test_files: []
|
74
|
+
|