cmor_contact 0.0.1.pre
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 +7 -0
- data/MIT-LICENSE +20 -0
- data/README.md +32 -0
- data/Rakefile +19 -0
- data/app/assets/config/cmor_contact_manifest.js +2 -0
- data/app/assets/javascripts/cmor/contact/application.js +13 -0
- data/app/assets/javascripts/cmor/contact/application/keep.js +0 -0
- data/app/assets/stylesheets/cmor/contact/application.css +15 -0
- data/app/assets/stylesheets/cmor/contact/application/keep.css +0 -0
- data/app/controllers/cmor/contact/application_controller.rb +7 -0
- data/app/controllers/cmor/contact/contact_requests_controller.rb +57 -0
- data/app/helpers/cmor/contact/application_helper.rb +6 -0
- data/app/jobs/cmor/contact/application_job.rb +6 -0
- data/app/jobs/cmor/contact/notify_new_contact_request_job.rb +25 -0
- data/app/mailers/cmor/contact/application_mailer.rb +8 -0
- data/app/mailers/cmor/contact/contact_request_mailer.rb +31 -0
- data/app/models/cmor/contact/application_record.rb +7 -0
- data/app/models/cmor/contact/contact_request.rb +36 -0
- data/app/views/cmor/contact/contact_request_mailer/notify.html.haml +7 -0
- data/app/views/cmor/contact/contact_request_mailer/notify.text.erb +5 -0
- data/app/views/cmor/contact/contact_requests/_form.haml +6 -0
- data/app/views/cmor/contact/contact_requests/_form_errors.haml +6 -0
- data/app/views/cmor/contact/contact_requests/new.haml +8 -0
- data/app/views/layouts/cmor/contact/application.html.erb +14 -0
- data/app/views/layouts/cmor/contact/mailer.html.erb +13 -0
- data/app/views/layouts/cmor/contact/mailer.text.erb +1 -0
- data/config/locales/de.yml +50 -0
- data/config/locales/en.yml +50 -0
- data/config/routes.rb +9 -0
- data/db/migrate/20170813142704_create_cmor_contact_contact_requests.rb +15 -0
- data/lib/cmor/contact.rb +10 -0
- data/lib/cmor/contact/configuration.rb +60 -0
- data/lib/cmor/contact/engine.rb +16 -0
- data/lib/cmor/contact/version.rb +7 -0
- data/lib/cmor_contact.rb +3 -0
- data/lib/generators/cmor/contact/install/install_generator.rb +26 -0
- data/lib/generators/cmor/contact/install/templates/initializer.rb +83 -0
- data/lib/generators/cmor/contact/install/templates/routes.source +3 -0
- data/lib/tasks/cmor_contact_tasks.rake +4 -0
- data/spec/dummy/config/initializers/content_security_policy.rb +25 -0
- data/spec/dummy/config/initializers/i18n.rb +2 -0
- data/spec/dummy/config/storage.yml +34 -0
- data/spec/dummy/db/development.sqlite3 +0 -0
- data/spec/dummy/db/migrate/20190325174020_create_active_storage_tables.active_storage.rb +27 -0
- data/spec/dummy/db/migrate/20190325174040_create_cmor_contact_contact_requests.cmor_contact.rb +16 -0
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/log/development.log +108 -0
- data/spec/dummy/log/test.log +345 -0
- data/spec/dummy/tmp/development_secret.txt +1 -0
- data/spec/dummy~/Rakefile +6 -0
- data/spec/dummy~/app/assets/config/manifest.js +5 -0
- data/spec/dummy~/app/assets/javascripts/application.js +13 -0
- data/spec/dummy~/app/assets/javascripts/cable.js +13 -0
- data/spec/dummy~/app/assets/stylesheets/application.css +15 -0
- data/spec/dummy~/app/channels/application_cable/channel.rb +4 -0
- data/spec/dummy~/app/channels/application_cable/connection.rb +4 -0
- data/spec/dummy~/app/controllers/application_controller.rb +3 -0
- data/spec/dummy~/app/helpers/application_helper.rb +2 -0
- data/spec/dummy~/app/jobs/application_job.rb +2 -0
- data/spec/dummy~/app/mailers/application_mailer.rb +4 -0
- data/spec/dummy~/app/models/application_record.rb +3 -0
- data/spec/dummy~/app/views/layouts/application.html.erb +14 -0
- data/spec/dummy~/app/views/layouts/mailer.html.erb +13 -0
- data/spec/dummy~/app/views/layouts/mailer.text.erb +1 -0
- data/spec/dummy~/bin/bundle +3 -0
- data/spec/dummy~/bin/rails +4 -0
- data/spec/dummy~/bin/rake +4 -0
- data/spec/dummy~/bin/setup +38 -0
- data/spec/dummy~/bin/update +29 -0
- data/spec/dummy~/bin/yarn +11 -0
- data/spec/dummy~/config.ru +5 -0
- data/spec/dummy~/config/application.rb +26 -0
- data/spec/dummy~/config/boot.rb +5 -0
- data/spec/dummy~/config/cable.yml +10 -0
- data/spec/dummy~/config/database.yml +25 -0
- data/spec/dummy~/config/environment.rb +5 -0
- data/spec/dummy~/config/environments/development.rb +54 -0
- data/spec/dummy~/config/environments/production.rb +91 -0
- data/spec/dummy~/config/environments/test.rb +42 -0
- data/spec/dummy~/config/initializers/application_controller_renderer.rb +6 -0
- data/spec/dummy~/config/initializers/assets.rb +14 -0
- data/spec/dummy~/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy~/config/initializers/cmor_contact.rb +83 -0
- data/spec/dummy~/config/initializers/cookies_serializer.rb +5 -0
- data/spec/dummy~/config/initializers/filter_parameter_logging.rb +4 -0
- data/spec/dummy~/config/initializers/inflections.rb +16 -0
- data/spec/dummy~/config/initializers/mime_types.rb +4 -0
- data/spec/dummy~/config/initializers/wrap_parameters.rb +14 -0
- data/spec/dummy~/config/locales/en.yml +33 -0
- data/spec/dummy~/config/puma.rb +56 -0
- data/spec/dummy~/config/routes.rb +3 -0
- data/spec/dummy~/config/secrets.yml +32 -0
- data/spec/dummy~/config/spring.rb +6 -0
- data/spec/dummy~/db/development.sqlite3 +0 -0
- data/spec/dummy~/db/migrate/20170813150718_create_cmor_contact_contact_requests.cmor_contact.rb +16 -0
- data/spec/dummy~/db/schema.rb +27 -0
- data/spec/dummy~/db/test.sqlite3 +0 -0
- data/spec/dummy~/log/test.log +0 -0
- data/spec/dummy~/package.json +5 -0
- data/spec/dummy~/public/404.html +67 -0
- data/spec/dummy~/public/422.html +67 -0
- data/spec/dummy~/public/500.html +66 -0
- data/spec/dummy~/public/apple-touch-icon-precomposed.png +0 -0
- data/spec/dummy~/public/apple-touch-icon.png +0 -0
- data/spec/dummy~/public/favicon.ico +0 -0
- data/spec/factories/cmor_contact_contact_requests.rb +10 -0
- data/spec/fixtures/cmor/contact/contact_request_mailer/notify +3 -0
- data/spec/jobs/cmor/contact/notify_new_contact_request_job_spec.rb +22 -0
- data/spec/mailers/cmor/contact/contact_request_mailer_spec.rb +24 -0
- data/spec/mailers/previews/cmor/contact/contact_request_mailer_preview.rb +11 -0
- data/spec/models/cmor/contact/contact_request_spec.rb +48 -0
- data/spec/models/generic_spec.rb +49 -0
- data/spec/models/i18n_spec.rb +40 -0
- data/spec/rails_helper.rb +62 -0
- data/spec/spec_helper.rb +96 -0
- data/spec/support/action_mailer.rb +13 -0
- data/spec/support/active_job.rb +9 -0
- data/spec/support/capybara.rb +1 -0
- data/spec/support/factory_bot.rb +9 -0
- data/spec/support/rao-shoulda_matchers.rb +5 -0
- data/spec/support/shoulda_matchers.rb +8 -0
- metadata +429 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
en:
|
|
2
|
+
classes:
|
|
3
|
+
cmor/contact/engine: Contact
|
|
4
|
+
activerecord:
|
|
5
|
+
models:
|
|
6
|
+
cmor/contact/contact_request:
|
|
7
|
+
one: Contact Request
|
|
8
|
+
other: Contact Requests
|
|
9
|
+
attributes:
|
|
10
|
+
cmor/contact/contact_request:
|
|
11
|
+
id: ID
|
|
12
|
+
accept_terms_of_service: 'I hereby allow the site owner to use my personal data for the purpose of answering this request.'
|
|
13
|
+
name: Name
|
|
14
|
+
email: E-Mail
|
|
15
|
+
phone: Phone
|
|
16
|
+
ip_address: IP Address
|
|
17
|
+
message: Message
|
|
18
|
+
notified_at: Notified at
|
|
19
|
+
created_at: Created at
|
|
20
|
+
updated_at: Updated at
|
|
21
|
+
additional_actions: Additional Actions
|
|
22
|
+
cmor:
|
|
23
|
+
contact:
|
|
24
|
+
contact_requests:
|
|
25
|
+
new:
|
|
26
|
+
title: "Contact Request"
|
|
27
|
+
contact_request_mailer:
|
|
28
|
+
notify:
|
|
29
|
+
subject: "[%{application_name}] New contact request"
|
|
30
|
+
title: "New contact request"
|
|
31
|
+
flash:
|
|
32
|
+
cmor:
|
|
33
|
+
contact:
|
|
34
|
+
contact_requests:
|
|
35
|
+
create:
|
|
36
|
+
notice: "Your contact request has been delivered."
|
|
37
|
+
helpers:
|
|
38
|
+
submit:
|
|
39
|
+
contact_request:
|
|
40
|
+
create: Submit
|
|
41
|
+
routes:
|
|
42
|
+
cmor_contact_engine: contact
|
|
43
|
+
contact_requests: request
|
|
44
|
+
simple_form:
|
|
45
|
+
placeholders:
|
|
46
|
+
contact_request:
|
|
47
|
+
name: "John Doe"
|
|
48
|
+
email: "john.doe@example.com"
|
|
49
|
+
message: "Hi Dave..."
|
|
50
|
+
phone: "+1-541-754-3010"
|
data/config/routes.rb
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
class CreateCmorContactContactRequests < ActiveRecord::Migration[5.1]
|
|
2
|
+
def change
|
|
3
|
+
create_table :cmor_contact_contact_requests do |t|
|
|
4
|
+
t.string :name
|
|
5
|
+
t.string :email
|
|
6
|
+
t.string :phone
|
|
7
|
+
t.string :ip_address
|
|
8
|
+
t.text :message
|
|
9
|
+
t.boolean :accept_terms_of_service
|
|
10
|
+
t.timestamp :notified_at
|
|
11
|
+
|
|
12
|
+
t.timestamps
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
data/lib/cmor/contact.rb
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
require 'active_support/core_ext/module/delegation'
|
|
2
|
+
require 'active_support/core_ext/module/attribute_accessors'
|
|
3
|
+
|
|
4
|
+
module Cmor
|
|
5
|
+
module Contact
|
|
6
|
+
module Configuration
|
|
7
|
+
def configure
|
|
8
|
+
yield self
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
mattr_accessor :input_name_css_classes do
|
|
12
|
+
'form-control'
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
mattr_accessor :input_email_css_classes do
|
|
16
|
+
'form-control'
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
mattr_accessor :input_phone_css_classes do
|
|
20
|
+
'form-control'
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
mattr_accessor :input_message_css_classes do
|
|
24
|
+
'form-control'
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
mattr_accessor :input_terms_of_service_css_classes do
|
|
28
|
+
''
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
mattr_accessor :form_actions_wrapper_css_classes do
|
|
32
|
+
'controls form-actions well'
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
mattr_accessor :recipients do
|
|
36
|
+
{}
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
mattr_accessor :sender do
|
|
40
|
+
->(mail_form) { %("#{mail_form.name}" <#{mail_form.email}>) }
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
mattr_accessor :base_controller do
|
|
44
|
+
'ApplicationController'
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
mattr_accessor :additional_contact_information do
|
|
48
|
+
nil
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
mattr_accessor :after_create_url do
|
|
52
|
+
->(controller) { controller.root_path }
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def recipients=(recipients)
|
|
56
|
+
@@recipients = HashWithIndifferentAccess.new(recipients)
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
module Cmor
|
|
2
|
+
module Contact
|
|
3
|
+
class Engine < ::Rails::Engine
|
|
4
|
+
isolate_namespace Cmor::Contact
|
|
5
|
+
|
|
6
|
+
config.generators do |g|
|
|
7
|
+
g.test_framework :rspec, fixture: true
|
|
8
|
+
g.fixture_replacement :factory_girl, dir: 'spec/factories'
|
|
9
|
+
# g.form_builder :simple_form
|
|
10
|
+
# g.template_engine :haml
|
|
11
|
+
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
data/lib/cmor_contact.rb
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
module Cmor
|
|
2
|
+
module Contact
|
|
3
|
+
module Generators
|
|
4
|
+
class InstallGenerator < Rails::Generators::Base
|
|
5
|
+
desc 'Generates the intializer'
|
|
6
|
+
|
|
7
|
+
source_root File.expand_path('../templates', __FILE__)
|
|
8
|
+
|
|
9
|
+
attr_reader :base_controller_class_name
|
|
10
|
+
|
|
11
|
+
def initialize(*args)
|
|
12
|
+
super
|
|
13
|
+
@base_controller_class_name = ENV.fetch('BASE_CONTROLLER_CLASS_NAME') { '::ApplicationController' }
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def generate_initializer
|
|
17
|
+
template 'initializer.rb', 'config/initializers/cmor_contact.rb'
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def generate_routes
|
|
21
|
+
route File.read(File.join(File.expand_path('../templates', __FILE__), 'routes.source'))
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
Cmor::Contact.configure do |config|
|
|
2
|
+
# Configure your contact requiest recipients here.
|
|
3
|
+
#
|
|
4
|
+
# You can specify multiple recipients and multiple environments.
|
|
5
|
+
#
|
|
6
|
+
# Default:
|
|
7
|
+
#
|
|
8
|
+
# config.recipients = {
|
|
9
|
+
# development: %w( info@development.example.com ),
|
|
10
|
+
# test: %w( info@test.example.com ),
|
|
11
|
+
# production: %w( info@production.example.com )
|
|
12
|
+
# }
|
|
13
|
+
#
|
|
14
|
+
config.recipients = {
|
|
15
|
+
development: %w( info@development.example.com ),
|
|
16
|
+
test: %w( info@test.example.com ),
|
|
17
|
+
production: %w( info@production.example.com )
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
# Configure your input field css classes here.
|
|
21
|
+
#
|
|
22
|
+
# Default: config.input_name_css_classes = 'form-control'
|
|
23
|
+
#
|
|
24
|
+
config.input_name_css_classes = 'form-control'
|
|
25
|
+
|
|
26
|
+
# Configure your input field css classes here.
|
|
27
|
+
#
|
|
28
|
+
# Default: config.input_email_css_classes = 'form-control'
|
|
29
|
+
#
|
|
30
|
+
config.input_email_css_classes = 'form-control'
|
|
31
|
+
|
|
32
|
+
# Configure your input field css classes here.
|
|
33
|
+
#
|
|
34
|
+
# Default: config.input_phone_css_classes = 'form-control'
|
|
35
|
+
#
|
|
36
|
+
config.input_phone_css_classes = 'form-control'
|
|
37
|
+
|
|
38
|
+
# Configure your input field css classes here.
|
|
39
|
+
#
|
|
40
|
+
# Default: config.input_message_css_classes = 'form-control'
|
|
41
|
+
#
|
|
42
|
+
config.input_message_css_classes = 'form-control'
|
|
43
|
+
|
|
44
|
+
# Configure your input field css classes here.
|
|
45
|
+
#
|
|
46
|
+
# Default: config.input_terms_of_service_css_classes = 'form-control'
|
|
47
|
+
#
|
|
48
|
+
config.input_terms_of_service_css_classes = ''
|
|
49
|
+
|
|
50
|
+
# Configure your form action wrapper div css classes here.
|
|
51
|
+
#
|
|
52
|
+
# Default: config.form_actions_wrapper_css_classes = 'controls form-actions well'
|
|
53
|
+
#
|
|
54
|
+
config.form_actions_wrapper_css_classes = 'controls form-actions well'
|
|
55
|
+
|
|
56
|
+
# set the base controller for the contact form
|
|
57
|
+
#
|
|
58
|
+
# Default: config.base_controller = '<%= base_controller_class_name %>'
|
|
59
|
+
#
|
|
60
|
+
config.base_controller = '<%= base_controller_class_name %>'
|
|
61
|
+
|
|
62
|
+
# Add additional information to the contact form. This will be printed
|
|
63
|
+
# between the heading and the form. You should provide a proc, or
|
|
64
|
+
# an object, that reponds to #call. The view ist provided as parameter.
|
|
65
|
+
#
|
|
66
|
+
# Example: config.additional_contact_information = lambda { |view| view.render 'additional_contact_information' }
|
|
67
|
+
#
|
|
68
|
+
# Default: config.additional_contact_information = nil
|
|
69
|
+
#
|
|
70
|
+
config.additional_contact_information = nil
|
|
71
|
+
|
|
72
|
+
# url to redirect to after successful contact request.
|
|
73
|
+
#
|
|
74
|
+
# default: config.after_create_url = ->(controller) { controller.root_path }
|
|
75
|
+
#
|
|
76
|
+
config.after_create_url = ->(controller) { controller.root_path }
|
|
77
|
+
|
|
78
|
+
# Set the sender address.
|
|
79
|
+
#
|
|
80
|
+
# default: config.sender = ->(mail_form) { %("#{mail_form.name}" <#{mail_form.email}>) }
|
|
81
|
+
#
|
|
82
|
+
config.sender = ->(mail_form) { %("#{mail_form.name}" <#{mail_form.email}>) }
|
|
83
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Be sure to restart your server when you modify this file.
|
|
2
|
+
|
|
3
|
+
# Define an application-wide content security policy
|
|
4
|
+
# For further information see the following documentation
|
|
5
|
+
# https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy
|
|
6
|
+
|
|
7
|
+
# Rails.application.config.content_security_policy do |policy|
|
|
8
|
+
# policy.default_src :self, :https
|
|
9
|
+
# policy.font_src :self, :https, :data
|
|
10
|
+
# policy.img_src :self, :https, :data
|
|
11
|
+
# policy.object_src :none
|
|
12
|
+
# policy.script_src :self, :https
|
|
13
|
+
# policy.style_src :self, :https
|
|
14
|
+
|
|
15
|
+
# # Specify URI for violation reports
|
|
16
|
+
# # policy.report_uri "/csp-violation-report-endpoint"
|
|
17
|
+
# end
|
|
18
|
+
|
|
19
|
+
# If you are using UJS then enable automatic nonce generation
|
|
20
|
+
# Rails.application.config.content_security_policy_nonce_generator = -> request { SecureRandom.base64(16) }
|
|
21
|
+
|
|
22
|
+
# Report CSP violations to a specified URI
|
|
23
|
+
# For further information see the following documentation:
|
|
24
|
+
# https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy-Report-Only
|
|
25
|
+
# Rails.application.config.content_security_policy_report_only = true
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
test:
|
|
2
|
+
service: Disk
|
|
3
|
+
root: <%= Rails.root.join("tmp/storage") %>
|
|
4
|
+
|
|
5
|
+
local:
|
|
6
|
+
service: Disk
|
|
7
|
+
root: <%= Rails.root.join("storage") %>
|
|
8
|
+
|
|
9
|
+
# Use rails credentials:edit to set the AWS secrets (as aws:access_key_id|secret_access_key)
|
|
10
|
+
# amazon:
|
|
11
|
+
# service: S3
|
|
12
|
+
# access_key_id: <%= Rails.application.credentials.dig(:aws, :access_key_id) %>
|
|
13
|
+
# secret_access_key: <%= Rails.application.credentials.dig(:aws, :secret_access_key) %>
|
|
14
|
+
# region: us-east-1
|
|
15
|
+
# bucket: your_own_bucket
|
|
16
|
+
|
|
17
|
+
# Remember not to checkin your GCS keyfile to a repository
|
|
18
|
+
# google:
|
|
19
|
+
# service: GCS
|
|
20
|
+
# project: your_project
|
|
21
|
+
# credentials: <%= Rails.root.join("path/to/gcs.keyfile") %>
|
|
22
|
+
# bucket: your_own_bucket
|
|
23
|
+
|
|
24
|
+
# Use rails credentials:edit to set the Azure Storage secret (as azure_storage:storage_access_key)
|
|
25
|
+
# microsoft:
|
|
26
|
+
# service: AzureStorage
|
|
27
|
+
# storage_account_name: your_account_name
|
|
28
|
+
# storage_access_key: <%= Rails.application.credentials.dig(:azure_storage, :storage_access_key) %>
|
|
29
|
+
# container: your_container_name
|
|
30
|
+
|
|
31
|
+
# mirror:
|
|
32
|
+
# service: Mirror
|
|
33
|
+
# primary: local
|
|
34
|
+
# mirrors: [ amazon, google, microsoft ]
|
|
Binary file
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# This migration comes from active_storage (originally 20170806125915)
|
|
2
|
+
class CreateActiveStorageTables < ActiveRecord::Migration[5.2]
|
|
3
|
+
def change
|
|
4
|
+
create_table :active_storage_blobs do |t|
|
|
5
|
+
t.string :key, null: false
|
|
6
|
+
t.string :filename, null: false
|
|
7
|
+
t.string :content_type
|
|
8
|
+
t.text :metadata
|
|
9
|
+
t.bigint :byte_size, null: false
|
|
10
|
+
t.string :checksum, null: false
|
|
11
|
+
t.datetime :created_at, null: false
|
|
12
|
+
|
|
13
|
+
t.index [ :key ], unique: true
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
create_table :active_storage_attachments do |t|
|
|
17
|
+
t.string :name, null: false
|
|
18
|
+
t.references :record, null: false, polymorphic: true, index: false
|
|
19
|
+
t.references :blob, null: false
|
|
20
|
+
|
|
21
|
+
t.datetime :created_at, null: false
|
|
22
|
+
|
|
23
|
+
t.index [ :record_type, :record_id, :name, :blob_id ], name: "index_active_storage_attachments_uniqueness", unique: true
|
|
24
|
+
t.foreign_key :active_storage_blobs, column: :blob_id
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
data/spec/dummy/db/migrate/20190325174040_create_cmor_contact_contact_requests.cmor_contact.rb
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# This migration comes from cmor_contact (originally 20170813142704)
|
|
2
|
+
class CreateCmorContactContactRequests < ActiveRecord::Migration[5.1]
|
|
3
|
+
def change
|
|
4
|
+
create_table :cmor_contact_contact_requests do |t|
|
|
5
|
+
t.string :name
|
|
6
|
+
t.string :email
|
|
7
|
+
t.string :phone
|
|
8
|
+
t.string :ip_address
|
|
9
|
+
t.text :message
|
|
10
|
+
t.boolean :accept_terms_of_service
|
|
11
|
+
t.timestamp :notified_at
|
|
12
|
+
|
|
13
|
+
t.timestamps
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
Binary file
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
[1m[35m (0.2ms)[0m [1m[34mSELECT sqlite_version(*)[0m
|
|
2
|
+
↳ bin/rails:4
|
|
3
|
+
[1m[35m (5.9ms)[0m [1m[35mCREATE TABLE "schema_migrations" ("version" varchar NOT NULL PRIMARY KEY)[0m
|
|
4
|
+
↳ bin/rails:4
|
|
5
|
+
[1m[35m (5.7ms)[0m [1m[35mCREATE TABLE "ar_internal_metadata" ("key" varchar NOT NULL PRIMARY KEY, "value" varchar, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL)[0m
|
|
6
|
+
↳ bin/rails:4
|
|
7
|
+
[1m[35m (0.4ms)[0m [1m[34mSELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC[0m
|
|
8
|
+
↳ bin/rails:4
|
|
9
|
+
Migrating to CreateActiveStorageTables (20190325174020)
|
|
10
|
+
[1m[35m (0.1ms)[0m [1m[36mbegin transaction[0m
|
|
11
|
+
↳ bin/rails:4
|
|
12
|
+
[1m[35m (0.8ms)[0m [1m[35mCREATE TABLE "active_storage_blobs" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "key" varchar NOT NULL, "filename" varchar NOT NULL, "content_type" varchar, "metadata" text, "byte_size" bigint NOT NULL, "checksum" varchar NOT NULL, "created_at" datetime NOT NULL)[0m
|
|
13
|
+
↳ db/migrate/20190325174020_create_active_storage_tables.active_storage.rb:4
|
|
14
|
+
[1m[35m (0.3ms)[0m [1m[35mCREATE UNIQUE INDEX "index_active_storage_blobs_on_key" ON "active_storage_blobs" ("key")[0m
|
|
15
|
+
↳ db/migrate/20190325174020_create_active_storage_tables.active_storage.rb:4
|
|
16
|
+
[1m[35m (0.4ms)[0m [1m[35mCREATE TABLE "active_storage_attachments" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "record_type" varchar NOT NULL, "record_id" integer NOT NULL, "blob_id" integer NOT NULL, "created_at" datetime NOT NULL, CONSTRAINT "fk_rails_c3b3935057"
|
|
17
|
+
FOREIGN KEY ("blob_id")
|
|
18
|
+
REFERENCES "active_storage_blobs" ("id")
|
|
19
|
+
)[0m
|
|
20
|
+
↳ db/migrate/20190325174020_create_active_storage_tables.active_storage.rb:16
|
|
21
|
+
[1m[35m (0.2ms)[0m [1m[35mCREATE INDEX "index_active_storage_attachments_on_blob_id" ON "active_storage_attachments" ("blob_id")[0m
|
|
22
|
+
↳ db/migrate/20190325174020_create_active_storage_tables.active_storage.rb:16
|
|
23
|
+
[1m[35m (0.3ms)[0m [1m[35mCREATE UNIQUE INDEX "index_active_storage_attachments_uniqueness" ON "active_storage_attachments" ("record_type", "record_id", "name", "blob_id")[0m
|
|
24
|
+
↳ db/migrate/20190325174020_create_active_storage_tables.active_storage.rb:16
|
|
25
|
+
[1m[36mActiveRecord::SchemaMigration Create (0.3ms)[0m [1m[32mINSERT INTO "schema_migrations" ("version") VALUES (?)[0m [["version", "20190325174020"]]
|
|
26
|
+
↳ bin/rails:4
|
|
27
|
+
[1m[35m (11.2ms)[0m [1m[36mcommit transaction[0m
|
|
28
|
+
↳ bin/rails:4
|
|
29
|
+
Migrating to CreateCmorContactContactRequests (20190325174040)
|
|
30
|
+
[1m[35m (0.2ms)[0m [1m[36mbegin transaction[0m
|
|
31
|
+
↳ bin/rails:4
|
|
32
|
+
[1m[35m (0.7ms)[0m [1m[35mCREATE TABLE "cmor_contact_contact_requests" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "email" varchar, "phone" varchar, "ip_address" varchar, "message" text, "accept_terms_of_service" boolean, "notified_at" datetime, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL)[0m
|
|
33
|
+
↳ db/migrate/20190325174040_create_cmor_contact_contact_requests.cmor_contact.rb:4
|
|
34
|
+
[1m[36mActiveRecord::SchemaMigration Create (0.3ms)[0m [1m[32mINSERT INTO "schema_migrations" ("version") VALUES (?)[0m [["version", "20190325174040"]]
|
|
35
|
+
↳ bin/rails:4
|
|
36
|
+
[1m[35m (18.3ms)[0m [1m[36mcommit transaction[0m
|
|
37
|
+
↳ bin/rails:4
|
|
38
|
+
[1m[36mActiveRecord::InternalMetadata Load (0.3ms)[0m [1m[34mSELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = ? LIMIT ?[0m [["key", "environment"], ["LIMIT", 1]]
|
|
39
|
+
↳ bin/rails:4
|
|
40
|
+
[1m[35m (0.1ms)[0m [1m[36mbegin transaction[0m
|
|
41
|
+
↳ bin/rails:4
|
|
42
|
+
[1m[36mActiveRecord::InternalMetadata Create (0.6ms)[0m [1m[32mINSERT INTO "ar_internal_metadata" ("key", "value", "created_at", "updated_at") VALUES (?, ?, ?, ?)[0m [["key", "environment"], ["value", "development"], ["created_at", "2019-03-25 17:40:40.573893"], ["updated_at", "2019-03-25 17:40:40.573893"]]
|
|
43
|
+
↳ bin/rails:4
|
|
44
|
+
[1m[35m (9.7ms)[0m [1m[36mcommit transaction[0m
|
|
45
|
+
↳ bin/rails:4
|
|
46
|
+
[1m[35m (0.2ms)[0m [1m[34mSELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC[0m
|
|
47
|
+
↳ bin/rails:4
|
|
48
|
+
[1m[35m (2.6ms)[0m [1m[34mSELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC[0m
|
|
49
|
+
↳ bin/rails:4
|
|
50
|
+
[1m[35m (0.2ms)[0m [1m[34mSELECT "ar_internal_metadata"."value" FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = ?[0m [["key", "environment"]]
|
|
51
|
+
↳ bin/rails:4
|
|
52
|
+
[1m[35m (0.1ms)[0m [1m[34mSELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC[0m
|
|
53
|
+
↳ bin/rails:4
|
|
54
|
+
[1m[35m (0.2ms)[0m [1m[34mSELECT "ar_internal_metadata"."value" FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = ?[0m [["key", "environment"]]
|
|
55
|
+
↳ bin/rails:4
|
|
56
|
+
[1m[35m (0.2ms)[0m [1m[34mSELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC[0m
|
|
57
|
+
↳ bin/rails:4
|
|
58
|
+
[1m[35m (0.3ms)[0m [1m[34mSELECT "ar_internal_metadata"."value" FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = ?[0m [["key", "environment"]]
|
|
59
|
+
↳ bin/rails:4
|
|
60
|
+
[1m[35m (0.2ms)[0m [1m[35mDROP TABLE IF EXISTS "active_storage_attachments"[0m
|
|
61
|
+
↳ db/schema.rb:15
|
|
62
|
+
[1m[35m (0.3ms)[0m [1m[34mSELECT sqlite_version(*)[0m
|
|
63
|
+
↳ db/schema.rb:15
|
|
64
|
+
[1m[35m (17.3ms)[0m [1m[35mCREATE TABLE "active_storage_attachments" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar NOT NULL, "record_type" varchar NOT NULL, "record_id" integer NOT NULL, "blob_id" integer NOT NULL, "created_at" datetime NOT NULL)[0m
|
|
65
|
+
↳ db/schema.rb:15
|
|
66
|
+
[1m[35m (5.6ms)[0m [1m[35mCREATE INDEX "index_active_storage_attachments_on_blob_id" ON "active_storage_attachments" ("blob_id")[0m
|
|
67
|
+
↳ db/schema.rb:15
|
|
68
|
+
[1m[35m (5.1ms)[0m [1m[35mCREATE UNIQUE INDEX "index_active_storage_attachments_uniqueness" ON "active_storage_attachments" ("record_type", "record_id", "name", "blob_id")[0m
|
|
69
|
+
↳ db/schema.rb:15
|
|
70
|
+
[1m[35m (0.4ms)[0m [1m[35mDROP TABLE IF EXISTS "active_storage_blobs"[0m
|
|
71
|
+
↳ db/schema.rb:25
|
|
72
|
+
[1m[35m (29.9ms)[0m [1m[35mCREATE TABLE "active_storage_blobs" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "key" varchar NOT NULL, "filename" varchar NOT NULL, "content_type" varchar, "metadata" text, "byte_size" bigint NOT NULL, "checksum" varchar NOT NULL, "created_at" datetime NOT NULL)[0m
|
|
73
|
+
↳ db/schema.rb:25
|
|
74
|
+
[1m[35m (15.2ms)[0m [1m[35mCREATE UNIQUE INDEX "index_active_storage_blobs_on_key" ON "active_storage_blobs" ("key")[0m
|
|
75
|
+
↳ db/schema.rb:25
|
|
76
|
+
[1m[35m (0.3ms)[0m [1m[35mDROP TABLE IF EXISTS "cmor_contact_contact_requests"[0m
|
|
77
|
+
↳ db/schema.rb:36
|
|
78
|
+
[1m[35m (15.5ms)[0m [1m[35mCREATE TABLE "cmor_contact_contact_requests" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "email" varchar, "phone" varchar, "ip_address" varchar, "message" text, "accept_terms_of_service" boolean, "notified_at" datetime, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL)[0m
|
|
79
|
+
↳ db/schema.rb:36
|
|
80
|
+
[1m[35m (4.8ms)[0m [1m[35mCREATE TABLE "schema_migrations" ("version" varchar NOT NULL PRIMARY KEY)[0m
|
|
81
|
+
↳ db/schema.rb:13
|
|
82
|
+
[1m[35m (0.3ms)[0m [1m[34mSELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC[0m
|
|
83
|
+
↳ db/schema.rb:13
|
|
84
|
+
[1m[35m (5.1ms)[0m [1m[32mINSERT INTO "schema_migrations" (version) VALUES (20190325174040)[0m
|
|
85
|
+
↳ db/schema.rb:13
|
|
86
|
+
[1m[35m (4.9ms)[0m [1m[32mINSERT INTO "schema_migrations" (version) VALUES
|
|
87
|
+
(20190325174020);
|
|
88
|
+
|
|
89
|
+
[0m
|
|
90
|
+
↳ db/schema.rb:13
|
|
91
|
+
[1m[35m (4.6ms)[0m [1m[35mCREATE TABLE "ar_internal_metadata" ("key" varchar NOT NULL PRIMARY KEY, "value" varchar, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL)[0m
|
|
92
|
+
↳ db/schema.rb:13
|
|
93
|
+
[1m[36mActiveRecord::InternalMetadata Load (0.4ms)[0m [1m[34mSELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = ? LIMIT ?[0m [["key", "environment"], ["LIMIT", 1]]
|
|
94
|
+
↳ db/schema.rb:13
|
|
95
|
+
[1m[35m (0.1ms)[0m [1m[36mbegin transaction[0m
|
|
96
|
+
↳ db/schema.rb:13
|
|
97
|
+
[1m[36mActiveRecord::InternalMetadata Create (0.3ms)[0m [1m[32mINSERT INTO "ar_internal_metadata" ("key", "value", "created_at", "updated_at") VALUES (?, ?, ?, ?)[0m [["key", "environment"], ["value", "development"], ["created_at", "2019-03-25 17:40:40.777560"], ["updated_at", "2019-03-25 17:40:40.777560"]]
|
|
98
|
+
↳ db/schema.rb:13
|
|
99
|
+
[1m[35m (3.3ms)[0m [1m[36mcommit transaction[0m
|
|
100
|
+
↳ db/schema.rb:13
|
|
101
|
+
[1m[36mActiveRecord::InternalMetadata Load (0.1ms)[0m [1m[34mSELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" = ? LIMIT ?[0m [["key", "environment"], ["LIMIT", 1]]
|
|
102
|
+
↳ bin/rails:4
|
|
103
|
+
[1m[35m (0.1ms)[0m [1m[36mbegin transaction[0m
|
|
104
|
+
↳ bin/rails:4
|
|
105
|
+
[1m[36mActiveRecord::InternalMetadata Update (0.3ms)[0m [1m[33mUPDATE "ar_internal_metadata" SET "value" = ?, "updated_at" = ? WHERE "ar_internal_metadata"."key" = ?[0m [["value", "test"], ["updated_at", "2019-03-25 17:40:40.787516"], ["key", "environment"]]
|
|
106
|
+
↳ bin/rails:4
|
|
107
|
+
[1m[35m (4.3ms)[0m [1m[36mcommit transaction[0m
|
|
108
|
+
↳ bin/rails:4
|