i18n_rails_helpers 0.8.2 → 0.9.0

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.
@@ -0,0 +1,71 @@
1
+ module ContextualLinkHelpers
2
+ # CRUD helpers
3
+ def icon_link_to(action, url, options = {})
4
+ options.merge!(:class => "icon icon-#{action}")
5
+
6
+ link_to(t_action(action), url, options)
7
+ end
8
+
9
+ def contextual_link_to(action, resource_or_model = nil)
10
+ # Handle both symbols and strings
11
+ action = action.to_s
12
+
13
+ # Resource and Model setup
14
+ # Use controller name to guess resource or model if not specified
15
+ case action
16
+ when 'new', 'index'
17
+ model = resource_or_model || controller_name.singularize.camelize.constantize
18
+ when 'show', 'edit', 'delete'
19
+ resource = resource_or_model || instance_variable_get("@#{controller_name.singularize}")
20
+ model = resource.class
21
+ end
22
+ model_name = model.to_s.underscore
23
+
24
+ # No link if CanCan is used and current user isn't authorized to call this action
25
+ return if respond_to?(:can?) and ! can?(action.to_sym, model)
26
+
27
+ # Link generation
28
+ case action
29
+ when 'new'
30
+ return icon_link_to(action, send("new_#{model_name}_path"), :remote => true)
31
+ when 'show'
32
+ return icon_link_to(action, send("#{model_name}_path", resource))
33
+ when 'edit'
34
+ return icon_link_to(action, send("edit_#{model_name}_path", resource))
35
+ when 'delete'
36
+ return icon_link_to(action, send("#{model_name}_path", resource), :confirm => t_confirm_delete(resource), :method => :delete)
37
+ when 'index'
38
+ return icon_link_to(action, send("#{model_name.pluralize}_path"))
39
+ end
40
+ end
41
+
42
+ def contextual_links_for(action = nil, resource_or_model = nil)
43
+ # Use current action if not specified
44
+ action ||= action_name
45
+
46
+ # Handle both symbols and strings
47
+ action = action.to_s
48
+
49
+ actions = []
50
+ case action
51
+ when 'new', 'create'
52
+ actions << 'index'
53
+ when 'show'
54
+ actions += ['edit', 'delete', 'index']
55
+ when 'edit', 'update'
56
+ actions += ['show', 'delete', 'index']
57
+ when 'index'
58
+ actions << 'new'
59
+ end
60
+
61
+ links = actions.map{|link_for| contextual_link_to(link_for, resource_or_model)}
62
+
63
+ return links.join("\n").html_safe
64
+ end
65
+
66
+ def contextual_links(action = nil, resource_or_model = nil)
67
+ content_tag('div', :class => 'contextual') do
68
+ contextual_links_for(action, resource_or_model)
69
+ end
70
+ end
71
+ end
@@ -1,10 +1,12 @@
1
1
  require 'i18n_rails_helpers'
2
+ require 'contextual_link_helpers'
2
3
  require 'rails'
3
4
 
4
5
  module I18nRailsHelpers
5
6
  class Railtie < Rails::Engine
6
7
  initializer :after_initialize do
7
8
  ActionController::Base.helper I18nRailsHelpers
9
+ ActionController::Base.helper ContextualLinkHelpers
8
10
  end
9
11
  end
10
12
  end
metadata CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
4
4
  prerelease: false
5
5
  segments:
6
6
  - 0
7
- - 8
8
- - 2
9
- version: 0.8.2
7
+ - 9
8
+ - 0
9
+ version: 0.9.0
10
10
  platform: ruby
11
11
  authors:
12
12
  - "Simon H\xC3\xBCrlimann"
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-09-23 00:00:00 +02:00
17
+ date: 2010-12-14 00:00:00 +01:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -56,6 +56,7 @@ files:
56
56
  - config/locales/de-CH.yml
57
57
  - config/locales/de.yml
58
58
  - config/locales/en.yml
59
+ - lib/contextual_link_helpers.rb
59
60
  - lib/i18n_rails_helpers.rb
60
61
  - lib/i18n_rails_helpers/railtie.rb
61
62
  - rails/init.rb
@@ -92,5 +93,5 @@ signing_key:
92
93
  specification_version: 3
93
94
  summary: Rails i18n view helpers for things like crud actions, models and and attributes.
94
95
  test_files:
95
- - test/test_helper.rb
96
96
  - test/i18n_rails_helpers_test.rb
97
+ - test/test_helper.rb