suspenders 1.15.0 → 1.16.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 27340b81e493ade21202e7a1b247dd548e61c453
4
- data.tar.gz: 8cc95ce37937ae93471c04be89a1aac784bd91a0
3
+ metadata.gz: ca9b05977b2bd1059a7d8f10ddfc7c797cdb6e54
4
+ data.tar.gz: 0854bdf533abed015ced2096ff37d44cf7830e8a
5
5
  SHA512:
6
- metadata.gz: 35f830ebbfdfa1bb83feb5f7a02aa13f540134efaee0e5226b277dedb1660a425f780e4c221a41e9453a387c28e587ced29daab641bc3d155b25054c943574a5
7
- data.tar.gz: f4d537d591b6e01d3d4c2d015fd1128ca4f8369bf0116ca51b2ab06ed4724f4bd50fea6960af64ebca7d82f229ce49ab5fc7e1d2ec7c19e7de3783d3b8c312d1
6
+ metadata.gz: d5677d15f7c00172890b334718abdb2c9f09e9ec4c7415032684dab5f4bee688b94b1dd245a82f33417bff3a7e3c5089d7011c239fe516c322d9b70cdf15e455
7
+ data.tar.gz: 5a564a4598fe4baafcd7168c3a5d3ce868d054f12a64a2d0bee140b84d0675dac8f5e418272567aabf677e430664f418582218367fa1cb67abd94af5cd4f8399
data/Gemfile.lock CHANGED
@@ -1,8 +1,8 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- suspenders (1.15.0)
5
- bitters
4
+ suspenders (1.16.0)
5
+ bitters (~> 0.10.0)
6
6
  bundler (~> 1.3)
7
7
  rails (= 4.1.4)
8
8
 
@@ -68,7 +68,7 @@ GEM
68
68
  gherkin (2.12.2)
69
69
  multi_json (~> 1.3)
70
70
  hike (1.2.3)
71
- i18n (0.6.9)
71
+ i18n (0.6.11)
72
72
  json (1.8.1)
73
73
  mail (2.5.4)
74
74
  mime-types (~> 1.16)
@@ -108,7 +108,7 @@ GEM
108
108
  rspec-expectations (2.99.0)
109
109
  diff-lcs (>= 1.1.3, < 2.0)
110
110
  rspec-mocks (2.99.0)
111
- sass (3.3.9)
111
+ sass (3.3.14)
112
112
  sprockets (2.12.1)
113
113
  hike (~> 1.2)
114
114
  multi_json (~> 1.0)
@@ -124,7 +124,7 @@ GEM
124
124
  treetop (1.4.15)
125
125
  polyglot
126
126
  polyglot (>= 0.3.1)
127
- tzinfo (1.2.1)
127
+ tzinfo (1.2.2)
128
128
  thread_safe (~> 0.1)
129
129
  xpath (2.0.0)
130
130
  nokogiri (~> 1.3)
data/NEWS.md CHANGED
@@ -1,3 +1,17 @@
1
+ 1.16.0 (August 16, 2014)
2
+
3
+ * Use the 3.x series of RSpec.
4
+ * Use the 0.10.x series of Bitters.
5
+ * Improve documentation in generated README for machine setup via `bin/setup`
6
+ and https://github.com/thoughtbot/laptop script.
7
+ * Remove Foreman from `Gemfile`.
8
+ * Use i18n-tasks for missing or unused translations.
9
+ * Raise on missing translations in development environment. Fail fast!
10
+ * Prevent empty div when there are no flashes.
11
+ * Pick random port when generating Rails app so multiple apps can be run via
12
+ Foreman on a development machine at the same time.
13
+ * Add `normalize-rails` gem for resetting browser styles.
14
+
1
15
  1.15.0 (July 9, 2014)
2
16
 
3
17
  * Use Rails 4.1.4.
data/README.md CHANGED
@@ -1,6 +1,7 @@
1
1
  # Suspenders [![Build Status](https://secure.travis-ci.org/thoughtbot/suspenders.png?branch=master)](http://travis-ci.org/thoughtbot/suspenders)
2
2
 
3
- Suspenders is the base Rails application used at [thoughtbot](http://thoughtbot.com/community).
3
+ Suspenders is the base Rails application used at
4
+ [thoughtbot](http://thoughtbot.com).
4
5
 
5
6
  ![Suspenders boy](http://media.tumblr.com/1TEAMALpseh5xzf0Jt6bcwSMo1_400.png)
6
7
 
@@ -17,9 +18,6 @@ Then run:
17
18
 
18
19
  This will create a Rails app in `projectname` using the latest version of Rails.
19
20
 
20
- By default this script creates a new git repository. See below if you
21
- want to use it against an existing repo.
22
-
23
21
  Gemfile
24
22
  -------
25
23
 
@@ -41,6 +39,7 @@ It includes application gems like:
41
39
  * [High Voltage](https://github.com/thoughtbot/high_voltage) for static pages
42
40
  * [jQuery Rails](https://github.com/rails/jquery-rails) for jQuery
43
41
  * [Neat](https://github.com/thoughtbot/neat) for semantic grids
42
+ * [Normalize](https://necolas.github.io/normalize.css/) for resetting browser styles
44
43
  * [Postgres](https://github.com/ged/ruby-pg) for access to the Postgres database
45
44
  * [Rack Timeout](https://github.com/kch/rack-timeout) to abort requests that are
46
45
  taking too long
@@ -177,7 +176,7 @@ Contributing
177
176
 
178
177
  To update Suspenders' Ruby version, change `.ruby-version` and `.travis.yml`.
179
178
 
180
- Please see CONTRIBUTING.md for further details.
179
+ Please see [CONTRIBUTING.md](CONTRIBUTING.md) for further details.
181
180
 
182
181
  Credits
183
182
  -------
@@ -9,6 +9,10 @@ module Suspenders
9
9
  File.open(path, "w") { |file| file.write(contents) }
10
10
  end
11
11
 
12
+ def uncomment_in_file(path, uncommented)
13
+ replace_in_file(path, "# #{uncommented}", uncommented)
14
+ end
15
+
12
16
  def action_mailer_host(rails_env, host)
13
17
  host_config = "config.action_mailer.default_url_options = { host: '#{host}' }"
14
18
  configure_environment(rails_env, host_config)
@@ -15,7 +15,7 @@ module Suspenders
15
15
  action_on_unpermitted_parameters = <<-RUBY
16
16
 
17
17
  # Raise an ActionController::UnpermittedParameters exception when
18
- # a parameter is not explcitly permitted but is passed anyway.
18
+ # a parameter is not explicitly permitted but is passed anyway.
19
19
  config.action_controller.action_on_unpermitted_parameters = :raise
20
20
  RUBY
21
21
  inject_into_file(
@@ -26,7 +26,7 @@ module Suspenders
26
26
  end
27
27
 
28
28
  def provide_setup_script
29
- copy_file 'bin_setup', 'bin/setup'
29
+ template 'bin_setup.erb', 'bin/setup', port_number: port_number
30
30
  run 'chmod a+x bin/setup'
31
31
  end
32
32
 
@@ -183,8 +183,13 @@ end
183
183
  template 'travis.yml.erb', '.travis.yml'
184
184
  end
185
185
 
186
- def configure_i18n_in_specs
187
- copy_file 'i18n.rb', 'spec/support/i18n.rb'
186
+ def configure_i18n_for_development_environment
187
+ raise_on_missing_translations_in("development")
188
+ end
189
+
190
+ def configure_i18n_tasks
191
+ run "cp $(i18n-tasks gem-path)/templates/rspec/i18n_spec.rb spec/"
192
+ copy_file "config_i18n_tasks.yml", "config/i18n-tasks.yml"
188
193
  end
189
194
 
190
195
  def configure_background_jobs_for_rspec
@@ -214,7 +219,7 @@ end
214
219
  end
215
220
 
216
221
  def configure_action_mailer
217
- action_mailer_host 'development', "#{app_name}.local"
222
+ action_mailer_host 'development', "localhost:#{port_number}"
218
223
  action_mailer_host 'test', 'www.example.com'
219
224
  action_mailer_host 'staging', "staging.#{app_name}.com"
220
225
  action_mailer_host 'production', "#{app_name}.com"
@@ -356,6 +361,12 @@ fi
356
361
 
357
362
  private
358
363
 
364
+ def raise_on_missing_translations_in(environment)
365
+ config = 'config.action_view.raise_on_missing_translations = true'
366
+
367
+ uncomment_in_file("config/environments/#{environment}.rb", config)
368
+ end
369
+
359
370
  def override_path_for_tests
360
371
  if ENV['TESTING']
361
372
  support_bin = File.expand_path(File.join('..', '..', 'spec', 'fakes', 'bin'))
@@ -370,5 +381,9 @@ fi
370
381
  def generate_secret
371
382
  SecureRandom.hex(64)
372
383
  end
384
+
385
+ def port_number
386
+ @port_number ||= [3000, 4000, 5000, 6000, 7000, 8000, 9000].sample
387
+ end
373
388
  end
374
389
  end
@@ -71,6 +71,7 @@ module Suspenders
71
71
  build :provide_setup_script
72
72
  build :provide_dev_prime_task
73
73
  build :configure_generators
74
+ build :configure_i18n_for_development_environment
74
75
  end
75
76
 
76
77
  def setup_test_environment
@@ -82,7 +83,7 @@ module Suspenders
82
83
  build :enable_database_cleaner
83
84
  build :configure_spec_support_features
84
85
  build :configure_travis
85
- build :configure_i18n_in_specs
86
+ build :configure_i18n_tasks
86
87
  build :configure_action_mailer_in_specs
87
88
  end
88
89
 
@@ -1,5 +1,5 @@
1
1
  module Suspenders
2
2
  RAILS_VERSION = '4.1.4'
3
3
  RUBY_VERSION = IO.read("#{File.dirname(__FILE__)}/../../.ruby-version").strip
4
- VERSION = '1.15.0'
4
+ VERSION = '1.16.0'
5
5
  end
@@ -62,6 +62,28 @@ feature 'Suspend a new project with default configuration' do
62
62
  to include(%{window.analytics.load("<%= ENV["SEGMENT_IO_KEY"] %>");})
63
63
  end
64
64
 
65
+ scenario "raises on missing translations in development" do
66
+ run_suspenders
67
+
68
+ environment_file =
69
+ IO.read("#{project_path}/config/environments/development.rb")
70
+ expect(environment_file).to match(
71
+ /^ +config.action_view.raise_on_missing_translations = true$/
72
+ )
73
+ end
74
+
75
+ scenario "specs for missing or unused translations" do
76
+ run_suspenders
77
+
78
+ expect(File).to exist("#{project_path}/spec/i18n_spec.rb")
79
+ end
80
+
81
+ scenario "config file for i18n tasks" do
82
+ run_suspenders
83
+
84
+ expect(File).to exist("#{project_path}/config/i18n-tasks.yml")
85
+ end
86
+
65
87
  def analytics_partial
66
88
  IO.read("#{project_path}/app/views/application/_analytics.html.erb")
67
89
  end
data/suspenders.gemspec CHANGED
@@ -27,7 +27,7 @@ rush to build something amazing; don't use it if you like missing deadlines.
27
27
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
28
28
  s.version = Suspenders::VERSION
29
29
 
30
- s.add_dependency 'bitters'
30
+ s.add_dependency 'bitters', '~> 0.10.0'
31
31
  s.add_dependency 'bundler', '~> 1.3'
32
32
  s.add_dependency 'rails', Suspenders::RAILS_VERSION
33
33
 
@@ -9,8 +9,10 @@ gem "delayed_job_active_record"
9
9
  gem "email_validator"
10
10
  gem "flutie"
11
11
  gem "high_voltage"
12
+ gem "i18n-tasks"
12
13
  gem "jquery-rails"
13
14
  gem "neat", "~> 1.5.1"
15
+ gem "normalize-rails", "~> 3.0.0"
14
16
  gem "pg"
15
17
  gem "rack-timeout"
16
18
  gem "rails", "<%= Suspenders::RAILS_VERSION %>"
@@ -22,7 +24,6 @@ gem "uglifier"
22
24
  gem "unicorn"
23
25
 
24
26
  group :development do
25
- gem "foreman"
26
27
  gem "spring"
27
28
  gem "spring-commands-rspec"
28
29
  end
@@ -33,7 +34,7 @@ group :development, :test do
33
34
  gem "dotenv-rails"
34
35
  gem "factory_girl_rails"
35
36
  gem "pry-rails"
36
- gem "rspec-rails", "~> 2.14.0"
37
+ gem "rspec-rails", "~> 3.0.0"
37
38
  end
38
39
 
39
40
  group :test do
@@ -4,15 +4,25 @@
4
4
  Getting Started
5
5
  ---------------
6
6
 
7
- This repository comes equipped with a self-setup script:
7
+ After you have cloned this repo, run this setup script to set up your machine
8
+ with the necessary dependencies to run and test this app:
8
9
 
9
10
  % ./bin/setup
10
11
 
12
+ It assumes you have a machine equipped with Ruby, Postgres, etc. If not, set up
13
+ your machine with [this script].
14
+
15
+ [this script]: https://github.com/thoughtbot/laptop
16
+
11
17
  After setting up, you can run the application using [foreman]:
12
18
 
13
19
  % foreman start
14
20
 
15
- [foreman]: http://ddollar.github.io/foreman/
21
+ If you don't have `foreman`, see [Foreman's install instructions][foreman]. It
22
+ is [purposefully excluded from the project's `Gemfile`][exclude].
23
+
24
+ [foreman]: https://github.com/ddollar/foreman
25
+ [exclude]: https://github.com/ddollar/foreman/pull/437#issuecomment-41110407
16
26
 
17
27
  Guidelines
18
28
  ----------
@@ -1,5 +1,7 @@
1
- <div id="flash">
2
- <% flash.each do |key, value| -%>
3
- <div id="flash_<%= key %>"><%= value %></div>
4
- <% end -%>
5
- </div>
1
+ <% if flash.any? %>
2
+ <div id="flash">
3
+ <% flash.each do |key, value| -%>
4
+ <div id="flash_<%= key %>"><%= value %></div>
5
+ <% end -%>
6
+ </div>
7
+ <% end %>
@@ -21,4 +21,10 @@ bundle exec rake dev:prime
21
21
  mkdir -p .git/safe
22
22
 
23
23
  # Pick a port for Foreman
24
- echo "port: 7000" > .foreman
24
+ echo "port: <%= config[:port_number] %>" > .foreman
25
+
26
+ # Print warning if Foreman is not installed
27
+ if ! command -v foreman &>/dev/null; then
28
+ echo "foreman is not installed."
29
+ echo "See https://github.com/ddollar/foreman for install instructions."
30
+ fi
@@ -0,0 +1,12 @@
1
+ search:
2
+ paths:
3
+ - "app/controllers"
4
+ - "app/helpers"
5
+ - "app/presenters"
6
+ - "app/views"
7
+
8
+ ignore_unused:
9
+ - activerecord.*
10
+ - date.*
11
+ - simple_form.*
12
+ - time.*
@@ -4,7 +4,6 @@ if Rails.env.development?
4
4
  namespace :dev do
5
5
  desc "Seed data for development environment"
6
6
  task prime: "db:setup" do
7
- FactoryGirl.find_definitions
8
7
  include FactoryGirl::Syntax::Methods
9
8
 
10
9
  # create(:user, email: "user@example.com", password: "password")
@@ -10,6 +10,7 @@ Dir[Rails.root.join("spec/support/**/*.rb")].each { |file| require file }
10
10
 
11
11
  module Features
12
12
  # Extend this module in spec/support/features/*.rb
13
+ include Formulaic::Dsl
13
14
  end
14
15
 
15
16
  RSpec.configure do |config|
@@ -18,10 +19,9 @@ RSpec.configure do |config|
18
19
  end
19
20
 
20
21
  config.include Features, type: :feature
21
- config.include Formulaic::Dsl, type: :feature
22
22
  config.infer_base_class_for_anonymous_controllers = false
23
+ config.infer_spec_type_from_file_location!
23
24
  config.order = "random"
24
- config.treat_symbols_as_metadata_keys_with_true_values = true
25
25
  config.use_transactional_fixtures = false
26
26
  end
27
27
 
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: suspenders
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.15.0
4
+ version: 1.16.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - thoughtbot
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-09 00:00:00.000000000 Z
11
+ date: 2014-08-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bitters
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: 0.10.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
26
+ version: 0.10.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -155,7 +155,6 @@ files:
155
155
  - spec/support/fake_heroku.rb
156
156
  - spec/support/suspenders.rb
157
157
  - suspenders.gemspec
158
- - templates/Brewfile
159
158
  - templates/Gemfile.erb
160
159
  - templates/Procfile
161
160
  - templates/README.md.erb
@@ -165,7 +164,8 @@ files:
165
164
  - templates/action_mailer.rb
166
165
  - templates/application.css.scss
167
166
  - templates/background_jobs_rspec.rb
168
- - templates/bin_setup
167
+ - templates/bin_setup.erb
168
+ - templates/config_i18n_tasks.yml
169
169
  - templates/config_locales_en.yml
170
170
  - templates/database_cleaner_rspec.rb
171
171
  - templates/development_seeds.rb
data/templates/Brewfile DELETED
@@ -1,2 +0,0 @@
1
- install postgres --no-python
2
- install qt imagemagick