simple_helpers 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## v0.0.4
2
+
3
+ * config.blacklist renamed to except and config.whitelist to only
4
+
1
5
  ## v0.0.3
2
6
 
3
7
  * Automatic pluralize I18n scope names is no longer the default behavior
data/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  Easily create helper methods with I18n and interpolation support to your controllers and views.
6
6
 
7
- You can configure it to automaticly create some methods (like page_title, page_subtitle) or call the method **simple_helper** manually according to your needs.
7
+ You can configure it to automaticly create some methods (like page_title) or call the method **simple_helper** manually according to your needs.
8
8
 
9
9
  To display page title in your view:
10
10
 
@@ -22,7 +22,7 @@ require "simple_helpers"
22
22
  SimpleHelpers.configure do |config|
23
23
  config.helpers = [:page_title]
24
24
  config.except = [SessionsController]
25
- config.only = []
25
+ # config.only = []
26
26
  end
27
27
  ```
28
28
 
@@ -30,14 +30,19 @@ And/or call the method **simple_helper** manually according to your needs:
30
30
 
31
31
  ```ruby
32
32
  # some examples
33
- simple_helper :page_subtitle, :sponsor, :title => @post.title
33
+ simple_helper :page_subtitle, :title => @post.title
34
+
35
+ # declare multiple helpers in one statement
36
+ simple_helper :sponsor, :page_footer, :title => @post.title
37
+
38
+ # An instance variable **@<helper-method-name>_options** is created for customizations
34
39
  @sponsor_options.merge!({:company => "Github"})
35
40
 
36
- page_subtitle "Keep Calm and %{text}", :text => "Call Batman"
37
- page_subtitle "Keep Calm"
41
+ page_footer "Post %{title} by %{author}"
42
+ @page_footer_options = { :author => @post.author }
38
43
 
39
44
  simple_helper :user_alert
40
- @user_alert_options = {:username => @post.author}
45
+ @user_alert_options = {:username => current_user.username }
41
46
  ```
42
47
 
43
48
  If you didn't set the value manually, the gem will get it from your I18n backend.
@@ -9,46 +9,8 @@ module SimpleHelpers
9
9
  array_of_names.each do |name_symbol|
10
10
  name = name_symbol.underscore
11
11
 
12
- self.class_eval do
13
- define_method(name) do |*args|
14
- if args.empty?
15
- send "#{name}_get"
16
- else
17
- options = args.extract_options!
18
- send "#{name}_set", args.first, options
19
- end
20
- end
21
-
22
- define_method("#{name}_options") do
23
- instance_variable_set("@#{name}_options", {}) unless instance_variable_get("@#{name}_options")
24
- instance_variable_get("@#{name}_options")
25
- end
26
-
27
- define_method("#{name}_set") do |*args|
28
- instance_variable_set "@#{name}", args.first
29
- instance_variable_set "@#{name}_options", args.last
30
- end
31
-
32
- define_method("#{name}_get") do |*args|
33
- scopes = SimpleHelpers::Support.scopes(self, name)
34
-
35
- value = instance_variable_get("@#{name}")
36
- options = send("#{name}_options")
37
-
38
- result = value % options unless value.nil?
39
-
40
- # removing rails reserved word
41
- helper_options = options.delete_if{|k,v| k.to_sym == :scope}
42
-
43
- result ||= t(scopes[:first], helper_options)
44
- if result.include? "translation missing" and scopes.has_key? :second
45
- helper_options.merge! :default => result
46
- result = t(scopes[:second], helper_options)
47
- end
48
-
49
- result
50
- end
51
- end
12
+ # define_methods
13
+ SimpleHelpers::Support.create_method(self, name)
52
14
 
53
15
  # method helper
54
16
  ::ActionController::Base.helper_method name.to_s
@@ -33,5 +33,47 @@ module SimpleHelpers
33
33
  }
34
34
  end
35
35
 
36
+ def self.create_method(controller, name)
37
+ controller.class_eval do
38
+ define_method(name) do |*args|
39
+ if args.empty?
40
+ send "#{name}_get"
41
+ else
42
+ options = args.extract_options!
43
+ send "#{name}_set", args.first, options
44
+ end
45
+ end
46
+
47
+ define_method("#{name}_options") do
48
+ instance_variable_set("@#{name}_options", {}) unless instance_variable_get("@#{name}_options")
49
+ instance_variable_get("@#{name}_options")
50
+ end
51
+
52
+ define_method("#{name}_set") do |*args|
53
+ instance_variable_set "@#{name}", args.first
54
+ instance_variable_set "@#{name}_options", args.last
55
+ end
56
+
57
+ define_method("#{name}_get") do |*args|
58
+ scopes = SimpleHelpers::Support.scopes(controller, name)
59
+
60
+ value = instance_variable_get("@#{name}")
61
+ options = send("#{name}_options")
62
+
63
+ result = value % options unless value.nil?
64
+
65
+ # removing rails reserved word
66
+ helper_options = options.delete_if{|k,v| k.to_sym == :scope}
67
+
68
+ result ||= t(scopes[:first], helper_options)
69
+ if result.include? "translation missing" and scopes.has_key? :second
70
+ helper_options.merge! :default => result
71
+ result = t(scopes[:second], helper_options)
72
+ end
73
+
74
+ result
75
+ end
76
+ end
77
+ end
36
78
  end
37
79
  end
@@ -2,7 +2,7 @@ module SimpleHelpers
2
2
  module Version
3
3
  MAJOR = 0
4
4
  MINOR = 0
5
- PATCH = 4
5
+ PATCH = 5
6
6
  STRING = "#{MAJOR}.#{MINOR}.#{PATCH}"
7
7
  end
8
8
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple_helpers
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-07-21 00:00:00.000000000 Z
12
+ date: 2012-07-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -124,7 +124,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
124
124
  version: '0'
125
125
  segments:
126
126
  - 0
127
- hash: 632949602249206258
127
+ hash: -4509853982771799667
128
128
  required_rubygems_version: !ruby/object:Gem::Requirement
129
129
  none: false
130
130
  requirements:
@@ -133,7 +133,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
133
133
  version: '0'
134
134
  segments:
135
135
  - 0
136
- hash: 632949602249206258
136
+ hash: -4509853982771799667
137
137
  requirements: []
138
138
  rubyforge_project:
139
139
  rubygems_version: 1.8.23