link_to_action 0.2.4 → 0.2.5

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -46,7 +46,7 @@ default anyway), and it even can take advantage of cancan's abilities.
46
46
 
47
47
  This gem is especially useful when application contains many simular-looking
48
48
  links. Many global and link-specific options are exists, so this gem is flexible.
49
- And you still have link_to if you want some link to look really simple!
49
+ And you still have `link_to` if you want some link to look really simple!
50
50
 
51
51
  ## Installation
52
52
 
@@ -84,7 +84,8 @@ link_to_back # link_to :back
84
84
  ```
85
85
 
86
86
  `link_to_show` tries some methods (by default :name, :title, and :to_s) to get
87
- name for the link. Other helpers uses I18n to get link names.
87
+ name for the link. This can be changed by specifying `i18n` option. Other
88
+ helpers use I18n to get link names unless `name` option specified.
88
89
 
89
90
  ## I18n
90
91
 
@@ -100,13 +101,16 @@ en:
100
101
  helpers:
101
102
  link_to:
102
103
  new: 'New %{model}'
103
- index: '%{model}'
104
+ show: 'Show %{model}'
105
+ index: 'All %{model}'
104
106
  edit: 'Edit %{model}'
105
107
  destroy: 'Delete %{model}'
106
108
  destroy_confirm: 'Are you sure?'
107
109
  back: 'Back'
108
110
  ```
109
111
 
112
+ `%{model}` variables are not used by default for `show`, `edit`, and `destroy`.
113
+
110
114
  ## Global CSS styles, icons, and other options
111
115
 
112
116
  Default options are:
@@ -161,6 +165,7 @@ Look to `config/initializers/link_to_action.rb` for detailed description.
161
165
  :name # overwrites default name of the link
162
166
  :send # method to send to object to get name
163
167
  :raw # method to send to object to get name, output raw
168
+ :i18n # if `i18n: true` is set, I18n name is displayed
164
169
  ```
165
170
 
166
171
  ## Examples
@@ -5,17 +5,24 @@ module LinkToAction
5
5
  module Generators
6
6
  class InstallGenerator < Rails::Generators::Base
7
7
  desc "Copy LinkToAction configuration file"
8
- source_root File.expand_path('../../..', __FILE__)
8
+ source_root File.expand_path('../templates', __FILE__)
9
9
 
10
10
  def copy_initializers
11
- copy_file 'generators/link_to_action/templates/link_to_action.rb',
12
- 'config/initializers/link_to_action.rb'
11
+ copy_file 'link_to_action.rb', 'config/initializers/link_to_action.rb'
13
12
  end
14
13
 
15
14
  def copy_locale_file
16
- copy_file 'link_to_action/locale/en.yml',
15
+ copy_file '../../../link_to_action/locale/en.yml',
17
16
  'config/locales/link_to_action.en.yml'
18
17
  end
18
+
19
+ def copy_templates
20
+ # TODO: one LOC
21
+ copy_file 'edit.html.erb', 'lib/templates/erb/scaffold/edit.html.erb'
22
+ copy_file 'index.html.erb', 'lib/templates/erb/scaffold/index.html.erb'
23
+ copy_file 'new.html.erb', 'lib/templates/erb/scaffold/new.html.erb'
24
+ copy_file 'show.html.erb', 'lib/templates/erb/scaffold/show.html.erb'
25
+ end
19
26
  end
20
27
  end
21
28
  end
@@ -0,0 +1,6 @@
1
+ <h1>Editing <%= singular_table_name %></h1>
2
+
3
+ <%%= render 'form' %>
4
+
5
+ <%%= link_to_show @<%= singular_table_name %>, i18n: true %> |
6
+ <%%= link_to_back %>
@@ -0,0 +1,33 @@
1
+ <h1>Listing <%= plural_table_name %></h1>
2
+
3
+ <table>
4
+ <thead>
5
+ <tr>
6
+ <% attributes.each do |attribute| -%>
7
+ <th><%= attribute.human_name %></th>
8
+ <% end -%>
9
+ <th></th>
10
+ <th></th>
11
+ <th></th>
12
+ </tr>
13
+ </thead>
14
+
15
+ <tbody>
16
+ <%%= content_tag_for(:tr, @<%= plural_table_name %>) do |<%= singular_table_name %>| %>
17
+ <% attributes.each do |attribute| -%>
18
+ <% if attribute.name == 'name' %>
19
+ <td><%%= link_to_show <%= singular_table_name %> %></td>
20
+ <% else %>
21
+ <td><%%= <%= singular_table_name %>.<%= attribute.name %> %></td>
22
+ <% end -%>
23
+ <% end -%>
24
+ <td><%%= link_to_show <%= singular_table_name %>, i18n: true %></td>
25
+ <td><%%= link_to_edit <%= singular_table_name %> %></td>
26
+ <td><%%= link_to_destroy <%= singular_table_name %> %></td>
27
+ <%% end %>
28
+ </tbody>
29
+ </table>
30
+
31
+ <br />
32
+
33
+ <%%= link_to_new <%= class_name %> %>
@@ -14,6 +14,7 @@ LinkToAction.setup do |config|
14
14
 
15
15
  # Icons for actions
16
16
  # config.icon_new = 'plus'
17
+ # config.icon_show = ''
17
18
  # config.icon_index = '' # empty icon drops it
18
19
  # config.icon_edit = 'edit'
19
20
  # config.icon_destroy = 'trash'
@@ -42,7 +43,7 @@ LinkToAction.setup do |config|
42
43
  # config.size_class_mini = 'btn-mini'
43
44
 
44
45
  # Methods for link_to_show
45
- # config.show_methods = [ :name, :title, :to_s ]
46
+ # config.show_methods = [ :name, :to_s ]
46
47
 
47
48
  # Destroy link options
48
49
  # config.destroy_confirm = true
@@ -0,0 +1,5 @@
1
+ <h1>New <%= singular_table_name %></h1>
2
+
3
+ <%%= render 'form' %>
4
+
5
+ <%%= link_to_back %>
@@ -0,0 +1,13 @@
1
+ <p id="notice"><%%= notice %></p>
2
+
3
+ <% attributes.each do |attribute| -%>
4
+ <p>
5
+ <strong><%= attribute.human_name %>:</strong>
6
+ <%%= @<%= singular_table_name %>.<%= attribute.name %> %>
7
+ </p>
8
+
9
+ <% end -%>
10
+
11
+ <%%= link_to_edit @<%= singular_table_name %> %> |
12
+ <%%= link_to_index <%= class_name %> %> |
13
+ <%%= link_to_back %>
@@ -42,13 +42,20 @@ module LinkToAction::Helpers
42
42
  name = options.delete(:name)
43
43
  raw = options.delete(:raw)
44
44
  send = options.delete(:send)
45
- unless name
45
+ i18n = options.delete(:i18n)
46
+ unless name or i18n
46
47
  method = raw || send ||
47
48
  LinkToAction.show_methods.find { |m| object.respond_to?(m) }
48
49
  name = object.send(method)
50
+ name = raw(name) if raw
51
+ end
52
+
53
+ if i18n
54
+ options[:name] = name
55
+ link_to_action :show, object, options
56
+ else
57
+ link_to name, object, options
49
58
  end
50
- name = raw(name) if raw
51
- link_to name, object, options
52
59
  end
53
60
 
54
61
  # TODO: Find the way to move this to separate module without loosing access to Rails helpers
@@ -2,8 +2,9 @@ en:
2
2
  helpers:
3
3
  link_to:
4
4
  new: 'New %{model}'
5
+ show: 'Show'
5
6
  index: '%{model}'
6
- edit: 'Edit %{model}'
7
- destroy: 'Delete %{model}'
7
+ edit: 'Edit'
8
+ destroy: 'Delete'
8
9
  destroy_confirm: 'Are you sure?'
9
10
  back: 'Back'
@@ -1,3 +1,3 @@
1
1
  module LinkToAction
2
- VERSION = "0.2.4"
2
+ VERSION = "0.2.5"
3
3
  end
@@ -21,6 +21,9 @@ module LinkToAction
21
21
  mattr_accessor :icon_new
22
22
  @@icon_new = 'plus'
23
23
 
24
+ mattr_accessor :icon_show
25
+ @@icon_show = ''
26
+
24
27
  mattr_accessor :icon_index
25
28
  @@icon_index = ''
26
29
 
@@ -32,7 +35,7 @@ module LinkToAction
32
35
 
33
36
  mattr_accessor :icon_back
34
37
  @@icon_back = 'undo'
35
-
38
+
36
39
  mattr_accessor :use_classes
37
40
  @@use_classes = false
38
41
 
@@ -70,7 +73,7 @@ module LinkToAction
70
73
  @@size_class_mini = 'btn-mini'
71
74
 
72
75
  mattr_accessor :show_methods
73
- @@show_methods = [ :name, :title, :to_s ]
76
+ @@show_methods = [ :name, :to_s ]
74
77
 
75
78
  mattr_accessor :destroy_confirm
76
79
  @@destroy_confirm = true
@@ -7,6 +7,7 @@ class DefaultValuesTest < ActiveSupport::TestCase
7
7
  icons_size: 'large',
8
8
  icons_place_left: true,
9
9
  icon_new: 'plus',
10
+ icon_show: '',
10
11
  icon_index: '',
11
12
  icon_edit: 'edit',
12
13
  icon_destroy: 'trash',
@@ -23,7 +24,7 @@ class DefaultValuesTest < ActiveSupport::TestCase
23
24
  size_class_large: 'btn-large',
24
25
  size_class_small: 'btn-small',
25
26
  size_class_mini: 'btn-mini',
26
- show_methods: [ :name, :title, :to_s ],
27
+ show_methods: [ :name, :to_s ],
27
28
  destroy_confirm: true,
28
29
  destroy_skip_pjax: false
29
30
  }
@@ -1 +1,25 @@
1
1
  Connecting to database specified by database.yml
2
+ Connecting to database specified by database.yml
3
+ Connecting to database specified by database.yml
4
+  (0.1ms) select sqlite_version(*)
5
+  (4.3ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)
6
+  (0.0ms) PRAGMA index_list("schema_migrations")
7
+  (1.5ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
8
+  (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" 
9
+ Migrating to CreateUsers (20121003103906)
10
+  (0.0ms) begin transaction
11
+  (0.7ms) CREATE TABLE "users" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255), "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL) 
12
+  (0.3ms) INSERT INTO "schema_migrations" ("version") VALUES ('20121003103906')
13
+  (1.6ms) commit transaction
14
+ Migrating to CreateComments (20121003103958)
15
+  (0.1ms) begin transaction
16
+  (0.3ms) CREATE TABLE "comments" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255), "user_id" integer, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL) 
17
+  (0.0ms) PRAGMA index_list("comments")
18
+  (0.1ms) CREATE INDEX "index_comments_on_user_id" ON "comments" ("user_id")
19
+  (0.1ms) INSERT INTO "schema_migrations" ("version") VALUES ('20121003103958')
20
+  (1.4ms) commit transaction
21
+  (0.2ms) select sqlite_version(*)
22
+  (0.1ms) SELECT "schema_migrations"."version" FROM "schema_migrations" 
23
+  (0.0ms) PRAGMA index_list("comments")
24
+  (0.0ms) PRAGMA index_info('index_comments_on_user_id')
25
+  (0.0ms) PRAGMA index_list("users")