flip_fab 1.0.0 → 1.0.16
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.github/dependabot.yml +18 -0
- data/.github/workflows/dobby-actions.yml +29 -0
- data/.github/workflows/gem-publish.yml +46 -0
- data/.github/workflows/version-forget-me-not.yml +19 -0
- data/.gitignore +2 -0
- data/.rubocop.yml +31 -0
- data/.rubocop_todo.yml +58 -0
- data/.ruby-version +1 -0
- data/.semaphore/semaphore.yml +49 -0
- data/CODEOWNERS +3 -0
- data/Gemfile +0 -12
- data/README.md +8 -2
- data/_pipeline/step_build_gem.sh +5 -0
- data/_pipeline/step_test_gem.sh +6 -0
- data/catalog-info.yaml +8 -0
- data/example/rails_app/Gemfile +4 -21
- data/example/rails_app/Rakefile +1 -1
- data/example/rails_app/app/assets/config/manifest.js +3 -0
- data/example/rails_app/app/assets/javascripts/application.js +0 -1
- data/example/rails_app/app/controllers/beavers_controller.rb +12 -13
- data/example/rails_app/bin/bundle +1 -1
- data/example/rails_app/bin/rails +1 -1
- data/example/rails_app/config/application.rb +2 -2
- data/example/rails_app/config/boot.rb +1 -1
- data/example/rails_app/config/environment.rb +1 -1
- data/example/rails_app/config/environments/development.rb +1 -1
- data/example/rails_app/config/environments/test.rb +2 -2
- data/example/rails_app/config/initializers/cookies_serializer.rb +1 -1
- data/example/rails_app/config.ru +1 -1
- data/example/rails_app/db/schema.rb +5 -8
- data/example/rails_app/spec/rails_helper.rb +2 -2
- data/example/rails_app/spec/spec_helper.rb +0 -1
- data/example/rails_app/test/controllers/beavers_controller_test.rb +12 -12
- data/example/rails_app/test/test_helper.rb +1 -1
- data/flip_fab.gemspec +11 -5
- data/lib/flip_fab/contextual_feature.rb +23 -19
- data/lib/flip_fab/cookie_persistence.rb +10 -17
- data/lib/flip_fab/feature.rb +2 -3
- data/lib/flip_fab/features_by_name.rb +5 -4
- data/lib/flip_fab/helper.rb +0 -1
- data/lib/flip_fab/persistence.rb +2 -3
- data/lib/flip_fab/version.rb +6 -1
- data/lib/flip_fab.rb +4 -4
- data/script/cibuild +10 -0
- data/spec/lib/flip_fab/contextual_feature_spec.rb +54 -57
- data/spec/lib/flip_fab/cookie_persistence.feature +3 -3
- data/spec/lib/flip_fab/cookie_persistence_spec.rb +36 -43
- data/spec/lib/flip_fab/feature_spec.rb +6 -9
- data/spec/lib/flip_fab/features_by_name_spec.rb +3 -6
- data/spec/lib/flip_fab/helper_spec.rb +35 -38
- data/spec/lib/flip_fab/persistence_spec.rb +2 -5
- data/spec/lib/flip_fab_spec.rb +11 -15
- data/spec/spec_helper.rb +47 -49
- data/spec/support/test_app.rb +2 -2
- data/spec/support/test_context.rb +1 -1
- data/spec/support/test_multiple_persistence.rb +2 -3
- data/spec/support/test_persistence.rb +2 -3
- data/spec/support/test_rack_context.rb +3 -3
- metadata +103 -11
- data/Gemfile.lock +0 -92
- data/example/rails_app/Gemfile.lock +0 -178
- data/example/rails_app/README.rdoc +0 -28
- data/example/rails_app/config/rabbit_feed.yml +0 -8
- data/example/rails_app/config/unicorn.rb +0 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: f7f880a207dde1105f807623c68b6f3911883cab9f930760b33b372addc7aa5c
|
4
|
+
data.tar.gz: 38824c24a924aab3f4bd486c3595e83a98630420a300afc89d1f554e38c4d930
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6854f1e7fab3aa484661e0228808e40f04a5cc39be460d1d543c44ee828aa4aba01aea6338c27c1f96749a563483d20a2d8bc71c5f22c7388af385a4e7dc26fa
|
7
|
+
data.tar.gz: 610b9b7ae75eaafbc3bcc02076fc4bb519d08727cc75909a93f9d51cd0ea1a0ffe03a93a870fa2be1d4bdadad1fa1c1d7c74f0883c7c9f38072c8a04451d4344
|
@@ -0,0 +1,18 @@
|
|
1
|
+
version: 2
|
2
|
+
updates:
|
3
|
+
- package-ecosystem: bundler
|
4
|
+
directory: "/"
|
5
|
+
schedule:
|
6
|
+
interval: daily
|
7
|
+
time: "07:00"
|
8
|
+
open-pull-requests-limit: 99
|
9
|
+
labels:
|
10
|
+
- dependencies
|
11
|
+
- package-ecosystem: github-actions
|
12
|
+
directory: "/"
|
13
|
+
schedule:
|
14
|
+
interval: daily
|
15
|
+
time: "07:00"
|
16
|
+
open-pull-requests-limit: 99
|
17
|
+
labels:
|
18
|
+
- dependencies
|
@@ -0,0 +1,29 @@
|
|
1
|
+
|
2
|
+
name: "Dobby action"
|
3
|
+
on:
|
4
|
+
issue_comment:
|
5
|
+
types: [created]
|
6
|
+
permissions:
|
7
|
+
contents: read
|
8
|
+
jobs:
|
9
|
+
pr_commented:
|
10
|
+
runs-on: ubuntu-20.04
|
11
|
+
if: startsWith(github.event.comment.body, '/dobby')
|
12
|
+
env:
|
13
|
+
BUNDLE_WITHOUT: "development:test"
|
14
|
+
steps:
|
15
|
+
- name: Chekcout action
|
16
|
+
uses: actions/checkout@v3
|
17
|
+
with:
|
18
|
+
repository: 'simplybusiness/dobby'
|
19
|
+
ref: 'v3.0.1'
|
20
|
+
- name: Set up ruby
|
21
|
+
uses: ruby/setup-ruby@v1
|
22
|
+
with:
|
23
|
+
bundler-cache: true
|
24
|
+
- name: Bump version
|
25
|
+
uses: simplybusiness/dobby@v3.0.1
|
26
|
+
env:
|
27
|
+
DOBBY_APP_ID: ${{ secrets.DOBBY_APP_ID }}
|
28
|
+
DOBBY_PRIVATE_KEY: ${{ secrets.DOBBY_PRIVATE_KEY }}
|
29
|
+
VERSION_FILE_PATH: lib/flip_fab/version.rb
|
@@ -0,0 +1,46 @@
|
|
1
|
+
name: Publish Ruby Gem
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches: [ master ]
|
6
|
+
|
7
|
+
permissions:
|
8
|
+
contents: write
|
9
|
+
|
10
|
+
jobs:
|
11
|
+
build:
|
12
|
+
name: Build and Publish
|
13
|
+
runs-on: ubuntu-latest
|
14
|
+
steps:
|
15
|
+
- uses: actions/checkout@v3
|
16
|
+
- name: Set up Ruby
|
17
|
+
uses: ruby/setup-ruby@v1
|
18
|
+
with:
|
19
|
+
bundler-cache: true
|
20
|
+
- name: Publish to RubyGems
|
21
|
+
run: |
|
22
|
+
mkdir -p $HOME/.gem
|
23
|
+
touch $HOME/.gem/credentials
|
24
|
+
chmod 0600 $HOME/.gem/credentials
|
25
|
+
printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
|
26
|
+
gem build *.gemspec
|
27
|
+
gem push *.gem
|
28
|
+
env:
|
29
|
+
GEM_HOST_API_KEY: ${{secrets.RUBYGEMS_API_KEY}}
|
30
|
+
- name: Get Gem Version
|
31
|
+
id: get-gem-version
|
32
|
+
run: echo "::set-output name=GEM_VERSION::$(bundle exec ruby -e 'puts FlipFab::VERSION')"
|
33
|
+
- name: Create Release
|
34
|
+
uses: actions/github-script@v6
|
35
|
+
env:
|
36
|
+
GEM_VERSION: ${{ steps.get-gem-version.outputs.GEM_VERSION }}
|
37
|
+
with:
|
38
|
+
result-encoding: string
|
39
|
+
script: |
|
40
|
+
const { GEM_VERSION } = process.env
|
41
|
+
github.rest.repos.createRelease({
|
42
|
+
owner: context.repo.owner,
|
43
|
+
repo: context.repo.repo,
|
44
|
+
tag_name: GEM_VERSION,
|
45
|
+
generate_release_notes: true,
|
46
|
+
})
|
@@ -0,0 +1,19 @@
|
|
1
|
+
name: Check version
|
2
|
+
|
3
|
+
on:
|
4
|
+
pull_request:
|
5
|
+
branches:
|
6
|
+
- master
|
7
|
+
types: [opened, synchronize]
|
8
|
+
permissions:
|
9
|
+
contents: read
|
10
|
+
statuses: write
|
11
|
+
jobs:
|
12
|
+
build:
|
13
|
+
runs-on: ubuntu-18.04
|
14
|
+
|
15
|
+
steps:
|
16
|
+
- uses: simplybusiness/version-forget-me-not@v2.3.0
|
17
|
+
env:
|
18
|
+
ACCESS_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
19
|
+
VERSION_FILE_PATH: "lib/flip_fab/version.rb"
|
data/.gitignore
ADDED
data/.rubocop.yml
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
inherit_from: .rubocop_todo.yml
|
2
|
+
|
3
|
+
AllCops:
|
4
|
+
DisplayCopNames: true
|
5
|
+
DisplayStyleGuide: true
|
6
|
+
|
7
|
+
Lint/EndAlignment:
|
8
|
+
Enabled: true
|
9
|
+
|
10
|
+
Lint/UnusedMethodArgument:
|
11
|
+
Exclude:
|
12
|
+
- 'lib/flip_fab/persistence.rb'
|
13
|
+
|
14
|
+
Metrics/AbcSize:
|
15
|
+
Exclude:
|
16
|
+
- 'spec/support/test_app.rb'
|
17
|
+
|
18
|
+
Metrics/LineLength:
|
19
|
+
Enabled: false
|
20
|
+
|
21
|
+
Metrics/ModuleLength:
|
22
|
+
Exclude:
|
23
|
+
- 'spec/lib/flip_fab/contextual_feature_spec.rb'
|
24
|
+
|
25
|
+
Style/ClassAndModuleChildren:
|
26
|
+
Exclude:
|
27
|
+
- 'example/rails_app/test/test_helper.rb'
|
28
|
+
|
29
|
+
Style/Documentation:
|
30
|
+
Enabled: false
|
31
|
+
|
data/.rubocop_todo.yml
ADDED
@@ -0,0 +1,58 @@
|
|
1
|
+
# This configuration was generated by
|
2
|
+
# `rubocop --auto-gen-config`
|
3
|
+
# on 2021-11-22 12:55:16 UTC using RuboCop version 1.12.1.
|
4
|
+
# The point is for the user to remove these configuration records
|
5
|
+
# one by one as the offenses are removed from the code base.
|
6
|
+
# Note that changes in the inspected code, or installation of new
|
7
|
+
# versions of RuboCop, may require this file to be generated again.
|
8
|
+
|
9
|
+
# Offense count: 1
|
10
|
+
# Configuration parameters: Include.
|
11
|
+
# Include: **/*.gemspec
|
12
|
+
Gemspec/RequiredRubyVersion:
|
13
|
+
Exclude:
|
14
|
+
- 'flip_fab.gemspec'
|
15
|
+
|
16
|
+
# Offense count: 3
|
17
|
+
# Cop supports --auto-correct.
|
18
|
+
# Configuration parameters: AllowComments.
|
19
|
+
Lint/UselessMethodDefinition:
|
20
|
+
Exclude:
|
21
|
+
- 'lib/flip_fab/cookie_persistence.rb'
|
22
|
+
- 'spec/support/test_multiple_persistence.rb'
|
23
|
+
- 'spec/support/test_persistence.rb'
|
24
|
+
|
25
|
+
# Offense count: 13
|
26
|
+
# Configuration parameters: CountComments, CountAsOne, ExcludedMethods, IgnoredMethods.
|
27
|
+
# IgnoredMethods: refine
|
28
|
+
Metrics/BlockLength:
|
29
|
+
Max: 262
|
30
|
+
|
31
|
+
# Offense count: 58
|
32
|
+
# Cop supports --auto-correct.
|
33
|
+
# Configuration parameters: EnforcedStyle.
|
34
|
+
# SupportedStyles: always, always_true, never
|
35
|
+
Style/FrozenStringLiteralComment:
|
36
|
+
Enabled: false
|
37
|
+
|
38
|
+
# Offense count: 1
|
39
|
+
# Cop supports --auto-correct.
|
40
|
+
Style/HashTransformValues:
|
41
|
+
Exclude:
|
42
|
+
- 'lib/flip_fab/features_by_name.rb'
|
43
|
+
|
44
|
+
# Offense count: 1
|
45
|
+
# Cop supports --auto-correct.
|
46
|
+
# Configuration parameters: EnforcedStyle.
|
47
|
+
# SupportedStyles: literals, strict
|
48
|
+
Style/MutableConstant:
|
49
|
+
Exclude:
|
50
|
+
- 'lib/flip_fab/cookie_persistence.rb'
|
51
|
+
|
52
|
+
# Offense count: 1
|
53
|
+
# Cop supports --auto-correct.
|
54
|
+
# Configuration parameters: ConvertCodeThatCanStartToReturnNil, AllowedMethods.
|
55
|
+
# AllowedMethods: present?, blank?, presence, try, try!
|
56
|
+
Style/SafeNavigation:
|
57
|
+
Exclude:
|
58
|
+
- 'lib/flip_fab/cookie_persistence.rb'
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
3.0.4
|
@@ -0,0 +1,49 @@
|
|
1
|
+
version: v1.0
|
2
|
+
name: Semaphore v2 tests
|
3
|
+
agent:
|
4
|
+
machine:
|
5
|
+
type: e1-standard-2
|
6
|
+
os_image: ubuntu2004
|
7
|
+
auto_cancel:
|
8
|
+
running:
|
9
|
+
when: branch != 'master'
|
10
|
+
global_job_config:
|
11
|
+
prologue:
|
12
|
+
commands:
|
13
|
+
- checkout
|
14
|
+
- sem-version ruby $RUBY_VERSION -f
|
15
|
+
- gem update --system
|
16
|
+
- bundle config set --local path 'vendor/bundle'
|
17
|
+
- cache restore bundle-$RUBY_VERSION-$SEMAPHORE_GIT_BRANCH-$SEMAPHORE_WORKFLOW_ID,bundle-$RUBY_VERSION-$SEMAPHORE_GIT_BRANCH,bundle-$RUBY_VERSION-master
|
18
|
+
- bundle install
|
19
|
+
- bundle clean --force
|
20
|
+
- cache store bundle-$RUBY_VERSION-$SEMAPHORE_GIT_BRANCH-$SEMAPHORE_WORKFLOW_ID vendor/bundle
|
21
|
+
secrets:
|
22
|
+
- name: bundler-global
|
23
|
+
blocks:
|
24
|
+
- name: Semaphore v2 tests
|
25
|
+
dependencies: []
|
26
|
+
execution_time_limit:
|
27
|
+
minutes: 30
|
28
|
+
task:
|
29
|
+
jobs:
|
30
|
+
- name: Tests
|
31
|
+
matrix:
|
32
|
+
- env_var: RUBY_VERSION
|
33
|
+
values: ["2.7", "3.0"]
|
34
|
+
commands:
|
35
|
+
- bundle exec rspec
|
36
|
+
- name: Semaphore v2 Compliance
|
37
|
+
dependencies: []
|
38
|
+
skip:
|
39
|
+
when: branch = 'master'
|
40
|
+
execution_time_limit:
|
41
|
+
minutes: 10
|
42
|
+
task:
|
43
|
+
jobs:
|
44
|
+
- name: Rubocop
|
45
|
+
commands:
|
46
|
+
- bundle exec rubocop
|
47
|
+
env_vars:
|
48
|
+
- name: RUBY_VERSION
|
49
|
+
value: 2.6.5
|
data/CODEOWNERS
ADDED
data/Gemfile
CHANGED
@@ -2,15 +2,3 @@ source 'https://rubygems.org'
|
|
2
2
|
|
3
3
|
# Specify your gem's dependencies in flip_fab.gemspec
|
4
4
|
gemspec
|
5
|
-
|
6
|
-
group :development, :test do
|
7
|
-
gem 'pry-plus'
|
8
|
-
end
|
9
|
-
|
10
|
-
group :test do
|
11
|
-
gem 'rack'
|
12
|
-
gem 'rack-test'
|
13
|
-
gem 'rspec'
|
14
|
-
gem 'rutabaga'
|
15
|
-
gem 'timecop'
|
16
|
-
end
|
data/README.md
CHANGED
@@ -1,5 +1,4 @@
|
|
1
|
-
Flip Fab
|
2
|
-
--------
|
1
|
+
# Flip Fab
|
3
2
|
|
4
3
|
**Feature flipping... Made FaBuLoUs!**
|
5
4
|
|
@@ -166,3 +165,10 @@ Perform the following to try the example:
|
|
166
165
|
1. Start rails: `bundle exec rails s`
|
167
166
|
1. View the page with the feature disabled: `open 'http://localhost:3000/beavers?justin_beaver=disabled'`
|
168
167
|
1. View the page with the feature enabled: `open 'http://localhost:3000/beavers?justin_beaver=enabled'`
|
168
|
+
|
169
|
+
## Contributing
|
170
|
+
|
171
|
+
1. Make your changes in a branch
|
172
|
+
1. Update the version using semantic versioning in `lib/flip_fab/version.rb`
|
173
|
+
1. Once signed off, merge
|
174
|
+
1. The gem will automatically be pushed to gemstash
|
data/catalog-info.yaml
ADDED
data/example/rails_app/Gemfile
CHANGED
@@ -1,36 +1,19 @@
|
|
1
1
|
source 'https://rubygems.org'
|
2
2
|
|
3
3
|
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
|
4
|
-
gem 'rails', '
|
4
|
+
gem 'rails', '~> 5.0'
|
5
5
|
# Use sqlite3 as the database for Active Record
|
6
6
|
gem 'sqlite3'
|
7
7
|
# Use SCSS for stylesheets
|
8
|
-
gem 'sass-rails'
|
8
|
+
gem 'sass-rails'
|
9
9
|
# Use Uglifier as compressor for JavaScript assets
|
10
10
|
gem 'uglifier', '>= 1.3.0'
|
11
11
|
# Use CoffeeScript for .js.coffee assets and views
|
12
|
-
gem 'coffee-rails'
|
13
|
-
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
|
14
|
-
# gem 'therubyracer', platforms: :ruby
|
15
|
-
|
12
|
+
gem 'coffee-rails'
|
16
13
|
# Use jquery as the JavaScript library
|
17
14
|
gem 'jquery-rails'
|
18
|
-
# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
|
19
|
-
gem 'turbolinks'
|
20
|
-
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
|
21
|
-
gem 'jbuilder', '~> 2.0'
|
22
|
-
# bundle exec rake doc:rails generates the API under doc/api.
|
23
|
-
gem 'sdoc', '~> 0.4.0', group: :doc
|
24
|
-
|
25
|
-
# Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
|
26
|
-
gem 'spring', group: :development
|
27
|
-
|
28
|
-
# Use unicorn as the app server
|
29
|
-
gem 'unicorn'
|
30
|
-
|
31
|
-
# Use Capistrano for deployment
|
32
|
-
# gem 'capistrano-rails', group: :development
|
33
15
|
|
34
16
|
gem 'flip_fab', path: '../../'
|
35
17
|
|
18
|
+
gem 'rails-controller-testing', group: :test
|
36
19
|
gem 'rspec-rails', group: :test
|
data/example/rails_app/Rakefile
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# Add your own tasks in files placed in lib/tasks ending in .rake,
|
2
2
|
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
|
3
3
|
|
4
|
-
require File.expand_path('
|
4
|
+
require File.expand_path('config/application', __dir__)
|
5
5
|
|
6
6
|
Rails.application.load_tasks
|
@@ -1,5 +1,5 @@
|
|
1
1
|
class BeaversController < ApplicationController
|
2
|
-
before_action :set_beaver, only: [
|
2
|
+
before_action :set_beaver, only: %i[show edit update destroy]
|
3
3
|
|
4
4
|
# GET /beavers
|
5
5
|
# GET /beavers.json
|
@@ -9,8 +9,7 @@ class BeaversController < ApplicationController
|
|
9
9
|
|
10
10
|
# GET /beavers/1
|
11
11
|
# GET /beavers/1.json
|
12
|
-
def show
|
13
|
-
end
|
12
|
+
def show; end
|
14
13
|
|
15
14
|
# GET /beavers/new
|
16
15
|
def new
|
@@ -18,8 +17,7 @@ class BeaversController < ApplicationController
|
|
18
17
|
end
|
19
18
|
|
20
19
|
# GET /beavers/1/edit
|
21
|
-
def edit
|
22
|
-
end
|
20
|
+
def edit; end
|
23
21
|
|
24
22
|
# POST /beavers
|
25
23
|
# POST /beavers.json
|
@@ -62,13 +60,14 @@ class BeaversController < ApplicationController
|
|
62
60
|
end
|
63
61
|
|
64
62
|
private
|
65
|
-
# Use callbacks to share common setup or constraints between actions.
|
66
|
-
def set_beaver
|
67
|
-
@beaver = Beaver.find(params[:id])
|
68
|
-
end
|
69
63
|
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
64
|
+
# Use callbacks to share common setup or constraints between actions.
|
65
|
+
def set_beaver
|
66
|
+
@beaver = Beaver.find(params[:id])
|
67
|
+
end
|
68
|
+
|
69
|
+
# Never trust parameters from the scary internet, only allow the white list through.
|
70
|
+
def beaver_params
|
71
|
+
params.require(:beaver).permit(:name)
|
72
|
+
end
|
74
73
|
end
|
data/example/rails_app/bin/rails
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require File.expand_path('
|
1
|
+
require File.expand_path('boot', __dir__)
|
2
2
|
|
3
3
|
require 'rails/all'
|
4
4
|
|
@@ -20,6 +20,6 @@ module RailsApp
|
|
20
20
|
# config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
|
21
21
|
# config.i18n.default_locale = :de
|
22
22
|
|
23
|
-
config.eager_load_paths += %W
|
23
|
+
config.eager_load_paths += %W[#{config.root}/lib]
|
24
24
|
end
|
25
25
|
end
|
@@ -20,7 +20,7 @@ Rails.application.configure do
|
|
20
20
|
# config.action_dispatch.rack_cache = true
|
21
21
|
|
22
22
|
# Disable Rails's static asset server (Apache or nginx will already do this).
|
23
|
-
config.
|
23
|
+
config.public_file_server.enabled = false
|
24
24
|
|
25
25
|
# Compress JavaScripts and CSS.
|
26
26
|
config.assets.js_compressor = :uglifier
|
@@ -13,8 +13,8 @@ Rails.application.configure do
|
|
13
13
|
config.eager_load = false
|
14
14
|
|
15
15
|
# Configure static asset server for tests with Cache-Control for performance.
|
16
|
-
config.
|
17
|
-
config.
|
16
|
+
config.public_file_server.enabled = true
|
17
|
+
config.public_file_server.headers = { 'Cache-Control' => 'public, max-age=3600' }
|
18
18
|
|
19
19
|
# Show full error reports and disable caching.
|
20
20
|
config.consider_all_requests_local = true
|
data/example/rails_app/config.ru
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
# encoding: UTF-8
|
2
1
|
# This file is auto-generated from the current state of the database. Instead
|
3
2
|
# of editing this file, please use the migrations feature of Active Record to
|
4
3
|
# incrementally modify your database, and then regenerate this schema definition.
|
@@ -11,12 +10,10 @@
|
|
11
10
|
#
|
12
11
|
# It's strongly recommended that you check this file into your version control system.
|
13
12
|
|
14
|
-
ActiveRecord::Schema.define(version:
|
15
|
-
|
16
|
-
|
17
|
-
t.
|
18
|
-
t.datetime
|
19
|
-
t.datetime "updated_at"
|
13
|
+
ActiveRecord::Schema.define(version: 20_140_424_102_400) do
|
14
|
+
create_table 'beavers', force: true do |t|
|
15
|
+
t.string 'name'
|
16
|
+
t.datetime 'created_at'
|
17
|
+
t.datetime 'updated_at'
|
20
18
|
end
|
21
|
-
|
22
19
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# This file is copied to spec/ when you run 'rails generate rspec:install'
|
2
|
-
ENV[
|
2
|
+
ENV['RAILS_ENV'] ||= 'test'
|
3
3
|
require 'spec_helper'
|
4
|
-
require File.expand_path(
|
4
|
+
require File.expand_path('../config/environment', __dir__)
|
5
5
|
require 'rspec/rails'
|
6
6
|
# Add additional requires below this line. Rails is not loaded until this point!
|
7
7
|
|
@@ -5,43 +5,43 @@ class BeaversControllerTest < ActionController::TestCase
|
|
5
5
|
@beaver = beavers(:one)
|
6
6
|
end
|
7
7
|
|
8
|
-
test
|
8
|
+
test 'should get index' do
|
9
9
|
get :index
|
10
10
|
assert_response :success
|
11
11
|
assert_not_nil assigns(:beavers)
|
12
12
|
end
|
13
13
|
|
14
|
-
test
|
14
|
+
test 'should get new' do
|
15
15
|
get :new
|
16
16
|
assert_response :success
|
17
17
|
end
|
18
18
|
|
19
|
-
test
|
19
|
+
test 'should create beaver' do
|
20
20
|
assert_difference('Beaver.count') do
|
21
|
-
post :create, beaver: { name: @beaver.name }
|
21
|
+
post :create, params: { beaver: { name: @beaver.name } }
|
22
22
|
end
|
23
23
|
|
24
24
|
assert_redirected_to beaver_path(assigns(:beaver))
|
25
25
|
end
|
26
26
|
|
27
|
-
test
|
28
|
-
get :show, id: @beaver
|
27
|
+
test 'should show beaver' do
|
28
|
+
get :show, params: { id: @beaver }
|
29
29
|
assert_response :success
|
30
30
|
end
|
31
31
|
|
32
|
-
test
|
33
|
-
get :edit, id: @beaver
|
32
|
+
test 'should get edit' do
|
33
|
+
get :edit, params: { id: @beaver }
|
34
34
|
assert_response :success
|
35
35
|
end
|
36
36
|
|
37
|
-
test
|
38
|
-
patch :update, id: @beaver, beaver: { name: @beaver.name }
|
37
|
+
test 'should update beaver' do
|
38
|
+
patch :update, params: { id: @beaver, beaver: { name: @beaver.name } }
|
39
39
|
assert_redirected_to beaver_path(assigns(:beaver))
|
40
40
|
end
|
41
41
|
|
42
|
-
test
|
42
|
+
test 'should destroy beaver' do
|
43
43
|
assert_difference('Beaver.count', -1) do
|
44
|
-
delete :destroy, id: @beaver
|
44
|
+
delete :destroy, params: { id: @beaver }
|
45
45
|
end
|
46
46
|
|
47
47
|
assert_redirected_to beavers_path
|