Skip to content

Commit c01256f

Browse files
committed
Test the transform in a Rails env
Very basic test of a dummy app (as created by `rails plugin new`).
1 parent 64412d5 commit c01256f

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+671
-0
lines changed

.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,4 @@
11
*.gem
22
Gemfile.lock
3+
*.log
4+
test/dummy/tmp

Rakefile

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
begin
2+
require 'bundler/setup'
3+
rescue LoadError
4+
puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
5+
end
6+
7+
8+
Bundler::GemHelper.install_tasks
9+
10+
require 'rake/testtask'
11+
12+
Rake::TestTask.new(:test) do |t|
13+
t.libs << 'lib'
14+
t.libs << 'test'
15+
t.pattern = 'test/**/*_test.rb'
16+
t.verbose = false
17+
end
18+
19+
20+
task default: :test
21+

test/dummy/README.rdoc

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
== README
2+
3+
This README would normally document whatever steps are necessary to get the
4+
application up and running.
5+
6+
Things you may want to cover:
7+
8+
* Ruby version
9+
10+
* System dependencies
11+
12+
* Configuration
13+
14+
* Database creation
15+
16+
* Database initialization
17+
18+
* How to run the test suite
19+
20+
* Services (job queues, cache servers, search engines, etc.)
21+
22+
* Deployment instructions
23+
24+
* ...
25+
26+
27+
Please feel free to use a different markup language if you do not plan to run
28+
<tt>rake doc:app</tt>.

test/dummy/Rakefile

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# Add your own tasks in files placed in lib/tasks ending in .rake,
2+
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
3+
4+
require File.expand_path('../config/application', __FILE__)
5+
6+
Dummy::Application.load_tasks

test/dummy/app/assets/images/.keep

Whitespace-only changes.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
// This is a manifest file that'll be compiled into application.js, which will include all the files
2+
// listed below.
3+
//
4+
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
5+
// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
6+
//
7+
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
8+
// compiled file.
9+
//
10+
// Read Sprockets README (https://github.com/sstephenson/sprockets#sprockets-directives) for details
11+
// about supported directives.
12+
//
13+
//= require_tree .
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
/** @jsx React.DOM */
2+
<div/>;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
/*
2+
* This is a manifest file that'll be compiled into application.css, which will include all the files
3+
* listed below.
4+
*
5+
* Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
6+
* or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path.
7+
*
8+
* You're free to add application-wide styles to this file and they'll appear at the top of the
9+
* compiled file, but it's generally better to create a new file per style scope.
10+
*
11+
*= require_self
12+
*= require_tree .
13+
*/
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
class ApplicationController < ActionController::Base
2+
# Prevent CSRF attacks by raising an exception.
3+
# For APIs, you may want to use :null_session instead.
4+
protect_from_forgery with: :exception
5+
end

test/dummy/app/controllers/concerns/.keep

Whitespace-only changes.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
module ApplicationHelper
2+
end

test/dummy/app/mailers/.keep

Whitespace-only changes.

test/dummy/app/models/.keep

Whitespace-only changes.

test/dummy/app/models/concerns/.keep

Whitespace-only changes.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<title>Dummy</title>
5+
<%= stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => true %>
6+
<%= javascript_include_tag "application", "data-turbolinks-track" => true %>
7+
<%= csrf_meta_tags %>
8+
</head>
9+
<body>
10+
11+
<%= yield %>
12+
13+
</body>
14+
</html>

test/dummy/bin/bundle

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#!/usr/bin/env ruby
2+
ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
3+
load Gem.bin_path('bundler', 'bundle')

test/dummy/bin/rails

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
#!/usr/bin/env ruby
2+
APP_PATH = File.expand_path('../../config/application', __FILE__)
3+
require_relative '../config/boot'
4+
require 'rails/commands'

test/dummy/bin/rake

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
#!/usr/bin/env ruby
2+
require_relative '../config/boot'
3+
require 'rake'
4+
Rake.application.run

test/dummy/config.ru

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# This file is used by Rack-based servers to start the application.
2+
3+
require ::File.expand_path('../config/environment', __FILE__)
4+
run Rails.application

test/dummy/config/application.rb

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
require File.expand_path('../boot', __FILE__)
2+
3+
require 'rails/all'
4+
5+
Bundler.require(*Rails.groups)
6+
require "react-rails"
7+
8+
module Dummy
9+
class Application < Rails::Application
10+
# Settings in config/environments/* take precedence over those specified here.
11+
# Application configuration should go into files in config/initializers
12+
# -- all .rb files in that directory are automatically loaded.
13+
14+
# Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
15+
# Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
16+
# config.time_zone = 'Central Time (US & Canada)'
17+
18+
# The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
19+
# config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
20+
# config.i18n.default_locale = :de
21+
config.react.variant = :production
22+
end
23+
end
24+

test/dummy/config/boot.rb

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Set up gems listed in the Gemfile.
2+
ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../../../Gemfile', __FILE__)
3+
4+
require 'bundler/setup' if File.exists?(ENV['BUNDLE_GEMFILE'])
5+
$LOAD_PATH.unshift File.expand_path('../../../../lib', __FILE__)

test/dummy/config/database.yml

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# SQLite version 3.x
2+
# gem install sqlite3
3+
#
4+
# Ensure the SQLite 3 gem is defined in your Gemfile
5+
# gem 'sqlite3'
6+
development:
7+
adapter: sqlite3
8+
database: db/development.sqlite3
9+
pool: 5
10+
timeout: 5000
11+
12+
# Warning: The database defined as "test" will be erased and
13+
# re-generated from your development database when you run "rake".
14+
# Do not set this db to the same as development or production.
15+
test:
16+
adapter: sqlite3
17+
database: db/test.sqlite3
18+
pool: 5
19+
timeout: 5000
20+
21+
production:
22+
adapter: sqlite3
23+
database: db/production.sqlite3
24+
pool: 5
25+
timeout: 5000

test/dummy/config/environment.rb

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Load the Rails application.
2+
require File.expand_path('../application', __FILE__)
3+
4+
# Initialize the Rails application.
5+
Dummy::Application.initialize!
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
Dummy::Application.configure do
2+
# Settings specified here will take precedence over those in config/application.rb.
3+
4+
# In the development environment your application's code is reloaded on
5+
# every request. This slows down response time but is perfect for development
6+
# since you don't have to restart the web server when you make code changes.
7+
config.cache_classes = false
8+
9+
# Do not eager load code on boot.
10+
config.eager_load = false
11+
12+
# Show full error reports and disable caching.
13+
config.consider_all_requests_local = true
14+
config.action_controller.perform_caching = false
15+
16+
# Don't care if the mailer can't send.
17+
config.action_mailer.raise_delivery_errors = false
18+
19+
# Print deprecation notices to the Rails logger.
20+
config.active_support.deprecation = :log
21+
22+
# Raise an error on page load if there are pending migrations
23+
config.active_record.migration_error = :page_load
24+
25+
# Debug mode disables concatenation and preprocessing of assets.
26+
# This option may cause significant delays in view rendering with a large
27+
# number of complex assets.
28+
config.assets.debug = true
29+
end
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
Dummy::Application.configure do
2+
# Settings specified here will take precedence over those in config/application.rb.
3+
4+
# Code is not reloaded between requests.
5+
config.cache_classes = true
6+
7+
# Eager load code on boot. This eager loads most of Rails and
8+
# your application in memory, allowing both thread web servers
9+
# and those relying on copy on write to perform better.
10+
# Rake tasks automatically ignore this option for performance.
11+
config.eager_load = true
12+
13+
# Full error reports are disabled and caching is turned on.
14+
config.consider_all_requests_local = false
15+
config.action_controller.perform_caching = true
16+
17+
# Enable Rack::Cache to put a simple HTTP cache in front of your application
18+
# Add `rack-cache` to your Gemfile before enabling this.
19+
# For large-scale production use, consider using a caching reverse proxy like nginx, varnish or squid.
20+
# config.action_dispatch.rack_cache = true
21+
22+
# Disable Rails's static asset server (Apache or nginx will already do this).
23+
config.serve_static_assets = false
24+
25+
# Compress JavaScripts and CSS.
26+
config.assets.js_compressor = :uglifier
27+
# config.assets.css_compressor = :sass
28+
29+
# Do not fallback to assets pipeline if a precompiled asset is missed.
30+
config.assets.compile = false
31+
32+
# Generate digests for assets URLs.
33+
config.assets.digest = true
34+
35+
# Version of your assets, change this if you want to expire all your assets.
36+
config.assets.version = '1.0'
37+
38+
# Specifies the header that your server uses for sending files.
39+
# config.action_dispatch.x_sendfile_header = "X-Sendfile" # for apache
40+
# config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for nginx
41+
42+
# Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
43+
# config.force_ssl = true
44+
45+
# Set to :debug to see everything in the log.
46+
config.log_level = :info
47+
48+
# Prepend all log lines with the following tags.
49+
# config.log_tags = [ :subdomain, :uuid ]
50+
51+
# Use a different logger for distributed setups.
52+
# config.logger = ActiveSupport::TaggedLogging.new(SyslogLogger.new)
53+
54+
# Use a different cache store in production.
55+
# config.cache_store = :mem_cache_store
56+
57+
# Enable serving of images, stylesheets, and JavaScripts from an asset server.
58+
# config.action_controller.asset_host = "http://assets.example.com"
59+
60+
# Precompile additional assets.
61+
# application.js, application.css, and all non-JS/CSS in app/assets folder are already added.
62+
# config.assets.precompile += %w( search.js )
63+
64+
# Ignore bad email addresses and do not raise email delivery errors.
65+
# Set this to true and configure the email server for immediate delivery to raise delivery errors.
66+
# config.action_mailer.raise_delivery_errors = false
67+
68+
# Enable locale fallbacks for I18n (makes lookups for any locale fall back to
69+
# the I18n.default_locale when a translation can not be found).
70+
config.i18n.fallbacks = true
71+
72+
# Send deprecation notices to registered listeners.
73+
config.active_support.deprecation = :notify
74+
75+
# Disable automatic flushing of the log to improve performance.
76+
# config.autoflush_log = false
77+
78+
# Use default logging formatter so that PID and timestamp are not suppressed.
79+
config.log_formatter = ::Logger::Formatter.new
80+
end
+36
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
Dummy::Application.configure do
2+
# Settings specified here will take precedence over those in config/application.rb.
3+
4+
# The test environment is used exclusively to run your application's
5+
# test suite. You never need to work with it otherwise. Remember that
6+
# your test database is "scratch space" for the test suite and is wiped
7+
# and recreated between test runs. Don't rely on the data there!
8+
config.cache_classes = true
9+
10+
# Do not eager load code on boot. This avoids loading your whole application
11+
# just for the purpose of running a single test. If you are using a tool that
12+
# preloads Rails for running tests, you may have to set it to true.
13+
config.eager_load = false
14+
15+
# Configure static asset server for tests with Cache-Control for performance.
16+
config.serve_static_assets = true
17+
config.static_cache_control = "public, max-age=3600"
18+
19+
# Show full error reports and disable caching.
20+
config.consider_all_requests_local = true
21+
config.action_controller.perform_caching = false
22+
23+
# Raise exceptions instead of rendering exception templates.
24+
config.action_dispatch.show_exceptions = false
25+
26+
# Disable request forgery protection in test environment.
27+
config.action_controller.allow_forgery_protection = false
28+
29+
# Tell Action Mailer not to deliver emails to the real world.
30+
# The :test delivery method accumulates sent emails in the
31+
# ActionMailer::Base.deliveries array.
32+
config.action_mailer.delivery_method = :test
33+
34+
# Print deprecation notices to the stderr.
35+
config.active_support.deprecation = :stderr
36+
end
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Be sure to restart your server when you modify this file.
2+
3+
# You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces.
4+
# Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ }
5+
6+
# You can also remove all the silencers if you're trying to debug a problem that might stem from framework code.
7+
# Rails.backtrace_cleaner.remove_silencers!
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# Be sure to restart your server when you modify this file.
2+
3+
# Configure sensitive parameters which will be filtered from the log file.
4+
Rails.application.config.filter_parameters += [:password]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# Be sure to restart your server when you modify this file.
2+
3+
# Add new inflection rules using the following format. Inflections
4+
# are locale specific, and you may define rules for as many different
5+
# locales as you wish. All of these examples are active by default:
6+
# ActiveSupport::Inflector.inflections(:en) do |inflect|
7+
# inflect.plural /^(ox)$/i, '\1en'
8+
# inflect.singular /^(ox)en/i, '\1'
9+
# inflect.irregular 'person', 'people'
10+
# inflect.uncountable %w( fish sheep )
11+
# end
12+
13+
# These inflection rules are supported but not enabled by default:
14+
# ActiveSupport::Inflector.inflections(:en) do |inflect|
15+
# inflect.acronym 'RESTful'
16+
# end
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Be sure to restart your server when you modify this file.
2+
3+
# Add new mime types for use in respond_to blocks:
4+
# Mime::Type.register "text/richtext", :rtf
5+
# Mime::Type.register_alias "text/html", :iphone
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# Be sure to restart your server when you modify this file.
2+
3+
# Your secret key is used for verifying the integrity of signed cookies.
4+
# If you change this key, all old signed cookies will become invalid!
5+
6+
# Make sure the secret is at least 30 characters and all random,
7+
# no regular words or you'll be exposed to dictionary attacks.
8+
# You can use `rake secret` to generate a secure secret key.
9+
10+
# Make sure your secret_key_base is kept private
11+
# if you're sharing your code publicly.
12+
Dummy::Application.config.secret_key_base = '43fa5672451bbd0a171668e625edc433eb00eeeb14c2606546e262e499ab853cfb532998d4809abe5019bf13888863e3a2c7d5cf7757de7a2b1fb50826d9874e'

0 commit comments

Comments
 (0)