Commit 1cce8c4bb1d2672ac210cbce5c660053aeb890de

Authored by Alessandro Beltrão
0 parents
Exists in master

Initial commit

Showing 67 changed files with 950 additions and 0 deletions   Show diff stats
.gitignore 0 → 100644
  1 +++ a/.gitignore
... ... @@ -0,0 +1,9 @@
  1 +.bundle/
  2 +log/*.log
  3 +pkg/
  4 +*.gem
  5 +test/dummy/db/*.sqlite3
  6 +test/dummy/db/*.sqlite3-journal
  7 +test/dummy/log/*.log
  8 +test/dummy/tmp/
  9 +test/dummy/.sass-cache
... ...
Gemfile 0 → 100644
  1 +++ a/Gemfile
... ... @@ -0,0 +1,15 @@
  1 +source 'https://rubygems.org'
  2 +
  3 +# Declare your gem's dependencies in webfinger_server.gemspec.
  4 +# Bundler will treat runtime dependencies like base dependencies, and
  5 +# development dependencies will be added by default to the :development group.
  6 +gemspec
  7 +
  8 +# Declare any dependencies that are still in development here instead of in
  9 +# your gemspec. These might include edge Rails or gems from your path or
  10 +# Git. Remember to move these dependencies to your gemspec before releasing
  11 +# your gem to rubygems.org.
  12 +
  13 +# To use a debugger
  14 +# gem 'byebug', group: [:development, :test]
  15 +
... ...
MIT-LICENSE 0 → 100644
  1 +++ a/MIT-LICENSE
... ... @@ -0,0 +1,21 @@
  1 +Copyright 2016 Alessandro Caetano
  2 +Copyright 2016 Lucas Kanashiro
  3 +
  4 +Permission is hereby granted, free of charge, to any person obtaining
  5 +a copy of this software and associated documentation files (the
  6 +"Software"), to deal in the Software without restriction, including
  7 +without limitation the rights to use, copy, modify, merge, publish,
  8 +distribute, sublicense, and/or sell copies of the Software, and to
  9 +permit persons to whom the Software is furnished to do so, subject to
  10 +the following conditions:
  11 +
  12 +The above copyright notice and this permission notice shall be
  13 +included in all copies or substantial portions of the Software.
  14 +
  15 +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  16 +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  17 +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
  18 +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
  19 +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
  20 +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
  21 +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
... ...
README.rdoc 0 → 100644
  1 +++ a/README.rdoc
... ... @@ -0,0 +1,34 @@
  1 += WebfingerServer
  2 +
  3 +Webfinger server side implementation, following RFC 7033. This implementation
  4 +generates JRD and add a new route to your Rails application.
  5 +
  6 +== How to use
  7 +
  8 +* Add gem 'webfinger_server' to your gemfile
  9 +
  10 +* Add the line below to build routes to webfinger:
  11 +
  12 +```mount WebfingerServer::Engine => '/.well-known'```
  13 +
  14 +== Contributing to webfinger-server
  15 +
  16 +* Check out the latest master to make sure the feature hasn't been implemented
  17 +or the bug hasn't been fixed yet.
  18 +* Check out the issue tracker to make sure someone already hasn't requested it
  19 +and/or contributed it.
  20 +* Fork the project.
  21 +* Start a feature/bugfix branch.
  22 +* Commit and push until you are happy with your contribution.
  23 +* Make sure to add tests for it. This is important so I don't break it in a
  24 +future version unintentionally.
  25 +* Please try not to mess with the Rakefile, version, or history. If you want to
  26 +have your own version, or is otherwise necessary, that is fine, but please
  27 +isolate to its own commit so I can cherry-pick around it.
  28 +
  29 +== Copyright
  30 +
  31 +Copyright (c) 2016 Lucas Kanashiro and Alessandro Caetano. See LICENSE.txt for
  32 +further details.
  33 +
  34 +
... ...
Rakefile 0 → 100644
  1 +++ a/Rakefile
... ... @@ -0,0 +1,37 @@
  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 +require 'rdoc/task'
  8 +
  9 +RDoc::Task.new(:rdoc) do |rdoc|
  10 + rdoc.rdoc_dir = 'rdoc'
  11 + rdoc.title = 'WebfingerServer'
  12 + rdoc.options << '--line-numbers'
  13 + rdoc.rdoc_files.include('README.rdoc')
  14 + rdoc.rdoc_files.include('lib/**/*.rb')
  15 +end
  16 +
  17 +APP_RAKEFILE = File.expand_path("../test/dummy/Rakefile", __FILE__)
  18 +load 'rails/tasks/engine.rake'
  19 +
  20 +
  21 +load 'rails/tasks/statistics.rake'
  22 +
  23 +
  24 +
  25 +Bundler::GemHelper.install_tasks
  26 +
  27 +require 'rake/testtask'
  28 +
  29 +Rake::TestTask.new(:test) do |t|
  30 + t.libs << 'lib'
  31 + t.libs << 'test'
  32 + t.pattern = 'test/**/*_test.rb'
  33 + t.verbose = false
  34 +end
  35 +
  36 +
  37 +task default: :test
... ...
app/assets/images/webfinger_server/.keep 0 → 100644
  1 +++ a/app/assets/images/webfinger_server/.keep
... ...
app/assets/javascripts/webfinger_server/application.js 0 → 100644
  1 +++ a/app/assets/javascripts/webfinger_server/application.js
... ... @@ -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 any plugin's vendor/assets/javascripts directory 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/rails/sprockets#sprockets-directives) for details
  11 +// about supported directives.
  12 +//
  13 +//= require_tree .
... ...
app/assets/javascripts/webfinger_server/webfinger_servers.js 0 → 100644
  1 +++ a/app/assets/javascripts/webfinger_server/webfinger_servers.js
... ... @@ -0,0 +1,2 @@
  1 +// Place all the behaviors and hooks related to the matching controller here.
  2 +// All this logic will automatically be available in application.js.
... ...
app/assets/stylesheets/webfinger_server/application.css 0 → 100644
  1 +++ a/app/assets/stylesheets/webfinger_server/application.css
... ... @@ -0,0 +1,15 @@
  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 any plugin's vendor/assets/stylesheets directory 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 bottom of the
  9 + * compiled file so the styles you add here take precedence over styles defined in any styles
  10 + * defined in the other CSS/SCSS files in this directory. It is generally better to create a new
  11 + * file per style scope.
  12 + *
  13 + *= require_tree .
  14 + *= require_self
  15 + */
... ...
app/assets/stylesheets/webfinger_server/webfinger_servers.css 0 → 100644
  1 +++ a/app/assets/stylesheets/webfinger_server/webfinger_servers.css
... ... @@ -0,0 +1,4 @@
  1 +/*
  2 + Place all the styles related to the matching controller here.
  3 + They will automatically be included in application.css.
  4 +*/
... ...
app/controllers/webfinger_server/application_controller.rb 0 → 100644
  1 +++ a/app/controllers/webfinger_server/application_controller.rb
... ... @@ -0,0 +1,5 @@
  1 +module WebfingerServer
  2 + class ApplicationController < ActionController::Base
  3 + protect_from_forgery with: :exception
  4 + end
  5 +end
... ...
app/controllers/webfinger_server/webfinger_servers_controller.rb 0 → 100644
  1 +++ a/app/controllers/webfinger_server/webfinger_servers_controller.rb
... ... @@ -0,0 +1,11 @@
  1 +require_dependency "webfinger_server/application_controller"
  2 +
  3 +module WebfingerServer
  4 + class WebfingerServersController < ApplicationController
  5 + def index
  6 + resource = params[:resource].match(/(?<scheme>^.*[^:]):(?<user>.*[^@])@(?<host>.*$)/i)
  7 + puts(resource.inspect)
  8 + render nothing: true
  9 + end
  10 + end
  11 +end
... ...
app/helpers/webfinger_server/application_helper.rb 0 → 100644
  1 +++ a/app/helpers/webfinger_server/application_helper.rb
... ... @@ -0,0 +1,4 @@
  1 +module WebfingerServer
  2 + module ApplicationHelper
  3 + end
  4 +end
... ...
app/helpers/webfinger_server/webfinger_servers_helper.rb 0 → 100644
  1 +++ a/app/helpers/webfinger_server/webfinger_servers_helper.rb
... ... @@ -0,0 +1,4 @@
  1 +module WebfingerServer
  2 + module WebfingerServersHelper
  3 + end
  4 +end
... ...
app/views/layouts/webfinger_server/application.html.erb 0 → 100644
  1 +++ a/app/views/layouts/webfinger_server/application.html.erb
... ... @@ -0,0 +1,14 @@
  1 +<!DOCTYPE html>
  2 +<html>
  3 +<head>
  4 + <title>WebfingerServer</title>
  5 + <%= stylesheet_link_tag "webfinger_server/application", media: "all" %>
  6 + <%= javascript_include_tag "webfinger_server/application" %>
  7 + <%= csrf_meta_tags %>
  8 +</head>
  9 +<body>
  10 +
  11 +<%= yield %>
  12 +
  13 +</body>
  14 +</html>
... ...
bin/rails 0 → 100755
  1 +++ a/bin/rails
... ... @@ -0,0 +1,12 @@
  1 +#!/usr/bin/env ruby
  2 +# This command will automatically be run when you run "rails" with Rails 4 gems installed from the root of your application.
  3 +
  4 +ENGINE_ROOT = File.expand_path('../..', __FILE__)
  5 +ENGINE_PATH = File.expand_path('../../lib/webfinger_server/engine', __FILE__)
  6 +
  7 +# Set up gems listed in the Gemfile.
  8 +ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
  9 +require 'bundler/setup' if File.exist?(ENV['BUNDLE_GEMFILE'])
  10 +
  11 +require 'rails/all'
  12 +require 'rails/engine/commands'
... ...
config/routes.rb 0 → 100644
  1 +++ a/config/routes.rb
... ... @@ -0,0 +1,3 @@
  1 +WebfingerServer::Engine.routes.draw do
  2 + get '/webfinger', to: 'webfinger_servers#index', as: :webfinger_servers
  3 +end
... ...
lib/tasks/webfinger_server_tasks.rake 0 → 100644
  1 +++ a/lib/tasks/webfinger_server_tasks.rake
... ... @@ -0,0 +1,4 @@
  1 +# desc "Explaining what the task does"
  2 +# task :webfinger_server do
  3 +# # Task goes here
  4 +# end
... ...
lib/webfinger_server.rb 0 → 100644
  1 +++ a/lib/webfinger_server.rb
... ... @@ -0,0 +1,4 @@
  1 +require "webfinger_server/engine"
  2 +
  3 +module WebfingerServer
  4 +end
... ...
lib/webfinger_server/engine.rb 0 → 100644
  1 +++ a/lib/webfinger_server/engine.rb
... ... @@ -0,0 +1,5 @@
  1 +module WebfingerServer
  2 + class Engine < ::Rails::Engine
  3 + isolate_namespace WebfingerServer
  4 + end
  5 +end
... ...
lib/webfinger_server/version.rb 0 → 100644
  1 +++ a/lib/webfinger_server/version.rb
... ... @@ -0,0 +1,3 @@
  1 +module WebfingerServer
  2 + VERSION = "0.0.1"
  3 +end
... ...
test/controllers/webfinger_server/webfinger_servers_controller_test.rb 0 → 100644
  1 +++ a/test/controllers/webfinger_server/webfinger_servers_controller_test.rb
... ... @@ -0,0 +1,13 @@
  1 +require 'test_helper'
  2 +
  3 +module WebfingerServer
  4 + class WebfingerServersControllerTest < ActionController::TestCase
  5 + setup do
  6 + @routes = Engine.routes
  7 + end
  8 +
  9 + # test "the truth" do
  10 + # assert true
  11 + # end
  12 + end
  13 +end
... ...
test/dummy/README.rdoc 0 → 100644
  1 +++ a/test/dummy/README.rdoc
... ... @@ -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 0 → 100644
  1 +++ a/test/dummy/Rakefile
... ... @@ -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 +Rails.application.load_tasks
... ...
test/dummy/app/assets/images/.keep 0 → 100644
  1 +++ a/test/dummy/app/assets/images/.keep
... ...
test/dummy/app/assets/javascripts/application.js 0 → 100644
  1 +++ a/test/dummy/app/assets/javascripts/application.js
... ... @@ -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 any plugin's vendor/assets/javascripts directory 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/rails/sprockets#sprockets-directives) for details
  11 +// about supported directives.
  12 +//
  13 +//= require_tree .
... ...
test/dummy/app/assets/stylesheets/application.css 0 → 100644
  1 +++ a/test/dummy/app/assets/stylesheets/application.css
... ... @@ -0,0 +1,15 @@
  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 any plugin's vendor/assets/stylesheets directory 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 bottom of the
  9 + * compiled file so the styles you add here take precedence over styles defined in any styles
  10 + * defined in the other CSS/SCSS files in this directory. It is generally better to create a new
  11 + * file per style scope.
  12 + *
  13 + *= require_tree .
  14 + *= require_self
  15 + */
... ...
test/dummy/app/controllers/application_controller.rb 0 → 100644
  1 +++ a/test/dummy/app/controllers/application_controller.rb
... ... @@ -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 0 → 100644
  1 +++ a/test/dummy/app/controllers/concerns/.keep
... ...
test/dummy/app/helpers/application_helper.rb 0 → 100644
  1 +++ a/test/dummy/app/helpers/application_helper.rb
... ... @@ -0,0 +1,2 @@
  1 +module ApplicationHelper
  2 +end
... ...
test/dummy/app/mailers/.keep 0 → 100644
  1 +++ a/test/dummy/app/mailers/.keep
... ...
test/dummy/app/models/.keep 0 → 100644
  1 +++ a/test/dummy/app/models/.keep
... ...
test/dummy/app/models/concerns/.keep 0 → 100644
  1 +++ a/test/dummy/app/models/concerns/.keep
... ...
test/dummy/app/views/layouts/application.html.erb 0 → 100644
  1 +++ a/test/dummy/app/views/layouts/application.html.erb
... ... @@ -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 0 → 100755
  1 +++ a/test/dummy/bin/bundle
... ... @@ -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 0 → 100755
  1 +++ a/test/dummy/bin/rails
... ... @@ -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 0 → 100755
  1 +++ a/test/dummy/bin/rake
... ... @@ -0,0 +1,4 @@
  1 +#!/usr/bin/env ruby
  2 +require_relative '../config/boot'
  3 +require 'rake'
  4 +Rake.application.run
... ...
test/dummy/bin/setup 0 → 100755
  1 +++ a/test/dummy/bin/setup
... ... @@ -0,0 +1,29 @@
  1 +#!/usr/bin/env ruby
  2 +require 'pathname'
  3 +
  4 +# path to your application root.
  5 +APP_ROOT = Pathname.new File.expand_path('../../', __FILE__)
  6 +
  7 +Dir.chdir APP_ROOT do
  8 + # This script is a starting point to setup your application.
  9 + # Add necessary setup steps to this file:
  10 +
  11 + puts "== Installing dependencies =="
  12 + system "gem install bundler --conservative"
  13 + system "bundle check || bundle install"
  14 +
  15 + # puts "\n== Copying sample files =="
  16 + # unless File.exist?("config/database.yml")
  17 + # system "cp config/database.yml.sample config/database.yml"
  18 + # end
  19 +
  20 + puts "\n== Preparing database =="
  21 + system "bin/rake db:setup"
  22 +
  23 + puts "\n== Removing old logs and tempfiles =="
  24 + system "rm -f log/*"
  25 + system "rm -rf tmp/cache"
  26 +
  27 + puts "\n== Restarting application server =="
  28 + system "touch tmp/restart.txt"
  29 +end
... ...
test/dummy/config.ru 0 → 100644
  1 +++ a/test/dummy/config.ru
... ... @@ -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 0 → 100644
  1 +++ a/test/dummy/config/application.rb
... ... @@ -0,0 +1,26 @@
  1 +require File.expand_path('../boot', __FILE__)
  2 +
  3 +require 'rails/all'
  4 +
  5 +Bundler.require(*Rails.groups)
  6 +require "webfinger_server"
  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 +
  22 + # Do not swallow errors in after_commit/after_rollback callbacks.
  23 + config.active_record.raise_in_transactional_callbacks = true
  24 + end
  25 +end
  26 +
... ...
test/dummy/config/boot.rb 0 → 100644
  1 +++ a/test/dummy/config/boot.rb
... ... @@ -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.exist?(ENV['BUNDLE_GEMFILE'])
  5 +$LOAD_PATH.unshift File.expand_path('../../../../lib', __FILE__)
... ...
test/dummy/config/database.yml 0 → 100644
  1 +++ a/test/dummy/config/database.yml
... ... @@ -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 +#
  7 +default: &default
  8 + adapter: sqlite3
  9 + pool: 5
  10 + timeout: 5000
  11 +
  12 +development:
  13 + <<: *default
  14 + database: db/development.sqlite3
  15 +
  16 +# Warning: The database defined as "test" will be erased and
  17 +# re-generated from your development database when you run "rake".
  18 +# Do not set this db to the same as development or production.
  19 +test:
  20 + <<: *default
  21 + database: db/test.sqlite3
  22 +
  23 +production:
  24 + <<: *default
  25 + database: db/production.sqlite3
... ...
test/dummy/config/environment.rb 0 → 100644
  1 +++ a/test/dummy/config/environment.rb
... ... @@ -0,0 +1,5 @@
  1 +# Load the Rails application.
  2 +require File.expand_path('../application', __FILE__)
  3 +
  4 +# Initialize the Rails application.
  5 +Rails.application.initialize!
... ...
test/dummy/config/environments/development.rb 0 → 100644
  1 +++ a/test/dummy/config/environments/development.rb
... ... @@ -0,0 +1,41 @@
  1 +Rails.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 +
  30 + # Asset digests allow you to set far-future HTTP expiration dates on all assets,
  31 + # yet still be able to expire them through the digest params.
  32 + config.assets.digest = true
  33 +
  34 + # Adds additional error checking when serving assets at runtime.
  35 + # Checks for improperly declared sprockets dependencies.
  36 + # Raises helpful error messages.
  37 + config.assets.raise_runtime_errors = true
  38 +
  39 + # Raises error for missing translations
  40 + # config.action_view.raise_on_missing_translations = true
  41 +end
... ...
test/dummy/config/environments/production.rb 0 → 100644
  1 +++ a/test/dummy/config/environments/production.rb
... ... @@ -0,0 +1,79 @@
  1 +Rails.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 threaded 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
  20 + # NGINX, varnish or squid.
  21 + # config.action_dispatch.rack_cache = true
  22 +
  23 + # Disable serving static files from the `/public` folder by default since
  24 + # Apache or NGINX already handles this.
  25 + config.serve_static_files = ENV['RAILS_SERVE_STATIC_FILES'].present?
  26 +
  27 + # Compress JavaScripts and CSS.
  28 + config.assets.js_compressor = :uglifier
  29 + # config.assets.css_compressor = :sass
  30 +
  31 + # Do not fallback to assets pipeline if a precompiled asset is missed.
  32 + config.assets.compile = false
  33 +
  34 + # Asset digests allow you to set far-future HTTP expiration dates on all assets,
  35 + # yet still be able to expire them through the digest params.
  36 + config.assets.digest = true
  37 +
  38 + # `config.assets.precompile` and `config.assets.version` have moved to config/initializers/assets.rb
  39 +
  40 + # Specifies the header that your server uses for sending files.
  41 + # config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache
  42 + # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX
  43 +
  44 + # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
  45 + # config.force_ssl = true
  46 +
  47 + # Use the lowest log level to ensure availability of diagnostic information
  48 + # when problems arise.
  49 + config.log_level = :debug
  50 +
  51 + # Prepend all log lines with the following tags.
  52 + # config.log_tags = [ :subdomain, :uuid ]
  53 +
  54 + # Use a different logger for distributed setups.
  55 + # config.logger = ActiveSupport::TaggedLogging.new(SyslogLogger.new)
  56 +
  57 + # Use a different cache store in production.
  58 + # config.cache_store = :mem_cache_store
  59 +
  60 + # Enable serving of images, stylesheets, and JavaScripts from an asset server.
  61 + # config.action_controller.asset_host = 'http://assets.example.com'
  62 +
  63 + # Ignore bad email addresses and do not raise email delivery errors.
  64 + # Set this to true and configure the email server for immediate delivery to raise delivery errors.
  65 + # config.action_mailer.raise_delivery_errors = false
  66 +
  67 + # Enable locale fallbacks for I18n (makes lookups for any locale fall back to
  68 + # the I18n.default_locale when a translation cannot be found).
  69 + config.i18n.fallbacks = true
  70 +
  71 + # Send deprecation notices to registered listeners.
  72 + config.active_support.deprecation = :notify
  73 +
  74 + # Use default logging formatter so that PID and timestamp are not suppressed.
  75 + config.log_formatter = ::Logger::Formatter.new
  76 +
  77 + # Do not dump schema after migrations.
  78 + config.active_record.dump_schema_after_migration = false
  79 +end
... ...
test/dummy/config/environments/test.rb 0 → 100644
  1 +++ a/test/dummy/config/environments/test.rb
... ... @@ -0,0 +1,42 @@
  1 +Rails.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 file server for tests with Cache-Control for performance.
  16 + config.serve_static_files = 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 + # Randomize the order test cases are executed.
  35 + config.active_support.test_order = :random
  36 +
  37 + # Print deprecation notices to the stderr.
  38 + config.active_support.deprecation = :stderr
  39 +
  40 + # Raises error for missing translations
  41 + # config.action_view.raise_on_missing_translations = true
  42 +end
... ...
test/dummy/config/initializers/assets.rb 0 → 100644
  1 +++ a/test/dummy/config/initializers/assets.rb
... ... @@ -0,0 +1,11 @@
  1 +# Be sure to restart your server when you modify this file.
  2 +
  3 +# Version of your assets, change this if you want to expire all your assets.
  4 +Rails.application.config.assets.version = '1.0'
  5 +
  6 +# Add additional assets to the asset load path
  7 +# Rails.application.config.assets.paths << Emoji.images_path
  8 +
  9 +# Precompile additional assets.
  10 +# application.js, application.css, and all non-JS/CSS in app/assets folder are already added.
  11 +# Rails.application.config.assets.precompile += %w( search.js )
... ...
test/dummy/config/initializers/backtrace_silencers.rb 0 → 100644
  1 +++ a/test/dummy/config/initializers/backtrace_silencers.rb
... ... @@ -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!
... ...
test/dummy/config/initializers/cookies_serializer.rb 0 → 100644
  1 +++ a/test/dummy/config/initializers/cookies_serializer.rb
... ... @@ -0,0 +1,3 @@
  1 +# Be sure to restart your server when you modify this file.
  2 +
  3 +Rails.application.config.action_dispatch.cookies_serializer = :json
... ...
test/dummy/config/initializers/filter_parameter_logging.rb 0 → 100644
  1 +++ a/test/dummy/config/initializers/filter_parameter_logging.rb
... ... @@ -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]
... ...
test/dummy/config/initializers/inflections.rb 0 → 100644
  1 +++ a/test/dummy/config/initializers/inflections.rb
... ... @@ -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
... ...
test/dummy/config/initializers/mime_types.rb 0 → 100644
  1 +++ a/test/dummy/config/initializers/mime_types.rb
... ... @@ -0,0 +1,4 @@
  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
... ...
test/dummy/config/initializers/session_store.rb 0 → 100644
  1 +++ a/test/dummy/config/initializers/session_store.rb
... ... @@ -0,0 +1,3 @@
  1 +# Be sure to restart your server when you modify this file.
  2 +
  3 +Rails.application.config.session_store :cookie_store, key: '_dummy_session'
... ...
test/dummy/config/initializers/wrap_parameters.rb 0 → 100644
  1 +++ a/test/dummy/config/initializers/wrap_parameters.rb
... ... @@ -0,0 +1,14 @@
  1 +# Be sure to restart your server when you modify this file.
  2 +
  3 +# This file contains settings for ActionController::ParamsWrapper which
  4 +# is enabled by default.
  5 +
  6 +# Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array.
  7 +ActiveSupport.on_load(:action_controller) do
  8 + wrap_parameters format: [:json] if respond_to?(:wrap_parameters)
  9 +end
  10 +
  11 +# To enable root element in JSON for ActiveRecord objects.
  12 +# ActiveSupport.on_load(:active_record) do
  13 +# self.include_root_in_json = true
  14 +# end
... ...
test/dummy/config/locales/en.yml 0 → 100644
  1 +++ a/test/dummy/config/locales/en.yml
... ... @@ -0,0 +1,23 @@
  1 +# Files in the config/locales directory are used for internationalization
  2 +# and are automatically loaded by Rails. If you want to use locales other
  3 +# than English, add the necessary files in this directory.
  4 +#
  5 +# To use the locales, use `I18n.t`:
  6 +#
  7 +# I18n.t 'hello'
  8 +#
  9 +# In views, this is aliased to just `t`:
  10 +#
  11 +# <%= t('hello') %>
  12 +#
  13 +# To use a different locale, set it with `I18n.locale`:
  14 +#
  15 +# I18n.locale = :es
  16 +#
  17 +# This would use the information in config/locales/es.yml.
  18 +#
  19 +# To learn more, please read the Rails Internationalization guide
  20 +# available at http://guides.rubyonrails.org/i18n.html.
  21 +
  22 +en:
  23 + hello: "Hello world"
... ...
test/dummy/config/routes.rb 0 → 100644
  1 +++ a/test/dummy/config/routes.rb
... ... @@ -0,0 +1,3 @@
  1 +Rails.application.routes.draw do
  2 + mount WebfingerServer::Engine => '/.well-known'
  3 +end
... ...
test/dummy/config/secrets.yml 0 → 100644
  1 +++ a/test/dummy/config/secrets.yml
... ... @@ -0,0 +1,22 @@
  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 the secrets in this file are kept private
  11 +# if you're sharing your code publicly.
  12 +
  13 +development:
  14 + secret_key_base: 3361481c01a97a8acff2b118172d46419a872c1d59df7553d4cd28370c8acc6f6f7f8774bdadb1394e550d2087d31139ef452d25b12e340b09f7fd2c68775d66
  15 +
  16 +test:
  17 + secret_key_base: a1f51ce6d32579f8d960e38aa3fd4ff1431c9f9893efc0630a5edfd5b6320e08fbfba77a1ad67debe3ef4bf05c9b16cb5a0ce6979a705c5866dd09cafa5bfa9a
  18 +
  19 +# Do not keep production secrets in the repository,
  20 +# instead read values from the environment.
  21 +production:
  22 + secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
... ...
test/dummy/lib/assets/.keep 0 → 100644
  1 +++ a/test/dummy/lib/assets/.keep
... ...
test/dummy/log/.keep 0 → 100644
  1 +++ a/test/dummy/log/.keep
... ...
test/dummy/public/404.html 0 → 100644
  1 +++ a/test/dummy/public/404.html
... ... @@ -0,0 +1,67 @@
  1 +<!DOCTYPE html>
  2 +<html>
  3 +<head>
  4 + <title>The page you were looking for doesn't exist (404)</title>
  5 + <meta name="viewport" content="width=device-width,initial-scale=1">
  6 + <style>
  7 + body {
  8 + background-color: #EFEFEF;
  9 + color: #2E2F30;
  10 + text-align: center;
  11 + font-family: arial, sans-serif;
  12 + margin: 0;
  13 + }
  14 +
  15 + div.dialog {
  16 + width: 95%;
  17 + max-width: 33em;
  18 + margin: 4em auto 0;
  19 + }
  20 +
  21 + div.dialog > div {
  22 + border: 1px solid #CCC;
  23 + border-right-color: #999;
  24 + border-left-color: #999;
  25 + border-bottom-color: #BBB;
  26 + border-top: #B00100 solid 4px;
  27 + border-top-left-radius: 9px;
  28 + border-top-right-radius: 9px;
  29 + background-color: white;
  30 + padding: 7px 12% 0;
  31 + box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
  32 + }
  33 +
  34 + h1 {
  35 + font-size: 100%;
  36 + color: #730E15;
  37 + line-height: 1.5em;
  38 + }
  39 +
  40 + div.dialog > p {
  41 + margin: 0 0 1em;
  42 + padding: 1em;
  43 + background-color: #F7F7F7;
  44 + border: 1px solid #CCC;
  45 + border-right-color: #999;
  46 + border-left-color: #999;
  47 + border-bottom-color: #999;
  48 + border-bottom-left-radius: 4px;
  49 + border-bottom-right-radius: 4px;
  50 + border-top-color: #DADADA;
  51 + color: #666;
  52 + box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
  53 + }
  54 + </style>
  55 +</head>
  56 +
  57 +<body>
  58 + <!-- This file lives in public/404.html -->
  59 + <div class="dialog">
  60 + <div>
  61 + <h1>The page you were looking for doesn't exist.</h1>
  62 + <p>You may have mistyped the address or the page may have moved.</p>
  63 + </div>
  64 + <p>If you are the application owner check the logs for more information.</p>
  65 + </div>
  66 +</body>
  67 +</html>
... ...
test/dummy/public/422.html 0 → 100644
  1 +++ a/test/dummy/public/422.html
... ... @@ -0,0 +1,67 @@
  1 +<!DOCTYPE html>
  2 +<html>
  3 +<head>
  4 + <title>The change you wanted was rejected (422)</title>
  5 + <meta name="viewport" content="width=device-width,initial-scale=1">
  6 + <style>
  7 + body {
  8 + background-color: #EFEFEF;
  9 + color: #2E2F30;
  10 + text-align: center;
  11 + font-family: arial, sans-serif;
  12 + margin: 0;
  13 + }
  14 +
  15 + div.dialog {
  16 + width: 95%;
  17 + max-width: 33em;
  18 + margin: 4em auto 0;
  19 + }
  20 +
  21 + div.dialog > div {
  22 + border: 1px solid #CCC;
  23 + border-right-color: #999;
  24 + border-left-color: #999;
  25 + border-bottom-color: #BBB;
  26 + border-top: #B00100 solid 4px;
  27 + border-top-left-radius: 9px;
  28 + border-top-right-radius: 9px;
  29 + background-color: white;
  30 + padding: 7px 12% 0;
  31 + box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
  32 + }
  33 +
  34 + h1 {
  35 + font-size: 100%;
  36 + color: #730E15;
  37 + line-height: 1.5em;
  38 + }
  39 +
  40 + div.dialog > p {
  41 + margin: 0 0 1em;
  42 + padding: 1em;
  43 + background-color: #F7F7F7;
  44 + border: 1px solid #CCC;
  45 + border-right-color: #999;
  46 + border-left-color: #999;
  47 + border-bottom-color: #999;
  48 + border-bottom-left-radius: 4px;
  49 + border-bottom-right-radius: 4px;
  50 + border-top-color: #DADADA;
  51 + color: #666;
  52 + box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
  53 + }
  54 + </style>
  55 +</head>
  56 +
  57 +<body>
  58 + <!-- This file lives in public/422.html -->
  59 + <div class="dialog">
  60 + <div>
  61 + <h1>The change you wanted was rejected.</h1>
  62 + <p>Maybe you tried to change something you didn't have access to.</p>
  63 + </div>
  64 + <p>If you are the application owner check the logs for more information.</p>
  65 + </div>
  66 +</body>
  67 +</html>
... ...
test/dummy/public/500.html 0 → 100644
  1 +++ a/test/dummy/public/500.html
... ... @@ -0,0 +1,66 @@
  1 +<!DOCTYPE html>
  2 +<html>
  3 +<head>
  4 + <title>We're sorry, but something went wrong (500)</title>
  5 + <meta name="viewport" content="width=device-width,initial-scale=1">
  6 + <style>
  7 + body {
  8 + background-color: #EFEFEF;
  9 + color: #2E2F30;
  10 + text-align: center;
  11 + font-family: arial, sans-serif;
  12 + margin: 0;
  13 + }
  14 +
  15 + div.dialog {
  16 + width: 95%;
  17 + max-width: 33em;
  18 + margin: 4em auto 0;
  19 + }
  20 +
  21 + div.dialog > div {
  22 + border: 1px solid #CCC;
  23 + border-right-color: #999;
  24 + border-left-color: #999;
  25 + border-bottom-color: #BBB;
  26 + border-top: #B00100 solid 4px;
  27 + border-top-left-radius: 9px;
  28 + border-top-right-radius: 9px;
  29 + background-color: white;
  30 + padding: 7px 12% 0;
  31 + box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
  32 + }
  33 +
  34 + h1 {
  35 + font-size: 100%;
  36 + color: #730E15;
  37 + line-height: 1.5em;
  38 + }
  39 +
  40 + div.dialog > p {
  41 + margin: 0 0 1em;
  42 + padding: 1em;
  43 + background-color: #F7F7F7;
  44 + border: 1px solid #CCC;
  45 + border-right-color: #999;
  46 + border-left-color: #999;
  47 + border-bottom-color: #999;
  48 + border-bottom-left-radius: 4px;