simple_resource 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.md +6 -0
- data/{DEVELOPER_GUIDE.md → CONTRIBUTING.md} +6 -6
- data/README.md +39 -0
- data/app/controllers/simple_resource/base_controller.rb +16 -0
- data/app/helpers/simple_resource/base_helper.rb +13 -11
- data/app/views/simple_resource/base/index.html.erb +6 -1
- data/app/views/simple_resource/builders/_formtastic.html.erb +1 -1
- data/config/locales/en.yml +15 -0
- data/lib/simple_resource/version.rb +1 -1
- data/simple_resource.gemspec +2 -2
- data/spec/dummy/app/controllers/backend/languages_controller.rb +3 -1
- data/spec/dummy/app/models/language.rb +2 -0
- data/spec/dummy/app/views/layouts/application.html.erb +3 -0
- data/spec/dummy/config/application.rb +1 -1
- data/spec/dummy/config/locales/fi.yml +11 -6
- data/spec/features/languages_spec.rb +169 -0
- data/spec/helpers/base_helper_spec.rb +7 -7
- data/spec/spec_helper.rb +1 -0
- metadata +18 -13
- data/Guardfile +0 -30
- data/spec/integration/languages_spec.rb +0 -39
data/CHANGELOG.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
#
|
1
|
+
# Contributing to SimpleResource
|
2
2
|
|
3
3
|
## Forking the project
|
4
4
|
|
@@ -22,11 +22,11 @@ And then execute:
|
|
22
22
|
|
23
23
|
## Running tests
|
24
24
|
|
25
|
-
|
26
|
-
|
27
|
-
$
|
28
|
-
|
29
|
-
|
25
|
+
$ cd spec/dummy
|
26
|
+
$ rake db:setup
|
27
|
+
$ rake db:test:clone
|
28
|
+
$ cd ../..
|
29
|
+
$ rake spec
|
30
30
|
|
31
31
|
## Adding a new feature
|
32
32
|
|
data/README.md
CHANGED
@@ -12,6 +12,7 @@ SimpleResource speeds up development of standard Rails applications by integrati
|
|
12
12
|
* Support for external form builders
|
13
13
|
* [Formtastic](https://github.com/justinfrench/formtastic)
|
14
14
|
* [SimpleForm](https://github.com/plataformatec/simple_form)
|
15
|
+
* Support for CanCan
|
15
16
|
|
16
17
|
## Requirements
|
17
18
|
|
@@ -28,6 +29,44 @@ And then execute:
|
|
28
29
|
|
29
30
|
$ bundle
|
30
31
|
|
32
|
+
## Usage
|
33
|
+
|
34
|
+
Inherit your resource controllers from SimpleResource::BaseController. For example:
|
35
|
+
|
36
|
+
class ProjectsController < SimpleResource::BaseController
|
37
|
+
end
|
38
|
+
|
39
|
+
That's it. Your resource now uses Formtastic as a form builder, views from SimpleResource and restful actions from Inherited Resources.
|
40
|
+
|
41
|
+
### Configuring form builder
|
42
|
+
|
43
|
+
You can configure which form builders you want to use. Configuration can be done application-wide or per resource.
|
44
|
+
|
45
|
+
For example, if you like to use simple_form by default for all your resources, configure the builder in the app/views/simple_resource/_form.html.erb:
|
46
|
+
|
47
|
+
<%= render_form "simple_form" %>
|
48
|
+
|
49
|
+
If you like to use simple_form only for products resource, put the above line into the app/views/products/_form.html.erb.
|
50
|
+
|
51
|
+
### Creating own form builder
|
52
|
+
|
53
|
+
Put your form builder into the app/views/simple_resource/builders/_my_builder.html.erb:
|
54
|
+
|
55
|
+
<form>
|
56
|
+
<% fields.each do |field| %>
|
57
|
+
<%= input_field_tag(field) %>
|
58
|
+
<% end %>
|
59
|
+
<%= submit_tag "Submit" %>
|
60
|
+
</form>
|
61
|
+
|
62
|
+
Then use it (see section "Configuring form builder"):
|
63
|
+
|
64
|
+
<%= render_form "my_builder" %>
|
65
|
+
|
66
|
+
### Overriding views
|
67
|
+
|
68
|
+
You may override SimpleResource views application-wide or per resource.
|
69
|
+
|
31
70
|
## Support
|
32
71
|
|
33
72
|
If you have any questions or issues with SimpleResource, or if you like to report a bug, please create an [issue on GitHub](https://github.com/jarijokinen/simple_resource/issues).
|
@@ -1,6 +1,22 @@
|
|
1
1
|
module SimpleResource
|
2
2
|
class BaseController < ::ApplicationController
|
3
|
+
if defined?(CanCan)
|
4
|
+
load_and_authorize_resource
|
5
|
+
|
6
|
+
rescue_from CanCan::AccessDenied do |exception|
|
7
|
+
redirect_to root_url, alert: exception.message
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
3
11
|
inherit_resources
|
4
12
|
defaults route_prefix: ""
|
13
|
+
|
14
|
+
def create
|
15
|
+
create! { collection_url }
|
16
|
+
end
|
17
|
+
|
18
|
+
def update
|
19
|
+
update! { collection_url }
|
20
|
+
end
|
5
21
|
end
|
6
22
|
end
|
@@ -13,22 +13,24 @@ module SimpleResource
|
|
13
13
|
end
|
14
14
|
|
15
15
|
def collection_title
|
16
|
-
|
16
|
+
t("activerecord.models.#{controller_name.singularize}.other",
|
17
17
|
default: controller_name.humanize)
|
18
18
|
end
|
19
19
|
|
20
20
|
def new_resource_title
|
21
|
-
|
22
|
-
|
21
|
+
t("simple_resource.titles.new_resource", resource_name: resource_human_name)
|
22
|
+
end
|
23
|
+
|
24
|
+
def new_resource_link_title
|
25
|
+
t("simple_resource.links.new_resource", resource_name: resource_human_name)
|
23
26
|
end
|
24
27
|
|
25
28
|
def new_resource_link
|
26
|
-
link_to(
|
29
|
+
link_to(new_resource_link_title, new_resource_path)
|
27
30
|
end
|
28
31
|
|
29
32
|
def edit_resource_title
|
30
|
-
|
31
|
-
default: "Edit #{resource_human_name}")
|
33
|
+
t("simple_resource.titles.edit_resource", resource_name: resource_human_name)
|
32
34
|
end
|
33
35
|
|
34
36
|
def resource_attributes
|
@@ -49,7 +51,7 @@ module SimpleResource
|
|
49
51
|
|
50
52
|
def attribute_human_name(attribute_name)
|
51
53
|
attribute_name = attribute_name.to_s
|
52
|
-
|
54
|
+
t("activerecord.attributes.#{controller_name.singularize}.#{attribute_name}",
|
53
55
|
default: attribute_name.humanize)
|
54
56
|
end
|
55
57
|
|
@@ -66,7 +68,7 @@ module SimpleResource
|
|
66
68
|
action_name = action_name.to_sym
|
67
69
|
if action_name == :delete
|
68
70
|
link_to(t("simple_resource.#{action_name.to_s}", default: title), path,
|
69
|
-
method: :delete, confirm: t("simple_resource.delete_confirmation"
|
71
|
+
method: :delete, confirm: t("simple_resource.messages.delete_confirmation"))
|
70
72
|
else
|
71
73
|
link_to(t("simple_resource.#{action_name.to_s}", default: title), path)
|
72
74
|
end
|
@@ -74,9 +76,9 @@ module SimpleResource
|
|
74
76
|
|
75
77
|
def default_actions_for(resource)
|
76
78
|
html = Array.new
|
77
|
-
html << link_to_action(:show, "
|
78
|
-
html << link_to_action(:edit, "
|
79
|
-
html << link_to_action(:delete, "
|
79
|
+
html << link_to_action(:show, t("simple_resource.links.show"), resource_path(resource))
|
80
|
+
html << link_to_action(:edit, t("simple_resource.links.edit"), edit_resource_path(resource))
|
81
|
+
html << link_to_action(:delete, t("simple_resource.links.delete"), resource_path(resource))
|
80
82
|
html.join("\n").html_safe
|
81
83
|
end
|
82
84
|
|
@@ -2,6 +2,6 @@
|
|
2
2
|
<%= f.inputs(*(fields)) %>
|
3
3
|
<%= f.actions do %>
|
4
4
|
<%= f.action :submit %>
|
5
|
-
<%= f.action :cancel, label: t(
|
5
|
+
<%= f.action :cancel, label: t("simple_resource.buttons.cancel"), url: collection_path %>
|
6
6
|
<% end %>
|
7
7
|
<% end %>
|
@@ -0,0 +1,15 @@
|
|
1
|
+
en:
|
2
|
+
simple_resource:
|
3
|
+
buttons:
|
4
|
+
cancel: "Cancel"
|
5
|
+
links:
|
6
|
+
new_resource: "New %{resource_name}"
|
7
|
+
edit_resource: "Edit %{resource_name}"
|
8
|
+
show: "Show"
|
9
|
+
edit: "Edit"
|
10
|
+
delete: "Delete"
|
11
|
+
messages:
|
12
|
+
delete_confirmation: "Are you sure?"
|
13
|
+
titles:
|
14
|
+
new_resource: "New %{resource_name}"
|
15
|
+
edit_resource: "Edit %{resource_name}"
|
data/simple_resource.gemspec
CHANGED
@@ -16,10 +16,10 @@ Gem::Specification.new do |gem|
|
|
16
16
|
gem.test_files = gem.files.grep(%r{^spec/})
|
17
17
|
gem.require_paths = ["lib"]
|
18
18
|
|
19
|
-
gem.add_dependency "rails", "~> 3.2.
|
19
|
+
gem.add_dependency "rails", "~> 3.2.11"
|
20
20
|
gem.add_dependency "inherited_resources", "~> 1.3.1"
|
21
21
|
|
22
|
-
gem.add_development_dependency "capybara"
|
22
|
+
gem.add_development_dependency "capybara", "1.1.4"
|
23
23
|
gem.add_development_dependency "database_cleaner"
|
24
24
|
gem.add_development_dependency "factory_girl_rails"
|
25
25
|
gem.add_development_dependency "forgery"
|
@@ -33,7 +33,7 @@ module Dummy
|
|
33
33
|
|
34
34
|
# The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
|
35
35
|
# config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
|
36
|
-
# config.i18n.default_locale = :
|
36
|
+
# config.i18n.default_locale = :fi
|
37
37
|
|
38
38
|
# Configure the default encoding used in templates for Ruby 1.9.
|
39
39
|
config.encoding = "utf-8"
|
@@ -8,9 +8,14 @@ fi:
|
|
8
8
|
language:
|
9
9
|
name: "Nimi"
|
10
10
|
simple_resource:
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
11
|
+
links:
|
12
|
+
new_resource: "Uusi %{resource_name}"
|
13
|
+
edit_resource: "Muokkaa %{resource_name}"
|
14
|
+
show: "Näytä"
|
15
|
+
edit: "Muokkaa"
|
16
|
+
delete: "Poista"
|
17
|
+
messages:
|
18
|
+
delete_confirmation: "Oletko varma?"
|
19
|
+
titles:
|
20
|
+
new_resource: "Uusi %{resource_name}"
|
21
|
+
edit_resource: "Muokkaa %{resource_name}"
|
@@ -0,0 +1,169 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe "Languages resource" do
|
4
|
+
let!(:collection) { FactoryGirl.create_list(:language, 10) }
|
5
|
+
|
6
|
+
before :each do
|
7
|
+
visit "/languages"
|
8
|
+
end
|
9
|
+
|
10
|
+
describe "index" do
|
11
|
+
it "has a correct title" do
|
12
|
+
page.html.should have_xpath "//title", text: "Languages | Dummy"
|
13
|
+
end
|
14
|
+
|
15
|
+
it "has a correct heading" do
|
16
|
+
page.should have_css "h1", text: "Languages"
|
17
|
+
end
|
18
|
+
|
19
|
+
it "lists all languages" do
|
20
|
+
within "table" do
|
21
|
+
within "thead" do
|
22
|
+
page.should have_css "th", text: "Name"
|
23
|
+
end
|
24
|
+
within "tbody" do
|
25
|
+
collection.each do |resource|
|
26
|
+
page.should have_css "td", text: resource.name
|
27
|
+
page.should have_link "Show", href: "/languages/#{resource.id}"
|
28
|
+
page.should have_link "Edit", href: "/languages/#{resource.id}/edit"
|
29
|
+
page.should have_link "Delete", href: "/languages/#{resource.id}"
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
it "has a link to create a new language" do
|
36
|
+
page.should have_link "New Language", href: "/languages/new"
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
describe "creating a new language" do
|
41
|
+
let(:resource) { FactoryGirl.build(:language) }
|
42
|
+
|
43
|
+
before :each do
|
44
|
+
click_link "New Language"
|
45
|
+
end
|
46
|
+
|
47
|
+
it "has a correct title" do
|
48
|
+
page.html.should have_xpath "//title", text: "New Language | Dummy"
|
49
|
+
end
|
50
|
+
|
51
|
+
it "has a correct heading" do
|
52
|
+
page.should have_css "h1", text: "New Language"
|
53
|
+
end
|
54
|
+
|
55
|
+
it "has a name field" do
|
56
|
+
page.should have_field "Name"
|
57
|
+
end
|
58
|
+
|
59
|
+
it "has a create language button" do
|
60
|
+
page.should have_button "Create Language"
|
61
|
+
end
|
62
|
+
|
63
|
+
it "has a cancel link" do
|
64
|
+
page.should have_link "Cancel", href: "/languages"
|
65
|
+
end
|
66
|
+
|
67
|
+
context "with correct values" do
|
68
|
+
before :each do
|
69
|
+
fill_in "Name", with: resource.name
|
70
|
+
click_button "Create Language"
|
71
|
+
end
|
72
|
+
|
73
|
+
it "redirects to index" do
|
74
|
+
page.current_path.should == "/languages"
|
75
|
+
end
|
76
|
+
|
77
|
+
it "displays success message" do
|
78
|
+
page.should have_content "Language was successfully created"
|
79
|
+
end
|
80
|
+
|
81
|
+
it "lists the new resource" do
|
82
|
+
page.should have_content resource.name
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
context "without a required field" do
|
87
|
+
before :each do
|
88
|
+
click_button "Create Language"
|
89
|
+
end
|
90
|
+
|
91
|
+
it "stays on the same page" do
|
92
|
+
page.should have_css "h1", text: "New Language"
|
93
|
+
page.should have_field "Name"
|
94
|
+
end
|
95
|
+
|
96
|
+
it "displays inline error message" do
|
97
|
+
page.should have_content "can't be blank"
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
describe "editing a language" do
|
103
|
+
let(:resource) { collection.first }
|
104
|
+
let(:new_resource) { FactoryGirl.build(:language) }
|
105
|
+
|
106
|
+
before :each do
|
107
|
+
click_link "Edit"
|
108
|
+
end
|
109
|
+
|
110
|
+
it "has a correct title" do
|
111
|
+
page.html.should have_xpath "//title", text: "Edit Language | Dummy"
|
112
|
+
end
|
113
|
+
|
114
|
+
it "has a correct heading" do
|
115
|
+
page.should have_css "h1", text: "Edit Language"
|
116
|
+
end
|
117
|
+
|
118
|
+
it "has a name field" do
|
119
|
+
page.should have_field "Name", with: resource.name
|
120
|
+
end
|
121
|
+
|
122
|
+
it "has a update language button" do
|
123
|
+
page.should have_button "Update Language"
|
124
|
+
end
|
125
|
+
|
126
|
+
it "has a cancel link" do
|
127
|
+
page.should have_link "Cancel", href: "/languages"
|
128
|
+
end
|
129
|
+
|
130
|
+
context "with correct values" do
|
131
|
+
before :each do
|
132
|
+
fill_in "Name", with: new_resource.name
|
133
|
+
click_button "Update Language"
|
134
|
+
end
|
135
|
+
|
136
|
+
it "redirects to index" do
|
137
|
+
page.current_path.should == "/languages"
|
138
|
+
end
|
139
|
+
|
140
|
+
it "displays success message" do
|
141
|
+
page.should have_content "Language was successfully updated"
|
142
|
+
end
|
143
|
+
|
144
|
+
it "lists the new resource" do
|
145
|
+
page.should have_content new_resource.name
|
146
|
+
end
|
147
|
+
|
148
|
+
it "does not list the old resource" do
|
149
|
+
page.should_not have_content resource.name
|
150
|
+
end
|
151
|
+
end
|
152
|
+
|
153
|
+
context "without a required field" do
|
154
|
+
before :each do
|
155
|
+
fill_in "Name", with: ""
|
156
|
+
click_button "Update Language"
|
157
|
+
end
|
158
|
+
|
159
|
+
it "stays on the same page" do
|
160
|
+
page.should have_css "h1", text: "Edit Language"
|
161
|
+
page.should have_field "Name"
|
162
|
+
end
|
163
|
+
|
164
|
+
it "displays inline error message" do
|
165
|
+
page.should have_content "can't be blank"
|
166
|
+
end
|
167
|
+
end
|
168
|
+
end
|
169
|
+
end
|
@@ -181,7 +181,7 @@ describe SimpleResource::BaseHelper do
|
|
181
181
|
|
182
182
|
it "returns translated show link" do
|
183
183
|
set_locale
|
184
|
-
helper.link_to_action(:show, "
|
184
|
+
helper.link_to_action(:show, "Näytä", "/languages/1").should eq('<a href="/languages/1">Näytä</a>')
|
185
185
|
reset_locale
|
186
186
|
end
|
187
187
|
end
|
@@ -193,7 +193,7 @@ describe SimpleResource::BaseHelper do
|
|
193
193
|
|
194
194
|
it "returns translated edit link" do
|
195
195
|
set_locale
|
196
|
-
helper.link_to_action(:edit, "
|
196
|
+
helper.link_to_action(:edit, "Muokkaa", "/languages/1/edit").should eq('<a href="/languages/1/edit">Muokkaa</a>')
|
197
197
|
reset_locale
|
198
198
|
end
|
199
199
|
end
|
@@ -205,7 +205,7 @@ describe SimpleResource::BaseHelper do
|
|
205
205
|
|
206
206
|
it "returns translated delete link" do
|
207
207
|
set_locale
|
208
|
-
helper.link_to_action(:delete, "
|
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>')
|
209
209
|
reset_locale
|
210
210
|
end
|
211
211
|
end
|
@@ -369,8 +369,8 @@ describe SimpleResource::BaseHelper do
|
|
369
369
|
</div>
|
370
370
|
<fieldset class="inputs">
|
371
371
|
<ol>
|
372
|
-
<li class="string input
|
373
|
-
<label class=" label" for="language_name">Name
|
372
|
+
<li class="string input required stringish" id="language_name_input">
|
373
|
+
<label class=" label" for="language_name">Name<abbr title="required">*</abbr></label>
|
374
374
|
<input id="language_name" maxlength="255" name="language[name]" type="text" />
|
375
375
|
</li>
|
376
376
|
</ol>
|
@@ -411,8 +411,8 @@ describe SimpleResource::BaseHelper do
|
|
411
411
|
</div>
|
412
412
|
<fieldset class="inputs">
|
413
413
|
<ol>
|
414
|
-
<li class="string input
|
415
|
-
<label class=" label" for="language_name">Name
|
414
|
+
<li class="string input required stringish" id="language_name_input">
|
415
|
+
<label class=" label" for="language_name">Name<abbr title="required">*</abbr></label>
|
416
416
|
<input id="language_name" maxlength="255" name="language[name]" type="text"
|
417
417
|
value="#{language.name}" />
|
418
418
|
</li>
|
data/spec/spec_helper.rb
CHANGED
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.2.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2013-01-15 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
@@ -18,7 +18,7 @@ dependencies:
|
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: 3.2.
|
21
|
+
version: 3.2.11
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -26,7 +26,7 @@ dependencies:
|
|
26
26
|
requirements:
|
27
27
|
- - ~>
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: 3.2.
|
29
|
+
version: 3.2.11
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
31
|
name: inherited_resources
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
@@ -48,17 +48,17 @@ dependencies:
|
|
48
48
|
requirement: !ruby/object:Gem::Requirement
|
49
49
|
none: false
|
50
50
|
requirements:
|
51
|
-
- -
|
51
|
+
- - '='
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version:
|
53
|
+
version: 1.1.4
|
54
54
|
type: :development
|
55
55
|
prerelease: false
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
57
|
none: false
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - '='
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
61
|
+
version: 1.1.4
|
62
62
|
- !ruby/object:Gem::Dependency
|
63
63
|
name: database_cleaner
|
64
64
|
requirement: !ruby/object:Gem::Requirement
|
@@ -231,9 +231,8 @@ files:
|
|
231
231
|
- .rspec
|
232
232
|
- .travis.yml
|
233
233
|
- CHANGELOG.md
|
234
|
-
-
|
234
|
+
- CONTRIBUTING.md
|
235
235
|
- Gemfile
|
236
|
-
- Guardfile
|
237
236
|
- LICENSE.txt
|
238
237
|
- README.md
|
239
238
|
- Rakefile
|
@@ -248,6 +247,7 @@ files:
|
|
248
247
|
- app/views/simple_resource/base/show.html.erb
|
249
248
|
- app/views/simple_resource/builders/_formtastic.html.erb
|
250
249
|
- app/views/simple_resource/builders/_simple_form.html.erb
|
250
|
+
- config/locales/en.yml
|
251
251
|
- lib/simple_resource.rb
|
252
252
|
- lib/simple_resource/engine.rb
|
253
253
|
- lib/simple_resource/version.rb
|
@@ -298,8 +298,8 @@ files:
|
|
298
298
|
- spec/factories/categories.rb
|
299
299
|
- spec/factories/languages.rb
|
300
300
|
- spec/factories/posts.rb
|
301
|
+
- spec/features/languages_spec.rb
|
301
302
|
- spec/helpers/base_helper_spec.rb
|
302
|
-
- spec/integration/languages_spec.rb
|
303
303
|
- spec/spec_helper.rb
|
304
304
|
- spec/support/helpers.rb
|
305
305
|
homepage: https://github.com/jarijokinen/simple_resource
|
@@ -314,12 +314,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
314
314
|
- - ! '>='
|
315
315
|
- !ruby/object:Gem::Version
|
316
316
|
version: '0'
|
317
|
+
segments:
|
318
|
+
- 0
|
319
|
+
hash: 1479618243370591090
|
317
320
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
318
321
|
none: false
|
319
322
|
requirements:
|
320
323
|
- - ! '>='
|
321
324
|
- !ruby/object:Gem::Version
|
322
325
|
version: '0'
|
326
|
+
segments:
|
327
|
+
- 0
|
328
|
+
hash: 1479618243370591090
|
323
329
|
requirements: []
|
324
330
|
rubyforge_project:
|
325
331
|
rubygems_version: 1.8.24
|
@@ -372,8 +378,7 @@ test_files:
|
|
372
378
|
- spec/factories/categories.rb
|
373
379
|
- spec/factories/languages.rb
|
374
380
|
- spec/factories/posts.rb
|
381
|
+
- spec/features/languages_spec.rb
|
375
382
|
- spec/helpers/base_helper_spec.rb
|
376
|
-
- spec/integration/languages_spec.rb
|
377
383
|
- spec/spec_helper.rb
|
378
384
|
- spec/support/helpers.rb
|
379
|
-
has_rdoc:
|
data/Guardfile
DELETED
@@ -1,30 +0,0 @@
|
|
1
|
-
guard "spork", rspec_env: { "RAILS_ENV" => "test" } do
|
2
|
-
watch("config/application.rb")
|
3
|
-
watch("config/environment.rb")
|
4
|
-
watch("config/environments/test.rb")
|
5
|
-
watch(%r{^config/initializers/.+\.rb$})
|
6
|
-
watch("Gemfile")
|
7
|
-
watch("Gemfile.lock")
|
8
|
-
watch("spec/spec_helper.rb") { :rspec }
|
9
|
-
end
|
10
|
-
|
11
|
-
guard "rspec", cli: "--drb --color", all_on_start: false, all_after_pass: false do
|
12
|
-
watch(%r{^spec/.+_spec\.rb$})
|
13
|
-
watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
|
14
|
-
watch("spec/spec_helper.rb") { "spec" }
|
15
|
-
|
16
|
-
watch(%r{^app/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
|
17
|
-
watch(%r{^app/(.*)(\.erb|\.haml)$}) { |m| "spec/#{m[1]}#{m[2]}_spec.rb" }
|
18
|
-
watch(%r{^app/controllers/(.+)_(controller)\.rb$}) { |m| ["spec/routing/#{m[1]}_routing_spec.rb", "spec/#{m[2]}s/#{m[1]}_#{m[2]}_spec.rb", "spec/acceptance/#{m[1]}_spec.rb"] }
|
19
|
-
watch(%r{^spec/support/(.+)\.rb$}) { "spec" }
|
20
|
-
watch("config/routes.rb") { "spec/routing" }
|
21
|
-
watch("app/controllers/application_controller.rb") { "spec/controllers" }
|
22
|
-
|
23
|
-
# Capybara request specs
|
24
|
-
watch(%r{^app/views/(.+)/.*\.(erb|haml)$}) { |m| "spec/requests/#{m[1]}_spec.rb" }
|
25
|
-
|
26
|
-
# Turnip features and steps
|
27
|
-
watch(%r{^spec/acceptance/(.+)\.feature$})
|
28
|
-
watch(%r{^spec/acceptance/steps/(.+)_steps\.rb$}) { |m| Dir[File.join("**/#{m[1]}.feature")][0] || "spec/acceptance" }
|
29
|
-
end
|
30
|
-
|
@@ -1,39 +0,0 @@
|
|
1
|
-
require "spec_helper"
|
2
|
-
|
3
|
-
describe "Languages" do
|
4
|
-
describe "#index" do
|
5
|
-
let!(:collection) { FactoryGirl.create_list(:language, 10) }
|
6
|
-
|
7
|
-
before :each do
|
8
|
-
visit "/languages"
|
9
|
-
end
|
10
|
-
|
11
|
-
it "has a correct title" do
|
12
|
-
page.should have_xpath "//title", text: "Languages | Dummy"
|
13
|
-
end
|
14
|
-
|
15
|
-
it "has a correct heading" do
|
16
|
-
page.should have_css "h1", "Languages"
|
17
|
-
end
|
18
|
-
|
19
|
-
it "lists all languages" do
|
20
|
-
within "table" do
|
21
|
-
within "thead" do
|
22
|
-
page.should have_css "th", text: "Name"
|
23
|
-
end
|
24
|
-
within "tbody" do
|
25
|
-
collection.each do |resource|
|
26
|
-
page.should have_css "td", text: resource.name
|
27
|
-
page.should have_link "Show", href: "/languages/#{resource.id}"
|
28
|
-
page.should have_link "Edit", href: "/languages/#{resource.id}/edit"
|
29
|
-
page.should have_link "Delete", href: "/languages/#{resource.id}"
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
it "has a link to create a new language" do
|
36
|
-
page.should have_link "New Language", href: "/languages/new"
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|