simple_resource 0.1.0 → 0.2.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 +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
|