prop_up 0.0.3 → 0.0.4
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +25 -0
- data/lib/prop/app_builder.rb +62 -0
- data/lib/prop/generators/app_generator.rb +27 -0
- data/lib/prop/version.rb +1 -1
- data/prop.gemspec +1 -0
- data/templates/.travis.yml +11 -0
- data/templates/Gemfile_clean +1 -0
- data/templates/README.md.erb +1 -0
- data/templates/application_controller.rb +9 -0
- data/templates/factories.rb +14 -0
- data/templates/nav_bar.html.erb +3 -0
- data/templates/new_registration.html.erb +16 -0
- data/templates/prop_layout.html.erb.erb +1 -0
- data/templates/root_index.html.erb +0 -0
- data/templates/user_sign_in_spec.rb +49 -0
- data/templates/user_sign_up_spec.rb +31 -0
- metadata +26 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6ec9381675e35753a7133ba825495fecddb55232
|
4
|
+
data.tar.gz: b9fe4f653e9f0832e8894b0a97398e160d6de4dd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c2d934d66718d44f22a8acc592e681a28229c3b421a8251e85167d44158ef3a516f8001911a7f863a5569cc85256936b72e8e8db56da9c6d35461d5412fac178
|
7
|
+
data.tar.gz: 8e2c7d67fd2899818057729f4d90750d0995b759d39abe0bb8c9e5e4550f12d10c87c7b88dda4856ac81c3d81ef903f6957467777118d5c620512b8ef076325f
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
Change Log
|
2
|
+
===
|
3
|
+
|
4
|
+
**0.0.3**
|
5
|
+
- Add Devise
|
6
|
+
- Change app title
|
7
|
+
|
8
|
+
**0.0.2**
|
9
|
+
- Add figaro
|
10
|
+
- Add Backbone generator
|
11
|
+
- Add dependency on hub
|
12
|
+
- Add Google Places library
|
13
|
+
- Add Foundation
|
14
|
+
- Add Modernizr
|
15
|
+
- Add Leaflet Map
|
16
|
+
|
17
|
+
**0.0.1**
|
18
|
+
- Generate a Rails app
|
19
|
+
- Template a gemfile
|
20
|
+
- Initialize zeus
|
21
|
+
- Initialize guard
|
22
|
+
- Setup factory girl and factories
|
23
|
+
- Initialize readme
|
24
|
+
- Call prop from command line
|
25
|
+
- Setup shoulda-matchers
|
data/lib/prop/app_builder.rb
CHANGED
@@ -1,7 +1,13 @@
|
|
1
|
+
require 'travis'
|
1
2
|
module Prop
|
2
3
|
class AppBuilder < Rails::AppBuilder
|
3
4
|
include Prop::Actions
|
4
5
|
|
6
|
+
def resolve_qt4_dependency
|
7
|
+
run 'brew install qt4'
|
8
|
+
run 'bundle'
|
9
|
+
end
|
10
|
+
|
5
11
|
def readme
|
6
12
|
template 'README.md.erb', 'README.md'
|
7
13
|
end
|
@@ -151,6 +157,39 @@
|
|
151
157
|
run 'rm bin/autospec'
|
152
158
|
end
|
153
159
|
|
160
|
+
def generate_login_specs
|
161
|
+
empty_directory 'spec/features'
|
162
|
+
copy_file 'user_sign_up_spec.rb', 'spec/features/user_sign_up_spec.rb'
|
163
|
+
copy_file 'user_sign_in_spec.rb', 'spec/features/user_sign_in_spec.rb'
|
164
|
+
end
|
165
|
+
|
166
|
+
def clean_up_factories
|
167
|
+
remove_file 'spec/factories/users.rb'
|
168
|
+
remove_file 'spec/models/user_spec.rb'
|
169
|
+
remove_file 'app/views/devise/registrations/new.html.erb'
|
170
|
+
copy_file 'factories.rb', 'spec/factories/factories.rb'
|
171
|
+
end
|
172
|
+
|
173
|
+
def create_controller_for_sign_in
|
174
|
+
copy_file 'new_registration.html.erb', 'app/views/devise/registrations/new.html.erb'
|
175
|
+
replace_in_file 'config/routes.rb',
|
176
|
+
/Application\.routes\.draw do/,
|
177
|
+
"Application.routes.draw do\nroot to: 'application#index'\n"
|
178
|
+
remove_file 'app/controllers/application_controller.rb'
|
179
|
+
copy_file 'application_controller.rb', 'app/controllers/application_controller.rb'
|
180
|
+
copy_file 'root_index.html.erb', 'app/views/application/index.html.erb'
|
181
|
+
end
|
182
|
+
|
183
|
+
def enable_logout
|
184
|
+
empty_directory 'app/views/shared'
|
185
|
+
copy_file 'nav_bar.html.erb', 'app/views/shared/_nav_bar.html.erb'
|
186
|
+
replace_in_file 'config/initializers/devise.rb', /config\.sign_out_via = \:delete/, "config.sign_out_via = :get\n"
|
187
|
+
end
|
188
|
+
|
189
|
+
def migrate_test_db
|
190
|
+
run 'rake db:test:prepare'
|
191
|
+
end
|
192
|
+
|
154
193
|
def configure_background_jobs_for_rspec
|
155
194
|
copy_file 'background_jobs_rspec.rb', 'spec/support/background_jobs.rb'
|
156
195
|
run 'rails g delayed_job:active_record'
|
@@ -260,6 +299,29 @@
|
|
260
299
|
run "#{path_addition} hub create #{repo_name}"
|
261
300
|
end
|
262
301
|
|
302
|
+
def setup_travis_ci
|
303
|
+
path_addition = override_path_for_tests
|
304
|
+
run "#{path_addition} travis login --org --auto"
|
305
|
+
run "#{path_addition} travis sync"
|
306
|
+
run "#{path_addition} travis enable"
|
307
|
+
copy_file '.travis.yml', '.travis.yml'
|
308
|
+
end
|
309
|
+
|
310
|
+
def self.github_username
|
311
|
+
`travis login --org --auto`
|
312
|
+
tk = `travis token`
|
313
|
+
token = tk.split(' ').pop
|
314
|
+
client = ::Travis::Client.new(access_token: "#{token}")
|
315
|
+
client.user.login
|
316
|
+
end
|
317
|
+
|
318
|
+
def initial_commit_and_push
|
319
|
+
path_addition = override_path_for_tests
|
320
|
+
run "#{path_addition} git add ."
|
321
|
+
run "#{path_addition} git commit -m 'Initial Commit'"
|
322
|
+
run "#{path_addition} git push -u origin master"
|
323
|
+
end
|
324
|
+
|
263
325
|
def copy_miscellaneous_files
|
264
326
|
copy_file 'errors.rb', 'config/initializers/errors.rb'
|
265
327
|
end
|
@@ -33,6 +33,7 @@ module Prop
|
|
33
33
|
end
|
34
34
|
|
35
35
|
def prop_customizations
|
36
|
+
invoke :resolve_qt4_dependency
|
36
37
|
invoke :remove_garbage_files
|
37
38
|
invoke :customize_gemfile
|
38
39
|
invoke :setup_database
|
@@ -56,13 +57,20 @@ module Prop
|
|
56
57
|
invoke :create_guard_file
|
57
58
|
invoke :initialize_zeus
|
58
59
|
invoke :setup_devise
|
60
|
+
invoke :generate_specs
|
59
61
|
invoke :setup_git
|
60
62
|
invoke :create_heroku_apps
|
61
63
|
invoke :create_github_repo
|
64
|
+
invoke :setup_travis_ci
|
65
|
+
invoke :initial_commit_and_push
|
62
66
|
invoke :start_zeus
|
63
67
|
invoke :outro
|
64
68
|
end
|
65
69
|
|
70
|
+
def resolve_qt4_dependency
|
71
|
+
build :resolve_qt4_dependency
|
72
|
+
end
|
73
|
+
|
66
74
|
def remove_garbage_files
|
67
75
|
build :remove_public_index
|
68
76
|
build :remove_rails_logo_image
|
@@ -115,6 +123,15 @@ module Prop
|
|
115
123
|
build :setup_devise
|
116
124
|
end
|
117
125
|
|
126
|
+
def generate_specs
|
127
|
+
say 'Generating specs'
|
128
|
+
build :clean_up_factories
|
129
|
+
build :generate_login_specs
|
130
|
+
build :create_controller_for_sign_in
|
131
|
+
build :enable_logout
|
132
|
+
build :migrate_test_db
|
133
|
+
end
|
134
|
+
|
118
135
|
def create_prop_views
|
119
136
|
say 'Creating prop views'
|
120
137
|
build :create_partials_directory
|
@@ -181,6 +198,16 @@ module Prop
|
|
181
198
|
build :create_github_repo, "#{app_name}"
|
182
199
|
end
|
183
200
|
|
201
|
+
def setup_travis_ci
|
202
|
+
say 'Setting up Travis CI'
|
203
|
+
build :setup_travis_ci
|
204
|
+
end
|
205
|
+
|
206
|
+
def initial_commit_and_push
|
207
|
+
say 'Performing initial commit and pushing to Github'
|
208
|
+
build :initial_commit_and_push
|
209
|
+
end
|
210
|
+
|
184
211
|
def setup_gitignore
|
185
212
|
build :gitignore_files
|
186
213
|
end
|
data/lib/prop/version.rb
CHANGED
data/prop.gemspec
CHANGED
@@ -8,6 +8,7 @@ Gem::Specification.new do |spec|
|
|
8
8
|
spec.add_dependency 'bundler', '~> 1.3'
|
9
9
|
spec.add_dependency 'rails', '4.0.0'
|
10
10
|
spec.add_dependency 'hub'
|
11
|
+
spec.add_dependency 'travis'
|
11
12
|
spec.authors = ['Nathaniel Wroblewski']
|
12
13
|
spec.date = Date.today.strftime('%Y-%m-%d')
|
13
14
|
|
data/templates/Gemfile_clean
CHANGED
data/templates/README.md.erb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
You're being propped up
|
2
2
|
============================
|
3
|
+
[](https://travis-ci.org/<%= "#{Prop::AppBuilder::github_username}" %>/<%= "#{app_name}" %>)
|
3
4
|
|
4
5
|
Consult the following repo for best practices and workflow protocol:
|
5
6
|
|
@@ -0,0 +1,16 @@
|
|
1
|
+
<h2>Sign up</h2>
|
2
|
+
|
3
|
+
<%= simple_form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %>
|
4
|
+
<%= f.error_notification %>
|
5
|
+
|
6
|
+
<div class="form-inputs">
|
7
|
+
<%= f.input :email, required: true, autofocus: true %>
|
8
|
+
<%= f.input :password, required: true %>
|
9
|
+
</div>
|
10
|
+
|
11
|
+
<div class="form-actions">
|
12
|
+
<%= f.button :submit, "Sign up" %>
|
13
|
+
</div>
|
14
|
+
<% end %>
|
15
|
+
|
16
|
+
<%= render "devise/shared/links" %>
|
File without changes
|
@@ -0,0 +1,49 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe 'An existing user', js: true do
|
4
|
+
it 'can log in' do
|
5
|
+
email = generate(:email)
|
6
|
+
password = generate(:password)
|
7
|
+
user = create(:user, email: email, password: password)
|
8
|
+
|
9
|
+
visit new_user_session_path
|
10
|
+
|
11
|
+
fill_in 'Email', with: email
|
12
|
+
fill_in 'Password', with: password
|
13
|
+
click_on 'Sign in'
|
14
|
+
|
15
|
+
expect(page).to have_content('success')
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'cannot log in if a field is ommitted' do
|
19
|
+
email = generate(:email)
|
20
|
+
password = generate(:password)
|
21
|
+
user = create(:user, email: email, password: password)
|
22
|
+
|
23
|
+
visit new_user_session_path
|
24
|
+
|
25
|
+
fill_in 'Email', with: email
|
26
|
+
click_on 'Sign in'
|
27
|
+
|
28
|
+
expect(page).to_not have_content('success')
|
29
|
+
expect(page).to have_content('Invalid email or password.')
|
30
|
+
end
|
31
|
+
|
32
|
+
it 'can sign out if they are signed in' do
|
33
|
+
email = generate(:email)
|
34
|
+
password = generate(:password)
|
35
|
+
user = create(:user, email: email, password: password)
|
36
|
+
|
37
|
+
visit new_user_session_path
|
38
|
+
|
39
|
+
fill_in 'Email', with: email
|
40
|
+
fill_in 'Password', with: password
|
41
|
+
click_on 'Sign in'
|
42
|
+
|
43
|
+
expect(page).to have_content('success')
|
44
|
+
|
45
|
+
click_link 'Sign out'
|
46
|
+
|
47
|
+
expect(page).to have_content('success')
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe 'A visitor', js: true do
|
4
|
+
it 'can create a new user' do
|
5
|
+
email = generate(:email)
|
6
|
+
password = generate(:password)
|
7
|
+
visit new_user_registration_path
|
8
|
+
|
9
|
+
fill_in 'Email', with: email
|
10
|
+
fill_in 'Password', with: password
|
11
|
+
|
12
|
+
click_button 'Sign up'
|
13
|
+
|
14
|
+
expect(page).to have_content I18n.t('devise.registrations.signed_up')
|
15
|
+
|
16
|
+
user = User.find_by(email: email)
|
17
|
+
expect(user).to be
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'can not create a new user if they omit a field' do
|
21
|
+
email = generate(:email)
|
22
|
+
visit new_user_registration_path
|
23
|
+
|
24
|
+
fill_in 'Email', with: email
|
25
|
+
|
26
|
+
click_button 'Sign up'
|
27
|
+
|
28
|
+
expect(page).to have_content 'Sign up'
|
29
|
+
expect(page).to_not have_content 'success'
|
30
|
+
end
|
31
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: prop_up
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nathaniel Wroblewski
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-12-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -52,6 +52,20 @@ dependencies:
|
|
52
52
|
- - '>='
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: travis
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '>='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
55
69
|
description: |
|
56
70
|
Prop is a base Rails project that you can upgrade.
|
57
71
|
It is used to get a jump start on a working app.
|
@@ -65,6 +79,7 @@ extra_rdoc_files:
|
|
65
79
|
- LICENSE
|
66
80
|
files:
|
67
81
|
- .gitignore
|
82
|
+
- CHANGELOG.md
|
68
83
|
- Gemfile
|
69
84
|
- LICENSE
|
70
85
|
- README.md
|
@@ -76,6 +91,7 @@ files:
|
|
76
91
|
- lib/prop/version.rb
|
77
92
|
- peg-leg-bates.jpg
|
78
93
|
- prop.gemspec
|
94
|
+
- templates/.travis.yml
|
79
95
|
- templates/Gemfile_clean
|
80
96
|
- templates/Guardfile
|
81
97
|
- templates/Procfile
|
@@ -84,6 +100,7 @@ files:
|
|
84
100
|
- templates/_javascript.html.erb
|
85
101
|
- templates/application.css.scss
|
86
102
|
- templates/application.js
|
103
|
+
- templates/application_controller.rb
|
87
104
|
- templates/backbone.js
|
88
105
|
- templates/background_jobs_rspec.rb
|
89
106
|
- templates/bin_setup
|
@@ -91,22 +108,28 @@ files:
|
|
91
108
|
- templates/database_cleaner_rspec.rb
|
92
109
|
- templates/disable_xml_params.rb
|
93
110
|
- templates/errors.rb
|
111
|
+
- templates/factories.rb
|
94
112
|
- templates/factories_spec.rb
|
95
113
|
- templates/factories_spec_rake_task.rb
|
96
114
|
- templates/factory_girl_syntax_rspec.rb
|
97
115
|
- templates/javascripts/prefilled_input.js
|
98
116
|
- templates/leaflet_map.js
|
99
117
|
- templates/modernizr.js
|
118
|
+
- templates/nav_bar.html.erb
|
119
|
+
- templates/new_registration.html.erb
|
100
120
|
- templates/places.coffee
|
101
121
|
- templates/postgresql_database.yml.erb
|
102
122
|
- templates/prop_gitignore
|
103
123
|
- templates/prop_layout.html.erb.erb
|
104
124
|
- templates/rack_timeout.rb
|
125
|
+
- templates/root_index.html.erb
|
105
126
|
- templates/sample.env
|
106
127
|
- templates/smtp.rb
|
107
128
|
- templates/spec_helper.rb
|
108
129
|
- templates/underscore.js
|
109
130
|
- templates/unicorn.rb
|
131
|
+
- templates/user_sign_in_spec.rb
|
132
|
+
- templates/user_sign_up_spec.rb
|
110
133
|
homepage: https://github.com/NathanielWroblewski/prop
|
111
134
|
licenses:
|
112
135
|
- MIT
|
@@ -128,7 +151,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
128
151
|
version: '0'
|
129
152
|
requirements: []
|
130
153
|
rubyforge_project:
|
131
|
-
rubygems_version: 2.0.
|
154
|
+
rubygems_version: 2.0.3
|
132
155
|
signing_key:
|
133
156
|
specification_version: 4
|
134
157
|
summary: Generate a Rails app using pre-configured best practices
|