simple_resource 0.2.0 → 0.3.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.
- data/CHANGELOG.md +5 -0
- data/app/controllers/simple_resource/base_controller.rb +5 -1
- data/app/helpers/simple_resource/base_helper.rb +22 -3
- data/lib/simple_resource/configuration.rb +40 -0
- data/lib/simple_resource/version.rb +1 -1
- data/lib/simple_resource.rb +2 -0
- data/spec/helpers/base_helper_spec.rb +21 -21
- metadata +4 -3
data/CHANGELOG.md
CHANGED
@@ -4,7 +4,11 @@ module SimpleResource
|
|
4
4
|
load_and_authorize_resource
|
5
5
|
|
6
6
|
rescue_from CanCan::AccessDenied do |exception|
|
7
|
-
|
7
|
+
if !current_user && respond_to?(:new_user_session_url)
|
8
|
+
redirect_to new_user_session_url, alert: exception.message
|
9
|
+
else
|
10
|
+
redirect_to root_url, alert: exception.message
|
11
|
+
end
|
8
12
|
end
|
9
13
|
end
|
10
14
|
|
@@ -26,7 +26,7 @@ module SimpleResource
|
|
26
26
|
end
|
27
27
|
|
28
28
|
def new_resource_link
|
29
|
-
link_to(new_resource_link_title, new_resource_path)
|
29
|
+
link_to(icon_for(:new) + new_resource_link_title, new_resource_path, class: button_classes_for(:new))
|
30
30
|
end
|
31
31
|
|
32
32
|
def edit_resource_title
|
@@ -67,10 +67,10 @@ module SimpleResource
|
|
67
67
|
def link_to_action(action_name, title, path)
|
68
68
|
action_name = action_name.to_sym
|
69
69
|
if action_name == :delete
|
70
|
-
link_to(t("simple_resource.#{action_name.to_s}", default: title), path,
|
70
|
+
link_to(icon_for(action_name) + t("simple_resource.#{action_name.to_s}", default: title), path, class: button_classes_for(action_name, true),
|
71
71
|
method: :delete, confirm: t("simple_resource.messages.delete_confirmation"))
|
72
72
|
else
|
73
|
-
link_to(t("simple_resource.#{action_name.to_s}", default: title), path)
|
73
|
+
link_to(icon_for(action_name) + t("simple_resource.#{action_name.to_s}", default: title), path, class: button_classes_for(action_name, true))
|
74
74
|
end
|
75
75
|
end
|
76
76
|
|
@@ -82,6 +82,25 @@ module SimpleResource
|
|
82
82
|
html.join("\n").html_safe
|
83
83
|
end
|
84
84
|
|
85
|
+
def icon_for(action)
|
86
|
+
return "" if !SimpleResource::Configuration.respond_to?("icon_classes_for_#{action.to_s}")
|
87
|
+
icon_classes = Array.new
|
88
|
+
icon_classes << SimpleResource::Configuration.icon_classes
|
89
|
+
icon_classes << SimpleResource::Configuration.send("icon_classes_for_#{action.to_s}")
|
90
|
+
content_tag(:i, "", class: icon_classes.join(" ").strip).html_safe + " "
|
91
|
+
end
|
92
|
+
|
93
|
+
def button_classes_for(action, mini = false)
|
94
|
+
button_classes = Array.new
|
95
|
+
button_classes << SimpleResource::Configuration.button_classes
|
96
|
+
button_classes << SimpleResource::Configuration.mini_button_classes if mini
|
97
|
+
button_classes << (
|
98
|
+
SimpleResource::Configuration.respond_to?("button_classes_for_#{action.to_s}") ?
|
99
|
+
SimpleResource::Configuration.send("button_classes_for_#{action.to_s}") :
|
100
|
+
"")
|
101
|
+
button_classes.join(" ").strip
|
102
|
+
end
|
103
|
+
|
85
104
|
def controller_namespaces
|
86
105
|
namespaces = controller_path.split("/")
|
87
106
|
namespaces.pop
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module SimpleResource
|
2
|
+
module Configuration
|
3
|
+
mattr_accessor :button_classes
|
4
|
+
self.button_classes = "btn"
|
5
|
+
|
6
|
+
mattr_accessor :mini_button_classes
|
7
|
+
self.mini_button_classes = "btn-mini"
|
8
|
+
|
9
|
+
mattr_accessor :button_classes_for_new
|
10
|
+
self.button_classes_for_new = ""
|
11
|
+
|
12
|
+
mattr_accessor :button_classes_for_show
|
13
|
+
self.button_classes_for_show = ""
|
14
|
+
|
15
|
+
mattr_accessor :button_classes_for_edit
|
16
|
+
self.button_classes_for_edit = ""
|
17
|
+
|
18
|
+
mattr_accessor :button_classes_for_delete
|
19
|
+
self.button_classes_for_delete = "btn-danger"
|
20
|
+
|
21
|
+
mattr_accessor :icon_classes
|
22
|
+
self.icon_classes = ""
|
23
|
+
|
24
|
+
mattr_accessor :icon_classes_for_new
|
25
|
+
self.icon_classes_for_new = "icon-plus-sign"
|
26
|
+
|
27
|
+
mattr_accessor :icon_classes_for_show
|
28
|
+
self.icon_classes_for_show = "icon-zoom-in"
|
29
|
+
|
30
|
+
mattr_accessor :icon_classes_for_edit
|
31
|
+
self.icon_classes_for_edit = "icon-edit"
|
32
|
+
|
33
|
+
mattr_accessor :icon_classes_for_delete
|
34
|
+
self.icon_classes_for_delete = "icon-trash icon-white"
|
35
|
+
|
36
|
+
def configure
|
37
|
+
yield self if block_given?
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
data/lib/simple_resource.rb
CHANGED
@@ -74,12 +74,12 @@ describe SimpleResource::BaseHelper do
|
|
74
74
|
|
75
75
|
describe "#new_resource_link" do
|
76
76
|
it "returns default version of new resource link" do
|
77
|
-
helper.new_resource_link.should eq('<a href="/languages/new">New Language</a>')
|
77
|
+
helper.new_resource_link.should eq('<a href="/languages/new" class="btn"><i class="icon-plus-sign"></i> New Language</a>')
|
78
78
|
end
|
79
79
|
|
80
80
|
it "returns translated version of new resource link" do
|
81
81
|
set_locale
|
82
|
-
helper.new_resource_link.should eq('<a href="/languages/new">Uusi Kieli</a>')
|
82
|
+
helper.new_resource_link.should eq('<a href="/languages/new" class="btn"><i class="icon-plus-sign"></i> Uusi Kieli</a>')
|
83
83
|
reset_locale
|
84
84
|
end
|
85
85
|
end
|
@@ -176,43 +176,43 @@ describe SimpleResource::BaseHelper do
|
|
176
176
|
describe "#link_to_action" do
|
177
177
|
context "with action :show" do
|
178
178
|
it "returns show link" do
|
179
|
-
helper.link_to_action(:show, "Show", "/languages/1").should eq('<a href="/languages/1">Show</a>')
|
179
|
+
helper.link_to_action(:show, "Show", "/languages/1").should eq('<a href="/languages/1" class="btn btn-mini"><i class="icon-zoom-in"></i> Show</a>')
|
180
180
|
end
|
181
181
|
|
182
182
|
it "returns translated show link" do
|
183
183
|
set_locale
|
184
|
-
helper.link_to_action(:show, "Näytä", "/languages/1").should eq('<a href="/languages/1">Näytä</a>')
|
184
|
+
helper.link_to_action(:show, "Näytä", "/languages/1").should eq('<a href="/languages/1" class="btn btn-mini"><i class="icon-zoom-in"></i> Näytä</a>')
|
185
185
|
reset_locale
|
186
186
|
end
|
187
187
|
end
|
188
188
|
|
189
189
|
context "with action :edit" do
|
190
190
|
it "returns edit link" do
|
191
|
-
helper.link_to_action(:edit, "Edit", "/languages/1/edit").should eq('<a href="/languages/1/edit">Edit</a>')
|
191
|
+
helper.link_to_action(:edit, "Edit", "/languages/1/edit").should eq('<a href="/languages/1/edit" class="btn btn-mini"><i class="icon-edit"></i> Edit</a>')
|
192
192
|
end
|
193
193
|
|
194
194
|
it "returns translated edit link" do
|
195
195
|
set_locale
|
196
|
-
helper.link_to_action(:edit, "Muokkaa", "/languages/1/edit").should eq('<a href="/languages/1/edit">Muokkaa</a>')
|
196
|
+
helper.link_to_action(:edit, "Muokkaa", "/languages/1/edit").should eq('<a href="/languages/1/edit" class="btn btn-mini"><i class="icon-edit"></i> Muokkaa</a>')
|
197
197
|
reset_locale
|
198
198
|
end
|
199
199
|
end
|
200
200
|
|
201
201
|
context "with action :delete" do
|
202
202
|
it "returns delete link" do
|
203
|
-
helper.link_to_action(:delete, "Delete", "/languages/1").should eq('<a href="/languages/1" data-confirm="Are you sure?" data-method="delete" rel="nofollow">Delete</a>')
|
203
|
+
helper.link_to_action(:delete, "Delete", "/languages/1").should eq('<a href="/languages/1" class="btn btn-mini btn-danger" data-confirm="Are you sure?" data-method="delete" rel="nofollow"><i class="icon-trash icon-white"></i> Delete</a>')
|
204
204
|
end
|
205
205
|
|
206
206
|
it "returns translated delete link" do
|
207
207
|
set_locale
|
208
|
-
helper.link_to_action(:delete, "Poista", "/languages/1").should eq('<a href="/languages/1" data-confirm="Oletko varma?" data-method="delete" rel="nofollow">Poista</a>')
|
208
|
+
helper.link_to_action(:delete, "Poista", "/languages/1").should eq('<a href="/languages/1" class="btn btn-mini btn-danger" data-confirm="Oletko varma?" data-method="delete" rel="nofollow"><i class="icon-trash icon-white"></i> Poista</a>')
|
209
209
|
reset_locale
|
210
210
|
end
|
211
211
|
end
|
212
212
|
|
213
213
|
context "with custom action" do
|
214
214
|
it "returns link to custom action" do
|
215
|
-
helper.link_to_action(:children, "Children", "/languages/1/children").should eq('<a href="/languages/1/children">Children</a>')
|
215
|
+
helper.link_to_action(:children, "Children", "/languages/1/children").should eq('<a href="/languages/1/children" class="btn btn-mini">Children</a>')
|
216
216
|
end
|
217
217
|
end
|
218
218
|
end
|
@@ -222,10 +222,10 @@ describe SimpleResource::BaseHelper do
|
|
222
222
|
|
223
223
|
it "returns default actions for given resource" do
|
224
224
|
collection.each do |resource|
|
225
|
-
expected = %Q(<a href="/languages/#{resource.id}">Show</a>\n)
|
226
|
-
expected += %Q(<a href="/languages/#{resource.id}/edit">Edit</a>\n)
|
227
|
-
expected += %Q(<a href="/languages/#{resource.id}" data-confirm="Are you sure?")
|
228
|
-
expected += %Q( data-method="delete" rel="nofollow">Delete</a>)
|
225
|
+
expected = %Q(<a href="/languages/#{resource.id}" class="btn btn-mini"><i class="icon-zoom-in"></i> Show</a>\n)
|
226
|
+
expected += %Q(<a href="/languages/#{resource.id}/edit" class="btn btn-mini"><i class="icon-edit"></i> Edit</a>\n)
|
227
|
+
expected += %Q(<a href="/languages/#{resource.id}" class="btn btn-mini btn-danger" data-confirm="Are you sure?")
|
228
|
+
expected += %Q( data-method="delete" rel="nofollow"><i class="icon-trash icon-white"></i> Delete</a>)
|
229
229
|
helper.default_actions_for(resource).should eq(expected)
|
230
230
|
end
|
231
231
|
end
|
@@ -315,10 +315,10 @@ describe SimpleResource::BaseHelper do
|
|
315
315
|
|
316
316
|
it "returns actions for given resource in HTML" do
|
317
317
|
collection.each do |resource|
|
318
|
-
expected = %Q(<a href="/languages/#{resource.id}">Show</a>\n)
|
319
|
-
expected += %Q(<a href="/languages/#{resource.id}/edit">Edit</a>\n)
|
320
|
-
expected += %Q(<a href="/languages/#{resource.id}" data-confirm="Are you sure?")
|
321
|
-
expected += %Q( data-method="delete" rel="nofollow">Delete</a>\n)
|
318
|
+
expected = %Q(<a href="/languages/#{resource.id}" class="btn btn-mini"><i class="icon-zoom-in"></i> Show</a>\n)
|
319
|
+
expected += %Q(<a href="/languages/#{resource.id}/edit" class="btn btn-mini"><i class="icon-edit"></i> Edit</a>\n)
|
320
|
+
expected += %Q(<a href="/languages/#{resource.id}" class="btn btn-mini btn-danger" data-confirm="Are you sure?")
|
321
|
+
expected += %Q( data-method="delete" rel="nofollow"><i class="icon-trash icon-white"></i> Delete</a>\n)
|
322
322
|
helper.render_actions_for(resource).should eq(expected)
|
323
323
|
end
|
324
324
|
end
|
@@ -337,10 +337,10 @@ describe SimpleResource::BaseHelper do
|
|
337
337
|
|
338
338
|
collection.each do |resource|
|
339
339
|
expected += %Q(<tr><td>#{resource.name}</td><td class="actions">)
|
340
|
-
expected += %Q(<a href="/languages/#{resource.id}">Show</a>)
|
341
|
-
expected += %Q(<a href="/languages/#{resource.id}/edit">Edit</a>)
|
342
|
-
expected += %Q(<a href="/languages/#{resource.id}" data-confirm="Are you sure?")
|
343
|
-
expected += %Q( data-method="delete" rel="nofollow">Delete</a>)
|
340
|
+
expected += %Q(<a href="/languages/#{resource.id}" class="btn btn-mini"><i class="icon-zoom-in"></i> Show</a>)
|
341
|
+
expected += %Q(<a href="/languages/#{resource.id}/edit" class="btn btn-mini"><i class="icon-edit"></i> Edit</a>)
|
342
|
+
expected += %Q(<a href="/languages/#{resource.id}" class="btn btn-mini btn-danger" data-confirm="Are you sure?")
|
343
|
+
expected += %Q( data-method="delete" rel="nofollow"><i class="icon-trash icon-white"></i> Delete</a>)
|
344
344
|
expected += %Q(</td></tr>)
|
345
345
|
end
|
346
346
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simple_resource
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -249,6 +249,7 @@ files:
|
|
249
249
|
- app/views/simple_resource/builders/_simple_form.html.erb
|
250
250
|
- config/locales/en.yml
|
251
251
|
- lib/simple_resource.rb
|
252
|
+
- lib/simple_resource/configuration.rb
|
252
253
|
- lib/simple_resource/engine.rb
|
253
254
|
- lib/simple_resource/version.rb
|
254
255
|
- script/rails
|
@@ -316,7 +317,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
316
317
|
version: '0'
|
317
318
|
segments:
|
318
319
|
- 0
|
319
|
-
hash:
|
320
|
+
hash: 2164673244938550078
|
320
321
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
321
322
|
none: false
|
322
323
|
requirements:
|
@@ -325,7 +326,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
325
326
|
version: '0'
|
326
327
|
segments:
|
327
328
|
- 0
|
328
|
-
hash:
|
329
|
+
hash: 2164673244938550078
|
329
330
|
requirements: []
|
330
331
|
rubyforge_project:
|
331
332
|
rubygems_version: 1.8.24
|