helperiffic 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,34 @@
1
+ class HelperBroker
2
+ def initialize(teh_scope)
3
+ @scope = teh_scope
4
+ @helpers = {}
5
+ end
6
+
7
+ def helper(name)
8
+ class_sym = "#{name.capitalize}Helper".to_sym
9
+ @helpers[class_sym] ||= load_helper(class_sym)
10
+ end
11
+
12
+ def method_missing(method_sym, *args, &block)
13
+ h = helper(method_sym)
14
+ h.send(method_sym, *args, &block)
15
+ end
16
+
17
+ private
18
+
19
+ def load_helper(class_sym)
20
+ h = @scope.class.const_get(class_sym).new
21
+ h.hb = self if h.respond_to? :"hb="
22
+ h
23
+ end
24
+ end
25
+
26
+ module Helperiffic
27
+ def hb=(helperBroker)
28
+ @hb = helperBroker
29
+ end
30
+
31
+ def hb
32
+ @hb
33
+ end
34
+ end
@@ -0,0 +1,14 @@
1
+ require 'sinatra/base'
2
+ require 'helperiffic'
3
+
4
+ module Sinatra
5
+ module Helperiffic
6
+ def self.registered(app)
7
+ app.helpers do
8
+ def hb
9
+ @helper_broker ||= HelperBroker.new(self)
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
metadata ADDED
@@ -0,0 +1,65 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: helperiffic
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 0
8
+ - 1
9
+ version: 0.0.1
10
+ platform: ruby
11
+ authors:
12
+ - Hector Virgen
13
+ autorequire:
14
+ bindir: bin
15
+ cert_chain: []
16
+
17
+ date: 2012-05-30 00:00:00 -07:00
18
+ default_executable:
19
+ dependencies: []
20
+
21
+ description: Finally, helpers that make sense!
22
+ email: djvirgen@gmail.com
23
+ executables: []
24
+
25
+ extensions: []
26
+
27
+ extra_rdoc_files: []
28
+
29
+ files:
30
+ - lib/helperiffic.rb
31
+ - lib/sinatra/helperiffic.rb
32
+ has_rdoc: true
33
+ homepage: https://github.com/djvirgen/helperiffic
34
+ licenses: []
35
+
36
+ post_install_message:
37
+ rdoc_options: []
38
+
39
+ require_paths:
40
+ - lib
41
+ required_ruby_version: !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ segments:
47
+ - 0
48
+ version: "0"
49
+ required_rubygems_version: !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ segments:
55
+ - 0
56
+ version: "0"
57
+ requirements: []
58
+
59
+ rubyforge_project:
60
+ rubygems_version: 1.3.7
61
+ signing_key:
62
+ specification_version: 3
63
+ summary: Better Helpers for Rails/Sinatra
64
+ test_files: []
65
+