Commit 1cce8c4bb1d2672ac210cbce5c660053aeb890de
0 parents
Exists in
master
Initial commit
Showing
67 changed files
with
950 additions
and
0 deletions
Show diff stats
1 | +++ a/Gemfile | ||
@@ -0,0 +1,15 @@ | @@ -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 | + |
1 | +++ a/MIT-LICENSE | ||
@@ -0,0 +1,21 @@ | @@ -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. |
1 | +++ a/README.rdoc | ||
@@ -0,0 +1,34 @@ | @@ -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 | + |
1 | +++ a/Rakefile | ||
@@ -0,0 +1,37 @@ | @@ -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 |
1 | +++ a/app/assets/images/webfinger_server/.keep |
1 | +++ a/app/assets/javascripts/webfinger_server/application.js | ||
@@ -0,0 +1,13 @@ | @@ -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/stylesheets/webfinger_server/application.css | ||
@@ -0,0 +1,15 @@ | @@ -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
app/controllers/webfinger_server/application_controller.rb
0 → 100644
app/controllers/webfinger_server/webfinger_servers_controller.rb
0 → 100644
1 | +++ a/app/controllers/webfinger_server/webfinger_servers_controller.rb | ||
@@ -0,0 +1,11 @@ | @@ -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/webfinger_servers_helper.rb
0 → 100644
1 | +++ a/app/views/layouts/webfinger_server/application.html.erb | ||
@@ -0,0 +1,14 @@ | @@ -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> |
1 | +++ a/bin/rails | ||
@@ -0,0 +1,12 @@ | @@ -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' |
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 @@ | @@ -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 |
1 | +++ a/test/dummy/README.rdoc | ||
@@ -0,0 +1,28 @@ | @@ -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>. |
1 | +++ a/test/dummy/Rakefile | ||
@@ -0,0 +1,6 @@ | @@ -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 |
1 | +++ a/test/dummy/app/assets/images/.keep |
1 | +++ a/test/dummy/app/assets/javascripts/application.js | ||
@@ -0,0 +1,13 @@ | @@ -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 . |
1 | +++ a/test/dummy/app/assets/stylesheets/application.css | ||
@@ -0,0 +1,15 @@ | @@ -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 | + */ |
1 | +++ a/test/dummy/app/controllers/application_controller.rb | ||
@@ -0,0 +1,5 @@ | @@ -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 |
1 | +++ a/test/dummy/app/controllers/concerns/.keep |
1 | +++ a/test/dummy/app/mailers/.keep |
1 | +++ a/test/dummy/app/models/.keep |
1 | +++ a/test/dummy/app/models/concerns/.keep |
1 | +++ a/test/dummy/app/views/layouts/application.html.erb | ||
@@ -0,0 +1,14 @@ | @@ -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> |
1 | +++ a/test/dummy/bin/setup | ||
@@ -0,0 +1,29 @@ | @@ -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 |
1 | +++ a/test/dummy/config/application.rb | ||
@@ -0,0 +1,26 @@ | @@ -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 | + |
1 | +++ a/test/dummy/config/boot.rb | ||
@@ -0,0 +1,5 @@ | @@ -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__) |
1 | +++ a/test/dummy/config/database.yml | ||
@@ -0,0 +1,25 @@ | @@ -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 |
1 | +++ a/test/dummy/config/environments/development.rb | ||
@@ -0,0 +1,41 @@ | @@ -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 |
1 | +++ a/test/dummy/config/environments/production.rb | ||
@@ -0,0 +1,79 @@ | @@ -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 |
1 | +++ a/test/dummy/config/environments/test.rb | ||
@@ -0,0 +1,42 @@ | @@ -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 |
1 | +++ a/test/dummy/config/initializers/assets.rb | ||
@@ -0,0 +1,11 @@ | @@ -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 ) |
1 | +++ a/test/dummy/config/initializers/backtrace_silencers.rb | ||
@@ -0,0 +1,7 @@ | @@ -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/filter_parameter_logging.rb
0 → 100644
1 | +++ a/test/dummy/config/initializers/filter_parameter_logging.rb | ||
@@ -0,0 +1,4 @@ | @@ -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] |
1 | +++ a/test/dummy/config/initializers/inflections.rb | ||
@@ -0,0 +1,16 @@ | @@ -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 |
1 | +++ a/test/dummy/config/initializers/wrap_parameters.rb | ||
@@ -0,0 +1,14 @@ | @@ -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 |
1 | +++ a/test/dummy/config/locales/en.yml | ||
@@ -0,0 +1,23 @@ | @@ -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" |
1 | +++ a/test/dummy/config/secrets.yml | ||
@@ -0,0 +1,22 @@ | @@ -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"] %> |
1 | +++ a/test/dummy/lib/assets/.keep |
1 | +++ a/test/dummy/log/.keep |
1 | +++ a/test/dummy/public/404.html | ||
@@ -0,0 +1,67 @@ | @@ -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> |
1 | +++ a/test/dummy/public/422.html | ||
@@ -0,0 +1,67 @@ | @@ -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> |
1 | +++ a/test/dummy/public/500.html | ||
@@ -0,0 +1,66 @@ | @@ -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; | ||
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/500.html --> | ||
59 | + <div class="dialog"> | ||
60 | + <div> | ||
61 | + <h1>We're sorry, but something went wrong.</h1> | ||
62 | + </div> | ||
63 | + <p>If you are the application owner check the logs for more information.</p> | ||
64 | + </div> | ||
65 | +</body> | ||
66 | +</html> |
1 | +++ a/test/dummy/public/favicon.ico |
1 | +++ a/test/test_helper.rb | ||
@@ -0,0 +1,21 @@ | @@ -0,0 +1,21 @@ | ||
1 | +# Configure Rails Environment | ||
2 | +ENV["RAILS_ENV"] = "test" | ||
3 | + | ||
4 | +require File.expand_path("../../test/dummy/config/environment.rb", __FILE__) | ||
5 | +ActiveRecord::Migrator.migrations_paths = [File.expand_path("../../test/dummy/db/migrate", __FILE__)] | ||
6 | +ActiveRecord::Migrator.migrations_paths << File.expand_path('../../db/migrate', __FILE__) | ||
7 | +require "rails/test_help" | ||
8 | + | ||
9 | +# Filter out Minitest backtrace while allowing backtrace from other libraries | ||
10 | +# to be shown. | ||
11 | +Minitest.backtrace_filter = Minitest::BacktraceFilter.new | ||
12 | + | ||
13 | +# Load support files | ||
14 | +Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f } | ||
15 | + | ||
16 | +# Load fixtures from the engine | ||
17 | +if ActiveSupport::TestCase.respond_to?(:fixture_path=) | ||
18 | + ActiveSupport::TestCase.fixture_path = File.expand_path("../fixtures", __FILE__) | ||
19 | + ActionDispatch::IntegrationTest.fixture_path = ActiveSupport::TestCase.fixture_path | ||
20 | + ActiveSupport::TestCase.fixtures :all | ||
21 | +end |
1 | +++ a/webfinger_server.gemspec | ||
@@ -0,0 +1,22 @@ | @@ -0,0 +1,22 @@ | ||
1 | +$:.push File.expand_path("../lib", __FILE__) | ||
2 | + | ||
3 | +# Maintain your gem's version: | ||
4 | +require "webfinger_server/version" | ||
5 | + | ||
6 | +# Describe your gem and declare its dependencies: | ||
7 | +Gem::Specification.new do |s| | ||
8 | + s.name = "webfinger_server" | ||
9 | + s.version = WebfingerServer::VERSION | ||
10 | + s.authors = ["Alessandro Caetano", "Lucas Kanashiro"] | ||
11 | + s.email = ["alessandro.caetanob@gmail.com", "kanashiro.duarte@gmail.com"] | ||
12 | + s.homepage = "https://softwarepublico.gov.br/gitlab/noosferogov/webfinger-server" | ||
13 | + s.description = %q{Webfinger server side implementation for Rails applications} | ||
14 | + s.summary = %q{Webfinger server side implementation, following RFC 7033. This implementation generates JRD and add a new route to your Rails application.} | ||
15 | + s.license = "MIT" | ||
16 | + | ||
17 | + s.files = Dir["{app,config,lib,db}/**/*", "MIT-LICENSE", "Rakefile", "README.rdoc"] | ||
18 | + s.test_files = Dir["test/**/*"] | ||
19 | + | ||
20 | + s.add_dependency "rails", "~> 4.0" | ||
21 | + s.add_runtime_dependency 'sqlite3', '> 0' | ||
22 | +end |