dyn_meta 0.0.2 → 0.0.3

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/Gemfile CHANGED
@@ -13,5 +13,4 @@ group :development do
13
13
  gem "cucumber", ">= 0"
14
14
  gem "bundler", "~> 1.0.0"
15
15
  gem "jeweler", "~> 1.5.1"
16
- #gem "rcov", ">= 0"
17
16
  end
data/README.rdoc CHANGED
@@ -1,6 +1,10 @@
1
1
  = DynMeta
2
2
 
3
- Automate the lookup of page meta information based on the current request. Meta information such as page titles and descriptions can be stored in a translations file rather than floating around in controllers or views.
3
+ Automate the lookup of page meta information based on the current request context. Meta information such as page titles and descriptions can be stored in a translations file rather than floating around in controllers or views.
4
+
5
+ == Please Note
6
+
7
+ The usage of dyn_meta has changed from *page_* methods to a simple *meta* method.
4
8
 
5
9
  == Installation
6
10
 
@@ -17,61 +21,53 @@ Install the gem
17
21
  Set up your translations as follows:
18
22
 
19
23
  en:
20
- <meta key pluralized>:
21
- <controller>:
22
- <action>:
23
- <id>: "Some meta value"
24
+ meta:
25
+ <meta key pluralized>:
26
+ <controller>:
27
+ <action>:
28
+ <id>: "Some meta value"
24
29
 
25
30
  For example:
26
31
 
27
32
  en:
28
- page_titles:
29
- users:
30
- new: "Create Your Account"
31
- edit: "Update Your Account"
33
+ meta:
34
+ titles:
35
+ users:
36
+ new: "Create Your Account"
37
+ edit: "Update Your Account"
32
38
 
33
39
  You usually won't go down to the _id_ level but occasionally it's useful:
34
40
 
35
41
  en:
36
- page_titles:
37
- pages:
38
- show:
39
- tos: "Terms of Service"
40
- pp: "Privacy Policy"
41
- about: "About My Site"
42
+ meta:
43
+ titles:
44
+ pages:
45
+ show:
46
+ tos: "Terms of Service"
47
+ pp: "Privacy Policy"
48
+ about: "About My Site"
42
49
 
43
50
  You can define catch-alls via the _default_ key:
44
51
 
45
52
  en:
46
- page_titles:
47
- default: "My Super Site"
48
- users:
49
- default: "Manage Your Account"
50
- new: "Create Your Account"
51
- edit: "Update Your Account"
53
+ meta:
54
+ titles:
55
+ default: "My Super Site"
56
+ users:
57
+ default: "Manage Your Account"
58
+ new: "Create Your Account"
59
+ edit: "Update Your Account"
52
60
 
53
61
 
54
- DynMeta provides one method *page_detail*. It's both a setter and a getter. Just use the *page_detail* method in your template:
55
-
56
- <title><%= page_detail(:page_title) %></title>
57
- <meta name="description" content="<%= page_detail(:page_description) %>" />
58
-
59
- Alternatively, DynMeta matches any method starting with *page_* so you could just do:
60
-
61
- <title><%= page_title %></title>
62
- <meta name="description" content="<%= page_description %>" />
63
-
64
- Be sure to add the *page_* methods as helpers in your application controller:
65
-
66
- class ApplicationController < ActionController::Base
62
+ DynMeta provides one method *meta*. It's both a setter and a getter. Just use the *meta* method in your template:
67
63
 
68
- helper_method :page_title,
69
- :page_description
64
+ <title><%= meta(:title) %></title>
65
+ <meta name="description" content="<%= meta(:description) %>" />
70
66
 
71
- If you'd like to override meta content you can just pass a value to the page_detail method:
67
+ If you'd like to override meta content you can just pass a value to the *meta* method:
72
68
 
73
69
  def show
74
70
  @user = User.find(params[:id])
75
- page_detail(:page_title, "#{@user.display_name} :: Profile")
71
+ meta(:title, "#{@user.display_name} :: Profile")
76
72
  end
77
73
 
data/Rakefile CHANGED
@@ -15,8 +15,8 @@ Jeweler::Tasks.new do |gem|
15
15
  gem.name = "dyn_meta"
16
16
  gem.homepage = "http://github.com/mnelson/dyn_meta"
17
17
  gem.license = "MIT"
18
- gem.summary = %Q{Automate the lookup of page meta information based on the current request}
19
- gem.description = %Q{Automate the lookup of page meta information based on the current request. Meta information such as page titles and descriptions can be stored in a translations file rather than floating around in controllers or views.}
18
+ gem.summary = %Q{Automate the lookup of page meta information based on the current request context}
19
+ gem.description = %Q{Automate the lookup of page meta information based on the current request context. Meta information such as page titles and descriptions can be stored in a translations file rather than floating around in controllers or views.}
20
20
  gem.email = "mike@mikeonrails.com"
21
21
  gem.authors = ["Mike Nelson"]
22
22
  # Include your dependencies below. Runtime dependencies are required when using your gem,
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.2
1
+ 0.0.3
data/dyn_meta.gemspec CHANGED
@@ -5,12 +5,12 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{dyn_meta}
8
- s.version = "0.0.2"
8
+ s.version = "0.0.3"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Mike Nelson"]
12
- s.date = %q{2010-12-17}
13
- s.description = %q{Automate the lookup of page meta information based on the current request. Meta information such as page titles and descriptions can be stored in a translations file rather than floating around in controllers or views.}
12
+ s.date = %q{2011-10-05}
13
+ s.description = %q{Automate the lookup of page meta information based on the current request context. Meta information such as page titles and descriptions can be stored in a translations file rather than floating around in controllers or views.}
14
14
  s.email = %q{mike@mikeonrails.com}
15
15
  s.extra_rdoc_files = [
16
16
  "LICENSE.txt",
@@ -25,6 +25,7 @@ Gem::Specification.new do |s|
25
25
  "README.rdoc",
26
26
  "Rakefile",
27
27
  "VERSION",
28
+ "dyn_meta-0.0.3.gem",
28
29
  "dyn_meta.gemspec",
29
30
  "features/dyn_meta.feature",
30
31
  "features/step_definitions/dyn_meta_steps.rb",
@@ -39,7 +40,7 @@ Gem::Specification.new do |s|
39
40
  s.licenses = ["MIT"]
40
41
  s.require_paths = ["lib"]
41
42
  s.rubygems_version = %q{1.3.7}
42
- s.summary = %q{Automate the lookup of page meta information based on the current request}
43
+ s.summary = %q{Automate the lookup of page meta information based on the current request context}
43
44
  s.test_files = [
44
45
  "spec/dyn_meta_spec.rb",
45
46
  "spec/spec_helper.rb"
@@ -3,41 +3,30 @@ module DynMeta
3
3
 
4
4
  def self.included(base)
5
5
  base.class_eval do
6
- helper_method :page_detail
6
+ helper_method :meta
7
7
  end
8
8
  end
9
9
 
10
- def method_missing(method_name, *args)
11
- if method_name.to_s =~ /^page_/
12
- page_detail(method_name)
13
- else
14
- super
15
- end
16
- end
17
-
18
- def respond_to?(method_name, include_private = false)
19
- method_name.to_s =~ /^page_/ || super
20
- end
21
-
22
- def page_detail(name, val = nil)
23
- in_name = "@#{name}"
10
+ def meta(name, val = nil)
11
+
12
+ in_name = "@meta_#{name}"
24
13
  return instance_variable_set(in_name, val) if val.present?
25
14
  return instance_variable_get(in_name) if instance_variable_get(in_name)
26
- trans = I18n.translate(name.to_s.pluralize)
27
- prms = [:controller, :action, :id]
15
+
16
+ trans = I18n.translate("meta.#{name.to_s.pluralize}") || {}
28
17
  hash = trans
29
- prms.each do |p|
18
+ [:controller, :action, :id].each do |p|
30
19
  val = params[p] && hash[params[p].to_s.to_sym] || nil
31
20
  if val.nil?
32
- return hash[:default] || trans[:default] || nil
21
+ return instance_variable_set(in_name, hash[:default] || trans[:default] || nil)
33
22
  elsif val.is_a?(Hash)
34
23
  hash = val
35
24
  else
36
- return val
25
+ return instance_variable_set(in_name, val)
37
26
  end
38
27
  end
39
28
  end
40
-
29
+
41
30
  end
42
31
  end
43
32
 
@@ -9,31 +9,30 @@ describe "DynMeta" do
9
9
 
10
10
  it "should have dyn_meta methods included" do
11
11
  a = controller
12
- a.respond_to?(:page_detail).should be_true
13
- a.respond_to?(:page_title).should be_true
12
+ a.respond_to?(:meta).should be_true
14
13
  end
15
14
 
16
15
  it "should define instance variables when they don't exist" do
17
16
  a = controller
18
- a.page_detail(:page_title, 'value')
19
- a.instance_variable_get('@page_title').should eql('value')
17
+ a.instance_variable_get('@meta_title').should be_nil
18
+ a.meta(:title, 'value')
19
+ a.instance_variable_get('@meta_title').should eql('value')
20
20
  end
21
21
 
22
22
  it "should return nil when trans hash doesn't exist" do
23
23
  a = controller
24
- a.page_description.should be_nil
24
+ a.meta(:description).should be_nil
25
25
  end
26
26
 
27
27
  it "should look at controller action and id for translations" do
28
28
  a = controller(:controller => 'users', :action => 'edit')
29
- a.page_title.should eql("Update your account")
29
+ a.meta(:title).should eql("Update your account")
30
+ a.meta(:title).should eql("Update your account")
30
31
  end
31
32
 
32
33
  it "should fall back to default values" do
33
- a = controller
34
- a.page_title.should eql("Users, this is for you")
35
- a.params = {:controller => 'organizations'}
36
- a.page_title.should eql("My Great Startup Idea")
34
+ controller.meta(:title).should eql("Users, this is for you")
35
+ controller({:controller => 'organizations'}).meta(:title).should eql("My Great Startup Idea")
37
36
  end
38
37
 
39
38
 
data/spec/en.yml CHANGED
@@ -1,7 +1,8 @@
1
1
  en:
2
2
  foo: bar
3
- page_titles:
4
- default: "My Great Startup Idea"
5
- users:
6
- default: "Users, this is for you"
7
- edit: "Update your account"
3
+ meta:
4
+ titles:
5
+ default: "My Great Startup Idea"
6
+ users:
7
+ default: "Users, this is for you"
8
+ edit: "Update your account"
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dyn_meta
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 25
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 2
10
- version: 0.0.2
9
+ - 3
10
+ version: 0.0.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - Mike Nelson
@@ -15,14 +15,11 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-12-17 00:00:00 -05:00
18
+ date: 2011-10-05 00:00:00 -07:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
- prerelease: false
23
- type: :runtime
24
- name: rails
25
- version_requirements: &id001 !ruby/object:Gem::Requirement
22
+ requirement: &id001 !ruby/object:Gem::Requirement
26
23
  none: false
27
24
  requirements:
28
25
  - - ">="
@@ -31,12 +28,12 @@ dependencies:
31
28
  segments:
32
29
  - 0
33
30
  version: "0"
34
- requirement: *id001
35
- - !ruby/object:Gem::Dependency
31
+ name: rails
36
32
  prerelease: false
37
- type: :development
38
- name: rspec
39
- version_requirements: &id002 !ruby/object:Gem::Requirement
33
+ type: :runtime
34
+ version_requirements: *id001
35
+ - !ruby/object:Gem::Dependency
36
+ requirement: &id002 !ruby/object:Gem::Requirement
40
37
  none: false
41
38
  requirements:
42
39
  - - ~>
@@ -47,12 +44,12 @@ dependencies:
47
44
  - 1
48
45
  - 0
49
46
  version: 2.1.0
50
- requirement: *id002
51
- - !ruby/object:Gem::Dependency
47
+ name: rspec
52
48
  prerelease: false
53
49
  type: :development
54
- name: cucumber
55
- version_requirements: &id003 !ruby/object:Gem::Requirement
50
+ version_requirements: *id002
51
+ - !ruby/object:Gem::Dependency
52
+ requirement: &id003 !ruby/object:Gem::Requirement
56
53
  none: false
57
54
  requirements:
58
55
  - - ">="
@@ -61,12 +58,12 @@ dependencies:
61
58
  segments:
62
59
  - 0
63
60
  version: "0"
64
- requirement: *id003
65
- - !ruby/object:Gem::Dependency
61
+ name: cucumber
66
62
  prerelease: false
67
63
  type: :development
68
- name: bundler
69
- version_requirements: &id004 !ruby/object:Gem::Requirement
64
+ version_requirements: *id003
65
+ - !ruby/object:Gem::Dependency
66
+ requirement: &id004 !ruby/object:Gem::Requirement
70
67
  none: false
71
68
  requirements:
72
69
  - - ~>
@@ -77,12 +74,12 @@ dependencies:
77
74
  - 0
78
75
  - 0
79
76
  version: 1.0.0
80
- requirement: *id004
81
- - !ruby/object:Gem::Dependency
77
+ name: bundler
82
78
  prerelease: false
83
79
  type: :development
84
- name: jeweler
85
- version_requirements: &id005 !ruby/object:Gem::Requirement
80
+ version_requirements: *id004
81
+ - !ruby/object:Gem::Dependency
82
+ requirement: &id005 !ruby/object:Gem::Requirement
86
83
  none: false
87
84
  requirements:
88
85
  - - ~>
@@ -93,12 +90,12 @@ dependencies:
93
90
  - 5
94
91
  - 1
95
92
  version: 1.5.1
96
- requirement: *id005
97
- - !ruby/object:Gem::Dependency
93
+ name: jeweler
98
94
  prerelease: false
99
- type: :runtime
100
- name: rails
101
- version_requirements: &id006 !ruby/object:Gem::Requirement
95
+ type: :development
96
+ version_requirements: *id005
97
+ - !ruby/object:Gem::Dependency
98
+ requirement: &id006 !ruby/object:Gem::Requirement
102
99
  none: false
103
100
  requirements:
104
101
  - - ">="
@@ -108,12 +105,12 @@ dependencies:
108
105
  - 2
109
106
  - 0
110
107
  version: "2.0"
111
- requirement: *id006
112
- - !ruby/object:Gem::Dependency
108
+ name: rails
113
109
  prerelease: false
114
110
  type: :runtime
115
- name: i18n
116
- version_requirements: &id007 !ruby/object:Gem::Requirement
111
+ version_requirements: *id006
112
+ - !ruby/object:Gem::Dependency
113
+ requirement: &id007 !ruby/object:Gem::Requirement
117
114
  none: false
118
115
  requirements:
119
116
  - - ">"
@@ -123,8 +120,11 @@ dependencies:
123
120
  - 0
124
121
  - 0
125
122
  version: "0.0"
126
- requirement: *id007
127
- description: Automate the lookup of page meta information based on the current request. Meta information such as page titles and descriptions can be stored in a translations file rather than floating around in controllers or views.
123
+ name: i18n
124
+ prerelease: false
125
+ type: :runtime
126
+ version_requirements: *id007
127
+ description: Automate the lookup of page meta information based on the current request context. Meta information such as page titles and descriptions can be stored in a translations file rather than floating around in controllers or views.
128
128
  email: mike@mikeonrails.com
129
129
  executables: []
130
130
 
@@ -142,6 +142,7 @@ files:
142
142
  - README.rdoc
143
143
  - Rakefile
144
144
  - VERSION
145
+ - dyn_meta-0.0.3.gem
145
146
  - dyn_meta.gemspec
146
147
  - features/dyn_meta.feature
147
148
  - features/step_definitions/dyn_meta_steps.rb
@@ -184,7 +185,7 @@ rubyforge_project:
184
185
  rubygems_version: 1.3.7
185
186
  signing_key:
186
187
  specification_version: 3
187
- summary: Automate the lookup of page meta information based on the current request
188
+ summary: Automate the lookup of page meta information based on the current request context
188
189
  test_files:
189
190
  - spec/dyn_meta_spec.rb
190
191
  - spec/spec_helper.rb