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 CHANGED
@@ -1,5 +1,10 @@
1
1
  # Changelog
2
2
 
3
+ 0.3.0 (January 15, 2013)
4
+
5
+ * Devise support
6
+ * Twitter Bootstrap support
7
+
3
8
  0.2.0 (January 15, 2013)
4
9
 
5
10
  * CanCan support
@@ -4,7 +4,11 @@ module SimpleResource
4
4
  load_and_authorize_resource
5
5
 
6
6
  rescue_from CanCan::AccessDenied do |exception|
7
- redirect_to root_url, alert: exception.message
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
@@ -1,3 +1,3 @@
1
1
  module SimpleResource
2
- VERSION = "0.2.0"
2
+ VERSION = "0.3.0"
3
3
  end
@@ -1,6 +1,8 @@
1
1
  require "inherited_resources"
2
+ require "simple_resource/configuration"
2
3
  require "simple_resource/engine"
3
4
  require "simple_resource/version"
4
5
 
5
6
  module SimpleResource
7
+ include Configuration
6
8
  end
@@ -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.2.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: 1479618243370591090
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: 1479618243370591090
329
+ hash: 2164673244938550078
329
330
  requirements: []
330
331
  rubyforge_project:
331
332
  rubygems_version: 1.8.24