Browse Source

First real Page

responsive
Georg Hopp 10 years ago
commit
179348ccc2
  1. 25
      .gitignore
  2. 50
      Gemfile
  3. 32
      README.md
  4. 28
      README.rdoc
  5. 6
      Rakefile
  6. BIN
      app/assets/fonts/ArkitechBold.ttf
  7. BIN
      app/assets/fonts/ArkitechLight.ttf
  8. BIN
      app/assets/fonts/ArkitechLight.woff
  9. BIN
      app/assets/fonts/ArkitechMedium.ttf
  10. BIN
      app/assets/fonts/Celtknot.ttf
  11. BIN
      app/assets/fonts/MeathFLF.ttf
  12. BIN
      app/assets/fonts/PoiretOne-Regular.ttf
  13. BIN
      app/assets/fonts/RationalInteger.ttf
  14. 0
      app/assets/images/.keep
  15. 245
      app/assets/images/gpl-v3-red.svg
  16. 78
      app/assets/images/me-white.svg
  17. BIN
      app/assets/images/me.jpg
  18. 78
      app/assets/images/me.svg
  19. BIN
      app/assets/images/waldschrat.jpg
  20. 16
      app/assets/javascripts/application.js
  21. 55
      app/assets/javascripts/parallax.coffee
  22. 3
      app/assets/javascripts/welcome.coffee
  23. 15
      app/assets/stylesheets/application.css
  24. 495
      app/assets/stylesheets/welcome.scss
  25. 5
      app/controllers/application_controller.rb
  26. 0
      app/controllers/concerns/.keep
  27. 4
      app/controllers/welcome_controller.rb
  28. 2
      app/helpers/application_helper.rb
  29. 2
      app/helpers/welcome_helper.rb
  30. 0
      app/mailers/.keep
  31. 0
      app/models/.keep
  32. 0
      app/models/concerns/.keep
  33. 75
      app/views/layouts/application.html.erb
  34. 252
      app/views/welcome/index.html.erb
  35. 3
      bin/bundle
  36. 9
      bin/rails
  37. 9
      bin/rake
  38. 29
      bin/setup
  39. 15
      bin/spring
  40. 4
      config.ru
  41. 26
      config/application.rb
  42. 3
      config/boot.rb
  43. 25
      config/database.yml
  44. 5
      config/environment.rb
  45. 41
      config/environments/development.rb
  46. 79
      config/environments/production.rb
  47. 42
      config/environments/test.rb
  48. 11
      config/initializers/assets.rb
  49. 7
      config/initializers/backtrace_silencers.rb
  50. 3
      config/initializers/cookies_serializer.rb
  51. 4
      config/initializers/filter_parameter_logging.rb
  52. 16
      config/initializers/inflections.rb
  53. 4
      config/initializers/mime_types.rb
  54. 3
      config/initializers/session_store.rb
  55. 14
      config/initializers/wrap_parameters.rb
  56. 23
      config/locales/en.yml
  57. 58
      config/routes.rb
  58. 22
      config/secrets.yml
  59. 7
      db/seeds.rb
  60. 10
      dictionary
  61. 0
      lib/assets/.keep
  62. 0
      lib/tasks/.keep
  63. 0
      log/.keep
  64. 67
      public/404.html
  65. 67
      public/422.html
  66. 66
      public/500.html
  67. 0
      public/favicon.ico
  68. 5
      public/robots.txt
  69. 0
      test/controllers/.keep
  70. 9
      test/controllers/welcome_controller_test.rb
  71. 0
      test/fixtures/.keep
  72. 0
      test/helpers/.keep
  73. 0
      test/integration/.keep
  74. 0
      test/mailers/.keep
  75. 0
      test/models/.keep
  76. 10
      test/test_helper.rb
  77. 0
      vendor/assets/javascripts/.keep
  78. 0
      vendor/assets/stylesheets/.keep

25
.gitignore

@ -0,0 +1,25 @@
# See https://help.github.com/articles/ignoring-files for more about ignoring files.
#
# If you find yourself ignoring temporary files generated by your text editor
# or operating system, you probably want to add a global ignore instead:
# git config --global core.excludesfile '~/.gitignore_global'
# Ignore bundler config.
/.bundle
# Ignore the default SQLite database.
/db/*.sqlite3
/db/*.sqlite3-journal
# Ignore all logfiles and tempfiles.
/log/*
!/log/.keep
/tmp
Gemfile.lock
# Ignore vim swp files
.*.sw?
# Ignore changes on the application config.
/config/gitlab.yml

50
Gemfile

@ -0,0 +1,50 @@
source 'https://rubygems.org'
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.2.6'
# Use sqlite3 as the database for Active Record
gem 'sqlite3'
# Use SCSS for stylesheets
gem 'sass-rails', '~> 5.0'
gem 'sass', '~> 3.4'
gem 'tilt', '~> 2.0'
# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0'
# Use CoffeeScript for .coffee assets and views
gem 'coffee-rails', '~> 4.1.0'
gem 'coffee-script', '~> 2.4'
# See https://github.com/rails/execjs#readme for more supported runtimes
# gem 'therubyracer', platforms: :ruby
# Use jquery as the JavaScript library
gem 'jquery-rails'
# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
gem 'turbolinks'
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 2.0'
# bundle exec rake doc:rails generates the API under doc/api.
gem 'sdoc', '~> 0.4.0', group: :doc
# Use ActiveModel has_secure_password
# gem 'bcrypt', '~> 3.1.7'
# Use Unicorn as the app server
# gem 'unicorn'
# Use Capistrano for deployment
# gem 'capistrano-rails', group: :development
group :development, :test do
# Call 'byebug' anywhere in the code to stop execution and get a debugger console
gem 'byebug'
end
group :development do
# Access an IRB console on exception pages or by using <%= console %> in views
gem 'web-console', '~> 2.0'
# Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
gem 'spring'
end

32
README.md

@ -0,0 +1,32 @@
# Georg Hopp aka Steffers
[: shortdesc :]
## Synopsis
[::]
## Description
[::]
## Requirements
[::]
## Dependencies
[::]
## Contributing
[::]
## License
[: license :]
## Author
Georg Hopp <<georg@steffers.org>>

28
README.rdoc

@ -0,0 +1,28 @@
== README
This README would normally document whatever steps are necessary to get the
application up and running.
Things you may want to cover:
* Ruby version
* System dependencies
* Configuration
* Database creation
* Database initialization
* How to run the test suite
* Services (job queues, cache servers, search engines, etc.)
* Deployment instructions
* ...
Please feel free to use a different markup language if you do not plan to run
<tt>rake doc:app</tt>.

6
Rakefile

@ -0,0 +1,6 @@
# Add your own tasks in files placed in lib/tasks ending in .rake,
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
require File.expand_path('../config/application', __FILE__)
Rails.application.load_tasks

BIN
app/assets/fonts/ArkitechBold.ttf

BIN
app/assets/fonts/ArkitechLight.ttf

BIN
app/assets/fonts/ArkitechLight.woff

BIN
app/assets/fonts/ArkitechMedium.ttf

BIN
app/assets/fonts/Celtknot.ttf

BIN
app/assets/fonts/MeathFLF.ttf

BIN
app/assets/fonts/PoiretOne-Regular.ttf

BIN
app/assets/fonts/RationalInteger.ttf

0
app/assets/images/.keep

245
app/assets/images/gpl-v3-red.svg
File diff suppressed because it is too large
View File

78
app/assets/images/me-white.svg
File diff suppressed because it is too large
View File

BIN
app/assets/images/me.jpg

After

Width: 1920  |  Height: 1200  |  Size: 477 KiB

78
app/assets/images/me.svg
File diff suppressed because it is too large
View File

BIN
app/assets/images/waldschrat.jpg

After

Width: 1720  |  Height: 1200  |  Size: 390 KiB

16
app/assets/javascripts/application.js

@ -0,0 +1,16 @@
// This is a manifest file that'll be compiled into application.js, which will include all the files
// listed below.
//
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
// or any plugin's vendor/assets/javascripts directory can be referenced here using a relative path.
//
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
// compiled file.
//
// Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details
// about supported directives.
//
//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require_tree .

55
app/assets/javascripts/parallax.coffee

@ -0,0 +1,55 @@
#
# OK, this is not really a parallax... I just want to see my content move
# somewhat faster than the background... hey, ho, let's go
#
window.App ||= {}
content_top = content_left = width_delta = height_delta = 0
App.init = ->
$('a[href*=\\#]').each ->
lpath = location.pathname.replace(/^\//,'')
tpath = this.pathname.replace(/^\//,'')
if lpath == tpath and
location.hostname == this.hostname and
this.hash.replace(/#/,'')
$targetId = $(this.hash)
$targetAnchor = $('[name=' + this.hash.slice(1) + ']')
$target = if $targetId.length
$targetId
else
if $targetAnchor.length
$targetAnchor
else
false
if $target
targetOffset = $target.offset().top
$(this).click ->
$("#nav li a").removeClass("active")
$(this).addClass('active')
$('html, body').animate({scrollTop: targetOffset}, 1000)
return false
App.scroll = ->
v_scroll = $(document).scrollTop()
section = Math.floor(v_scroll / $(window).innerHeight())
[section, section+1].forEach (section) ->
bg_pos = -((v_scroll-(section*$(window).innerHeight()))/2)
section_element = $($(".section")[section])
if section_element and section_element.css("background-image") != "none"
content = section_element.find(".content")
content.css("display", "none")
section_element.css(
"background-position",
"center " + bg_pos + "px")
content.css("display", "block")
$(document).on "page:change", ->
App.init()
$(window).on "scroll", ->
App.scroll()
# vim: set ts=2 sw=2:

3
app/assets/javascripts/welcome.coffee

@ -0,0 +1,3 @@
# Place all the behaviors and hooks related to the matching controller here.
# All this logic will automatically be available in application.js.
# You can use CoffeeScript in this file: http://coffeescript.org/

15
app/assets/stylesheets/application.css

@ -0,0 +1,15 @@
/*
* This is a manifest file that'll be compiled into application.css, which will include all the files
* listed below.
*
* Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
* or any plugin's vendor/assets/stylesheets directory can be referenced here using a relative path.
*
* You're free to add application-wide styles to this file and they'll appear at the bottom of the
* compiled file so the styles you add here take precedence over styles defined in any styles
* defined in the other CSS/SCSS files in this directory. It is generally better to create a new
* file per style scope.
*
*= require_tree .
*= require_self
*/

495
app/assets/stylesheets/welcome.scss

@ -0,0 +1,495 @@
@font-face {
font-family: 'Meath';
src: font-url("MeathFLF.ttf") format('truetype');
}
@font-face {
font-family: 'Celtknot';
src: font-url("Celtknot.ttf") format('truetype');
}
@font-face {
font-family: 'PoiretOne';
src: font-url("PoiretOne-Regular.ttf") format('truetype');
}
@font-face {
font-family: 'RationalInteger';
src: font-url("RationalInteger.ttf") format('truetype');
}
@font-face {
font-family: 'Arkitech';
src: font-url("ArkitechLight.ttf") format('truetype'),
font-url("ArkitechLight.woff") format('woff');
}
* {
font-family: Verdana, sans-serif;
color: rgb(41, 49, 51);
margin: 0;
padding: 0;
}
h1,h2,h3,h4,h5,h6 {
font-weight: normal;
}
h1,h4 {
text-decoration: underline;
}
h1 {
font-size: x-large;
}
a {
text-decoration: none;
color: rgb(110, 210, 12);
}
a:visited {
color: rgb(60, 130, 12);
}
hr {
margin: 5px 0 5px 0;
}
p {
padding-top: 5px;
text-indent: 10px;
}
#header {
background: rgba(0, 0, 0, 0.7);
position: fixed;
width: 100%;
height: 80px;
margin-top: 30px;
z-index: 10;
}
#nav {
position: absolute;
top: 50%;
left: 85%;
transform: translate(-50%, -50%);
width: 430px;
}
#logo img,#logo a {
position: absolute;
left: 30px;
top: 50%;
transform: translate(0, -50%);
}
#logo img {
border: 2px solid white;
border-radius: 10px;
padding: 2px;
opacity: 0.4;
}
#logo a {
color: rgb(255,255,255);
left: 120px;
text-decoration: none;
font-size: 30px;
font-family: Arkitech;
}
#nav ul {
display: block;
list-style: none;
}
#nav li {
float: left;
padding-left: 21px;
}
#nav li a {
color: rgba(255,255,255,0.4);
font-size: 16px;
text-decoration: none;
font-weight: bold;
}
#nav li a:hover {
color: rgba(255,255,255,1);
}
#nav li a.active {
color: rgba(255,255,255,1);
border-bottom: 2px solid rgb(255,255,255);
}
#content {
position: absolute;
top: 0px;
left: 0px;
width: 100%;
height: 100%;
}
#section1 .content, #section3 .content, #section5 .content {
color: rgb(214,206,204);
}
#section2, #section4, #section6 {
background-color: rgb(255,255,255);
}
#section1 {
background: image_url("me.jpg") fixed;
background-position: center top;
}
#section3 {
background: image_url("waldschrat.jpg") fixed;
background-position: center top;
}
#footer {
background: rgb(22, 27, 28);
position: relative;
width: 100%;
height: 140px;
font-size: x-small;
}
#footer p {
color: rgb(214,206,204);
}
#footer ul {
padding-top: 10px;
}
#footer li {
float: left;
padding-left: 10px;
padding-right: 10px;
border-right: 1px solid rgb(214,206,204);
}
#footer .license {
bottom: 0px;
width: 100%;
position: absolute;
}
#footer .license img {
display: inline-block;
position: relative;
float: right;
vertical-align: middle;
}
#footer .license div {
display: inline-block;
position: relative;
left: 0px;
vertical-align: middle;
}
#about {
display: block;
list-style: none;
text-align: justify;
width: 100%;
top: 50%;
transform: translate(0, -50%);
position: absolute;
}
#about:after {
display: inline-block;
width: 100%;
height: 0;
content: '';
}
#about .textbox {
text-align: justify;
padding: 10px;
width: 30%;
height: 140px;
overflow: hidden;
box-shadow: 10px 10px 10px rgba(0,0,0,0.7);
}
#about a {
outline: 0;
}
.textbox {
display: inline-block;
border-color: rgba(100,190,12,0.7);
background-color: rgba(255,255,255,0.7);
}
.textbox h1 {
text-align: center;
}
.projectspace {
display: inline-block;
width: 35%;
}
.projects {
display: inline-block;
width: 60%;
list-style: none;
text-align: justify;
vertical-align: top;
}
.projects .textbox {
padding: 3px;
margin-top: 3px;
background-color: rgba(0,0,0,0);
}
.section {
position: relative;
height: 100%;
overflow: hidden;
}
.section .watermark {
position: absolute;
opacity: 0.1;
width: 60%;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
z-index: 0;
}
.title {
position: relative;
text-align: center;
width: 60%;
padding-bottom: 50px;
left: 50%;
transform: translate(-50%, 0);
}
.title img {
display: inline-block;
vertical-align: middle;
}
.title h2 {
display: inline-block;
vertical-align: middle;
}
.title p {
padding-top: 10px;
}
.quote-container {
position: relative;
width: 500px;
top: 10px;
left: 50%;
transform: translate(-50%, 0);
}
.quote {
position: relative;
display: inline-block;
width: 100%;
}
.quote img {
display: inline-block;
vertical-align: middle;
}
.quote div {
display: inline-block;
width: 80%;
text-align: right;
vertical-align: middle;
}
.quote q {
display: block;
font-family: serif;
text-align: center;
font-size: small;
}
.text {
position: relative;
padding-bottom: 10px;
}
.text p {
padding-top: 5px;
text-align: justify;
}
#vitae .textbox {
padding: 15px;
width: 80%;
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
}
#skills .geekcode {
font-size: x-small;
padding: 10px;
margin: 15px;
background-color: rgba(0, 0, 0, 0.25);
display: inline-block;
left: 50%;
transform: translate(-50%, 0);
position: relative;
}
#links .gpg pre {
font-size: x-small;
padding: 10px;
margin: 15px;
background-color: rgba(0, 0, 0, 0.25);
display: inline-block;
position: relative;
}
.content {
position: relative;
width: 90%;
height: 90%;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
z-index: 1;
}
.textbox {
text-align: center;
border-style: solid;
border-radius: 10px;
border-width: 3px;
}
.separator {
position: relative;
border-bottom: 1px dotted black;
height: 0px;
width: 20%;
left: 50%;
transform: translate(-50%, 0);
margin-top: 10px;
margin-bottom: 10px;
}
.dictionary {
position: relative;
left: 50%;
transform: translate(-50%, 0);
font-size: x-small;
vertical-align: bottom;
}
.dictionary .headword {
display: inline-block;
color: red;
font-weight: bold;
text-decoration: underline;
}
.dictionary .headword i {
color: inherit;
}
.dictionary .pronounciation {
display: inline-block;
font-family: monospace;
}
.dictionary .conjugation {
display: inline-block;
font-weight: bold;
}
.dictionary ol li {
margin-left: 10px;
}
.dictionary ol li q {
display: block;
text-indent: 10px;
font-family: serif;
font-size: small;
}
.dictionary ol li i {
display: block;
right: 10px;
font-size: x-small;
position: absolute;
}
.dictionary ol li:before {
font-weight: bold;
}
.dictionary .sense .example {
font-style: italic;
}
.dictionary .sense .reference {
text-decoration: underline;
font-family: serif;
}
.dictionary ol.fifth {
counter-reset: section 4;
list-style-type: none;
}
.dictionary ol {
counter-reset: section;
list-style-type: none;
}
.dictionary li::before {
counter-increment: section;
content: counters(section,".") " ";
}
.source {
position: absolute;
font-size: x-small;
bottom: 35px;
width: 30%;
}
/*
#title {
position: fixed;
top: 0px;
left: 50%;
transform: translate(-50%, 0);
z-index: 10;
}
#title h1 {
font-family: Meath;
font-weight: bolder;
font-size: 60px;
}
.text {
background: white;
border-style: solid;
border-color: rgb(100, 190, 12);
border-radius: 30px;
border-width: 3px;
padding: 10px;
}
#content {
top: 0px;
left: 0px;
width: 100%;
}
.section {
position: relative;
height: 1200px;
}
.background {
position: absolute;
z-index: -1;
overflow: hidden;
}
.background img {
position: absolute;
top: 0px;
left: 50%;
transform: translate(-50%, 0);
}
#back {
position: fixed;
border-radius: 15px;
border-width: 2px;
z-index: 1;
}
p,h1,h2,h3,h4,h5,h6 {
opacity: 1;
}
h1,h2,h3,h4,h5,h6 {
font-weight: normal;
}
h1,h4 {
text-decoration: underline;
}
h1 {
font-size: x-large;
}
a {
text-decoration: none;
color: rgb(110, 210, 12);
}
a:visited {
color: rgb(60, 130, 12);
}
*/
/* vim: set ts=2 sw=2: */

5
app/controllers/application_controller.rb

@ -0,0 +1,5 @@
class ApplicationController < ActionController::Base
# Prevent CSRF attacks by raising an exception.
# For APIs, you may want to use :null_session instead.
protect_from_forgery with: :exception
end

0
app/controllers/concerns/.keep

4
app/controllers/welcome_controller.rb

@ -0,0 +1,4 @@
class WelcomeController < ApplicationController
def index
end
end

2
app/helpers/application_helper.rb

@ -0,0 +1,2 @@
module ApplicationHelper
end

2
app/helpers/welcome_helper.rb

@ -0,0 +1,2 @@
module WelcomeHelper
end

0
app/mailers/.keep

0
app/models/.keep

0
app/models/concerns/.keep

75
app/views/layouts/application.html.erb

@ -0,0 +1,75 @@
<!DOCTYPE html>
<html>
<head>
<title>Georg Hopp aka Steffers</title>
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
<%= csrf_meta_tags %>
</head>
<body>
<header id="header">
<div class="header-content">
<div id="logo">
<%= image_tag "me-white.svg", height: "70" %>
<a href=""> Georg Hopp aka Steffers </a>
</div>
<nav id="nav">
<ul>
<li><a href="#section1" class="active" title="Next Section" >About me</a></li>
<li><a href="#section2" title="Next Section">Skills</a></li>
<li><a href="#section3" title="Next Section">Vitae</a></li>
<li><a href="#section4" title="Next Section">Links</a></li>
</ul>
</nav>
</div>
</header>
<div id="content">
<%= yield %>
<footer id="footer">
<ul>
<li><a href="">about us</a></li>
<li><a href="">contact</a></li>
</ul>
<div class="license">
<div>
<p>
Copyright &copy; 2016 Georg Hopp | All rights reserved
</p>
<p>
All code (no matter which language) used to create this page is
licensed under a
<a href="http://www.gnu.org/licenses/gpl-3.0.en.html"
rel="license"
target="_blank">
GNU General Public License (Version 3)
</a>.
</p>
<p>
All other work is licensed under a
<a href="http://creativecommons.org/licenses/by/4.0/"
rel="license"
target="_blank">
Creative Commons Attribution 4.0 International License
</a>.
</p>
</div>
<a href="http://creativecommons.org/licenses/by/4.0/"
rel="license"
target="_blank">
<img alt="Creative Commons License"
style="border-width:0"
src="https://i.creativecommons.org/l/by/4.0/88x31.png" />
</a>
<a href="http://www.gnu.org/licenses/gpl-3.0.en.html"
rel="license"
target="_blank">
<%= image_tag("gpl-v3-red.svg", height: "30") %>
</a>
</div>
</footer>
</div>
</body>
</html>
<!-- vim: set ts=2 sw=2: -->

252
app/views/welcome/index.html.erb

@ -0,0 +1,252 @@
<div id="section1" class="section">
<div class="content">
<div id="about">
<div class="textbox">
<h1>COMPUTER SCIENTIST</h1>
<div class="dictionary">
<div class="headword">Computer-scientist <i>n.s.</i></div>
<div class="pronounciation">/kəmˈpjuːtə-ˈsaɪəntɪst/</div>
<ol class="sense">
<li>
A writer of computer programs; a harmless drudge that busies
himself in tracing the bug, and detailing the significance of
bits.
</li>
</ol>
</div>
<div class="source">
Shamelessly taken and slightly modified definition of lexicographer
from Samual Johnsons
<a href="http://johnsonsdictionaryonline.com/?p=4848"
target="_blank">
"Dictionary of the english language (1755)"
</a>
Phonetics from
<a href="http://www.photransedit.com/online/text2phonetics.aspx"
target="_blank">
PhoTransEdit
</a>
</div>
</div>
<div class="textbox">
<h1>DAD</h1>
<div class="dictionary">
<div class="headword">Dad <i>n.s.</i></div>
<div class="pronounciation">/dæd/</div>
<ol class="sense">
<li>
[The child's way of expressing father. It is remarkable, that,
in all parts of the world, the word for father, as first taught
to children, is compounded of a and t, or the kindred letter d
differently placed; as tad, Welsh; ἄττα, Greek; atta, Gothick;
tata, Latin. Mammas atque tatas habet Afra, Mart.] Father.
</li>
</ol>
</div>
<div class="source">
Taken from the
<a href="http://johnsonsdictionaryonline.com/?p=4848"
target="_blank">
"Dictionary of the english language (1755)"
</a>
Phonetics from
<a href="http://www.photransedit.com/online/text2phonetics.aspx"
target="_blank">
PhoTransEdit
</a>
</div>
</div>
<div class="textbox">
<h1>SOCIALIST</h1>
<div class="dictionary">
<div class="headword">Socialist <i>n.s.</i></div>
<div class="pronounciation">/ˈsəʊʃəlɪst/</div>
<ol class="sense">
<li>
An advocate or supporter of socialism.
<q>
Someone who bumps his head against walls of ignorance until
he's knocked out but nevertheless starts over again as soon
as possible.
</q> <i>Georg Hopp</i>
</li>
</ol>
</div>
<div class="source">
Taken from the
<a href="http://www.dictionary.com/" target="_blank">
Dictionary.com
</a>
Phonetics from
<a href="http://www.photransedit.com/online/text2phonetics.aspx"
target="_blank">
PhoTransEdit
</a>
</div>
</div>
</div>
</div>
</div>
<div id="section2" class="section">
<%= image_tag "me.svg", class: "watermark", height: "600px" %>
<div class="content">
<div id="skills">
<div class="title">
<h2>Skills</h2>
<p>
I'm still not sure if I am just lucky that no one notices that I lack
any kind of skill or I am just totally unaware of my skills. Anyway, I
try to outline some of my abilities here.
</p>
</div>
<div class="text">
<h3>As Computer-Scientist</h3>
<p>
As you might have noticed I am <b>not</b> a brilliant web designer.
Well, who cares&hellip;
</p>
<p>
I could start with a comprehensive list of things I have done in the
past, sometimes even usefull in a way, but to be honest this list
would be long and boring and it would't express very much, would it?
So if you are really interested just visit my
<a href="https://gitlab.weird-web-workers.org/">Gitlab server</a>. An
overview of the projects hosted there can be found on
<a href="https://www.weird-web-workers.org/">Weird Web Workers</a>.
<p>
In summary, I have done much and I know a little of something but the
most important skill I have is to learn things I do not know right
now.
</p>
<pre class="geekcode">
-----BEGIN GEEK CODE BLOCK-----
Version: 3.1
GIT/CS/L/P/O d--- s: !a C UL++++ P L+++$ !E--- W+++ N o? K? !w---
!O- !M-- V-- PS+++ PE-- Y+ PGP+ t+ 5+ X R tv- b++ G e h---- r+++
y+++
------END GEEK CODE BLOCK------</pre>
</div>
<div class="text">
<h3>As Dad</h3>
<p>
There is absolutely nothing more satisfiable and at the same time
depressing than trying to be a <i>good</i> dad or mum. Whenever you come
to the point of giving up your kids do something totally amazing and
reesteblish your believes. Not to talk about the
<q>I do love you so much, can you please&hellip;</q> face.
</p>
</div>
<div class="text">
<h3>As Socialist</h3>
<p>
I beleave to have understood the biggest problem in modern society
<i>(money, btw.)</i> and still think about the best way to transport
this knowledge to the masses.
</p>
</div>
</div>
</div>
</div>
<div id="section3" class="section">
<div class="content">
<div id="vitae">
<div class="textbox">
<div class="title">
<h2>Vitae</h2>
<p>
Oh no, not again&hellip; Why is everyone so possesed to know what
you have done in the past. Let's just forget about it and look at
the here and now and maybe try a small look into the future.
</p>
</div>
<div class="text">
<p>
If you are really interested in a skill profile look on one of my
<a href="#section4">social profiles</a>. They might be not bleeding
edge, but they are a good starting point. If you need to know more
just send me a mail.
<p>
Right now I am the person who created this page. A pleasant guy with
a strong attitude to fairness and the desire to make the world a
better place. By the way I think I am a decent computer-programmer
and have at least scratched on the surface of unixoid operating
systems.
</p>
<p>
At some time I might become one of the legions that have witten
something that is at least of little use for society.
</p>
</div>
</div>
</div>
</div>
</div>
<div id="section4" class="section">
<%= image_tag "me.svg", class: "watermark", height: "600px" %>
<div class="content">
<div id="links">
<div class="title">
<h2>Links And Resources</h2>
<p>
Some external resources about me.
</p>
</div>
<div class="text">
<h3>Weird Web Workers</h3>
<p>The portal to my personal projects is
<a href="https://www.weird-web-workers.org" target="_blank">
Weird Web Workers</a>
</div>
<div class="text">
<h3>Email</h3>
<p>If you want to you may reach me at
<a href="mailto:georg@steffers.org">georg@steffers.org</a>
</p>
</div>
<div class="text">
<h3>GnuPG Public Key</h3>
<p>
There are three key's for georg@steffers.org available on public key
servers. One is revoked and I have left the private key for another
one by accident. Please use this one:
<div class="gpg">
<pre>2048 bit RSA key 68784538, created: 2012-12-07</pre>
<pre>6C5C BDD9 7010 F187 73A7 3F8F 4C5D 2267 6878 4538</pre>
</div>
</p>
</div>
<div class="text">
<h3>LinkedIn</h3>
<p>
You can find me on
<a href="https://de.linkedin.com/in/georg-hopp-38a0a597"
target="_blank">LinkedIn</a>
</p>
</div>
<div class="text">
<h3>Facebook</h3>
<p>
You can also find me on
<a href="https://www.facebook.com/gsteffers" target="_blank">
Facebook</a>.
</p>
</div>
<div class="text">
<h3>Xing</h3>
<p>
And finally there is also a profile on
<a href="https://www.xing.com/profile/Georg_Hopp2" target="_blank">
Xing</a>.
</p>
</div>
<div class="text">
<h3>Github</h3>
<p>
Additionally to Weird Web Workers some code is published on
<a href="https://github.com/georghopp">Github</a>.
</p>
</div>
</div>
</div>
</div>
<!-- vim: set ts=2 sw=2: -->

3
bin/bundle

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

9
bin/rails

@ -0,0 +1,9 @@
#!/usr/bin/env ruby
begin
load File.expand_path('../spring', __FILE__)
rescue LoadError => e
raise unless e.message.include?('spring')
end
APP_PATH = File.expand_path('../../config/application', __FILE__)
require_relative '../config/boot'
require 'rails/commands'

9
bin/rake

@ -0,0 +1,9 @@
#!/usr/bin/env ruby
begin
load File.expand_path('../spring', __FILE__)
rescue LoadError => e
raise unless e.message.include?('spring')
end
require_relative '../config/boot'
require 'rake'
Rake.application.run

29
bin/setup

@ -0,0 +1,29 @@
#!/usr/bin/env ruby
require 'pathname'
# path to your application root.
APP_ROOT = Pathname.new File.expand_path('../../', __FILE__)
Dir.chdir APP_ROOT do
# This script is a starting point to setup your application.
# Add necessary setup steps to this file:
puts "== Installing dependencies =="
system "gem install bundler --conservative"
system "bundle check || bundle install"
# puts "\n== Copying sample files =="
# unless File.exist?("config/database.yml")
# system "cp config/database.yml.sample config/database.yml"
# end
puts "\n== Preparing database =="
system "bin/rake db:setup"
puts "\n== Removing old logs and tempfiles =="
system "rm -f log/*"
system "rm -rf tmp/cache"
puts "\n== Restarting application server =="
system "touch tmp/restart.txt"
end

15
bin/spring

@ -0,0 +1,15 @@
#!/usr/bin/env ruby
# This file loads spring without using Bundler, in order to be fast.
# It gets overwritten when you run the `spring binstub` command.
unless defined?(Spring)
require 'rubygems'
require 'bundler'
if (match = Bundler.default_lockfile.read.match(/^GEM$.*?^ (?: )*spring \((.*?)\)$.*?^$/m))
Gem.paths = { 'GEM_PATH' => [Bundler.bundle_path.to_s, *Gem.path].uniq.join(Gem.path_separator) }
gem 'spring', match[1]
require 'spring/binstub'
end
end

4
config.ru

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

26
config/application.rb

@ -0,0 +1,26 @@
require File.expand_path('../boot', __FILE__)
require 'rails/all'
# Require the gems listed in Gemfile, including any gems
# you've limited to :test, :development, or :production.
Bundler.require(*Rails.groups)
module SteffersOrg
class Application < Rails::Application
# Settings in config/environments/* take precedence over those specified here.
# Application configuration should go into files in config/initializers
# -- all .rb files in that directory are automatically loaded.
# Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
# Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
# config.time_zone = 'Central Time (US & Canada)'
# The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
# config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
# config.i18n.default_locale = :de
# Do not swallow errors in after_commit/after_rollback callbacks.
config.active_record.raise_in_transactional_callbacks = true
end
end

3
config/boot.rb

@ -0,0 +1,3 @@
ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
require 'bundler/setup' # Set up gems listed in the Gemfile.

25
config/database.yml

@ -0,0 +1,25 @@
# SQLite version 3.x
# gem install sqlite3
#
# Ensure the SQLite 3 gem is defined in your Gemfile
# gem 'sqlite3'
#
default: &default
adapter: sqlite3
pool: 5
timeout: 5000
development:
<<: *default
database: db/development.sqlite3
# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
<<: *default
database: db/test.sqlite3
production:
<<: *default
database: db/production.sqlite3

5
config/environment.rb

@ -0,0 +1,5 @@
# Load the Rails application.
require File.expand_path('../application', __FILE__)
# Initialize the Rails application.
Rails.application.initialize!

41
config/environments/development.rb

@ -0,0 +1,41 @@
Rails.application.configure do
# Settings specified here will take precedence over those in config/application.rb.
# In the development environment your application's code is reloaded on
# every request. This slows down response time but is perfect for development
# since you don't have to restart the web server when you make code changes.
config.cache_classes = false
# Do not eager load code on boot.
config.eager_load = false
# Show full error reports and disable caching.
config.consider_all_requests_local = true
config.action_controller.perform_caching = false
# Don't care if the mailer can't send.
config.action_mailer.raise_delivery_errors = false
# Print deprecation notices to the Rails logger.
config.active_support.deprecation = :log
# Raise an error on page load if there are pending migrations.
config.active_record.migration_error = :page_load
# Debug mode disables concatenation and preprocessing of assets.
# This option may cause significant delays in view rendering with a large
# number of complex assets.
config.assets.debug = true
# Asset digests allow you to set far-future HTTP expiration dates on all assets,
# yet still be able to expire them through the digest params.
config.assets.digest = true
# Adds additional error checking when serving assets at runtime.
# Checks for improperly declared sprockets dependencies.
# Raises helpful error messages.
config.assets.raise_runtime_errors = true
# Raises error for missing translations
# config.action_view.raise_on_missing_translations = true
end

79
config/environments/production.rb

@ -0,0 +1,79 @@
Rails.application.configure do
# Settings specified here will take precedence over those in config/application.rb.
# Code is not reloaded between requests.
config.cache_classes = true
# Eager load code on boot. This eager loads most of Rails and
# your application in memory, allowing both threaded web servers
# and those relying on copy on write to perform better.
# Rake tasks automatically ignore this option for performance.
config.eager_load = true
# Full error reports are disabled and caching is turned on.
config.consider_all_requests_local = false
config.action_controller.perform_caching = true
# Enable Rack::Cache to put a simple HTTP cache in front of your application
# Add `rack-cache` to your Gemfile before enabling this.
# For large-scale production use, consider using a caching reverse proxy like
# NGINX, varnish or squid.
# config.action_dispatch.rack_cache = true
# Disable serving static files from the `/public` folder by default since
# Apache or NGINX already handles this.
config.serve_static_files = ENV['RAILS_SERVE_STATIC_FILES'].present?
# Compress JavaScripts and CSS.
config.assets.js_compressor = :uglifier
# config.assets.css_compressor = :sass
# Do not fallback to assets pipeline if a precompiled asset is missed.
config.assets.compile = false
# Asset digests allow you to set far-future HTTP expiration dates on all assets,
# yet still be able to expire them through the digest params.
config.assets.digest = true
# `config.assets.precompile` and `config.assets.version` have moved to config/initializers/assets.rb
# Specifies the header that your server uses for sending files.
# config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache
# config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX
# Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
# config.force_ssl = true
# Use the lowest log level to ensure availability of diagnostic information
# when problems arise.
config.log_level = :debug
# Prepend all log lines with the following tags.
# config.log_tags = [ :subdomain, :uuid ]
# Use a different logger for distributed setups.
# config.logger = ActiveSupport::TaggedLogging.new(SyslogLogger.new)
# Use a different cache store in production.
# config.cache_store = :mem_cache_store
# Enable serving of images, stylesheets, and JavaScripts from an asset server.
# config.action_controller.asset_host = 'http://assets.example.com'
# Ignore bad email addresses and do not raise email delivery errors.
# Set this to true and configure the email server for immediate delivery to raise delivery errors.
# config.action_mailer.raise_delivery_errors = false
# Enable locale fallbacks for I18n (makes lookups for any locale fall back to
# the I18n.default_locale when a translation cannot be found).
config.i18n.fallbacks = true
# Send deprecation notices to registered listeners.
config.active_support.deprecation = :notify
# Use default logging formatter so that PID and timestamp are not suppressed.
config.log_formatter = ::Logger::Formatter.new
# Do not dump schema after migrations.
config.active_record.dump_schema_after_migration = false
end

42
config/environments/test.rb

@ -0,0 +1,42 @@
Rails.application.configure do
# Settings specified here will take precedence over those in config/application.rb.
# The test environment is used exclusively to run your application's
# test suite. You never need to work with it otherwise. Remember that
# your test database is "scratch space" for the test suite and is wiped
# and recreated between test runs. Don't rely on the data there!
config.cache_classes = true
# Do not eager load code on boot. This avoids loading your whole application
# just for the purpose of running a single test. If you are using a tool that
# preloads Rails for running tests, you may have to set it to true.
config.eager_load = false
# Configure static file server for tests with Cache-Control for performance.
config.serve_static_files = true
config.static_cache_control = 'public, max-age=3600'
# Show full error reports and disable caching.
config.consider_all_requests_local = true
config.action_controller.perform_caching = false
# Raise exceptions instead of rendering exception templates.
config.action_dispatch.show_exceptions = false
# Disable request forgery protection in test environment.
config.action_controller.allow_forgery_protection = false
# Tell Action Mailer not to deliver emails to the real world.
# The :test delivery method accumulates sent emails in the
# ActionMailer::Base.deliveries array.
config.action_mailer.delivery_method = :test
# Randomize the order test cases are executed.
config.active_support.test_order = :random
# Print deprecation notices to the stderr.
config.active_support.deprecation = :stderr
# Raises error for missing translations
# config.action_view.raise_on_missing_translations = true
end

11
config/initializers/assets.rb

@ -0,0 +1,11 @@
# Be sure to restart your server when you modify this file.
# Version of your assets, change this if you want to expire all your assets.
Rails.application.config.assets.version = '1.0'
# Add additional assets to the asset load path
# Rails.application.config.assets.paths << Emoji.images_path
# Precompile additional assets.
# application.js, application.css, and all non-JS/CSS in app/assets folder are already added.
# Rails.application.config.assets.precompile += %w( search.js )

7
config/initializers/backtrace_silencers.rb

@ -0,0 +1,7 @@
# Be sure to restart your server when you modify this file.
# You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces.
# Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ }
# You can also remove all the silencers if you're trying to debug a problem that might stem from framework code.
# Rails.backtrace_cleaner.remove_silencers!

3
config/initializers/cookies_serializer.rb

@ -0,0 +1,3 @@
# Be sure to restart your server when you modify this file.
Rails.application.config.action_dispatch.cookies_serializer = :json

4
config/initializers/filter_parameter_logging.rb

@ -0,0 +1,4 @@
# Be sure to restart your server when you modify this file.
# Configure sensitive parameters which will be filtered from the log file.
Rails.application.config.filter_parameters += [:password]

16
config/initializers/inflections.rb

@ -0,0 +1,16 @@
# Be sure to restart your server when you modify this file.
# Add new inflection rules using the following format. Inflections
# are locale specific, and you may define rules for as many different
# locales as you wish. All of these examples are active by default:
# ActiveSupport::Inflector.inflections(:en) do |inflect|
# inflect.plural /^(ox)$/i, '\1en'
# inflect.singular /^(ox)en/i, '\1'
# inflect.irregular 'person', 'people'
# inflect.uncountable %w( fish sheep )
# end
# These inflection rules are supported but not enabled by default:
# ActiveSupport::Inflector.inflections(:en) do |inflect|
# inflect.acronym 'RESTful'
# end

4
config/initializers/mime_types.rb

@ -0,0 +1,4 @@
# Be sure to restart your server when you modify this file.
# Add new mime types for use in respond_to blocks:
# Mime::Type.register "text/richtext", :rtf

3
config/initializers/session_store.rb

@ -0,0 +1,3 @@
# Be sure to restart your server when you modify this file.
Rails.application.config.session_store :cookie_store, key: '_steffers_org_session'

14
config/initializers/wrap_parameters.rb

@ -0,0 +1,14 @@
# Be sure to restart your server when you modify this file.
# This file contains settings for ActionController::ParamsWrapper which
# is enabled by default.
# Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array.
ActiveSupport.on_load(:action_controller) do
wrap_parameters format: [:json] if respond_to?(:wrap_parameters)
end
# To enable root element in JSON for ActiveRecord objects.
# ActiveSupport.on_load(:active_record) do
# self.include_root_in_json = true
# end

23
config/locales/en.yml

@ -0,0 +1,23 @@
# Files in the config/locales directory are used for internationalization
# and are automatically loaded by Rails. If you want to use locales other
# than English, add the necessary files in this directory.
#
# To use the locales, use `I18n.t`:
#
# I18n.t 'hello'
#
# In views, this is aliased to just `t`:
#
# <%= t('hello') %>
#
# To use a different locale, set it with `I18n.locale`:
#
# I18n.locale = :es
#
# This would use the information in config/locales/es.yml.
#
# To learn more, please read the Rails Internationalization guide
# available at http://guides.rubyonrails.org/i18n.html.
en:
hello: "Hello world"

58
config/routes.rb

@ -0,0 +1,58 @@
Rails.application.routes.draw do
get 'welcome/index'
# The priority is based upon order of creation: first created -> highest priority.
# See how all your routes lay out with "rake routes".
# You can have the root of your site routed with "root"
root 'welcome#index'
# Example of regular route:
# get 'products/:id' => 'catalog#view'
# Example of named route that can be invoked with purchase_url(id: product.id)
# get 'products/:id/purchase' => 'catalog#purchase', as: :purchase
# Example resource route (maps HTTP verbs to controller actions automatically):
# resources :products
# Example resource route with options:
# resources :products do
# member do
# get 'short'
# post 'toggle'
# end
#
# collection do
# get 'sold'
# end
# end
# Example resource route with sub-resources:
# resources :products do
# resources :comments, :sales
# resource :seller
# end
# Example resource route with more complex sub-resources:
# resources :products do
# resources :comments
# resources :sales do
# get 'recent', on: :collection
# end
# end
# Example resource route with concerns:
# concern :toggleable do
# post 'toggle'
# end
# resources :posts, concerns: :toggleable
# resources :photos, concerns: :toggleable
# Example resource route within a namespace:
# namespace :admin do
# # Directs /admin/products/* to Admin::ProductsController
# # (app/controllers/admin/products_controller.rb)
# resources :products
# end
end

22
config/secrets.yml

@ -0,0 +1,22 @@
# Be sure to restart your server when you modify this file.
# Your secret key is used for verifying the integrity of signed cookies.
# If you change this key, all old signed cookies will become invalid!
# Make sure the secret is at least 30 characters and all random,
# no regular words or you'll be exposed to dictionary attacks.
# You can use `rake secret` to generate a secure secret key.
# Make sure the secrets in this file are kept private
# if you're sharing your code publicly.
development:
secret_key_base: cc267893ac3dd3c3cc6959aa3192a6f0c134942c93a3b88730c25a85932823f4d8fd6b40cba9216cd4f60aa97c8a98618139912bc00c6b9392f77b1e269495e7
test:
secret_key_base: a3ed5abf88dfc94e95dae735d4b23b717a3c95024dedfe90eb16686071f0be55725b908a78fa6d0a4bc64d34dcfd89311d2f655213c7264d986bbcb52ea43a2b
# Do not keep production secrets in the repository,
# instead read values from the environment.
production:
secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>

7
db/seeds.rb

@ -0,0 +1,7 @@
# This file should contain all the record creation needed to seed the database with its default values.
# The data can then be loaded with the rake db:seed (or created alongside the db with db:setup).
#
# Examples:
#
# cities = City.create([{ name: 'Chicago' }, { name: 'Copenhagen' }])
# Mayor.create(name: 'Emanuel', city: cities.first)

10
dictionary

@ -0,0 +1,10 @@
Lexicographer:
A writer of dictionaries; a harmless drudge that busies himself in tracing the
original, and detailing the signification of words.
computer scientist: | kəmˈpjuːtə ˈsaɪəntɪst |
A writer of computer programs; a harmless drudge that busies himself in
tracing the bug, and detailing the significance of bits.
Shamelessly taken and slightly modified from Samual Johnsons
"Dictionary of the english language" 1755

0
lib/assets/.keep

0
lib/tasks/.keep

0
log/.keep

67
public/404.html

@ -0,0 +1,67 @@
<!DOCTYPE html>
<html>
<head>
<title>The page you were looking for doesn't exist (404)</title>
<meta name="viewport" content="width=device-width,initial-scale=1">
<style>
body {
background-color: #EFEFEF;
color: #2E2F30;
text-align: center;
font-family: arial, sans-serif;
margin: 0;
}
div.dialog {
width: 95%;
max-width: 33em;
margin: 4em auto 0;
}
div.dialog > div {
border: 1px solid #CCC;
border-right-color: #999;
border-left-color: #999;
border-bottom-color: #BBB;
border-top: #B00100 solid 4px;
border-top-left-radius: 9px;
border-top-right-radius: 9px;
background-color: white;
padding: 7px 12% 0;
box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
}
h1 {
font-size: 100%;
color: #730E15;
line-height: 1.5em;
}
div.dialog > p {
margin: 0 0 1em;
padding: 1em;
background-color: #F7F7F7;
border: 1px solid #CCC;
border-right-color: #999;
border-left-color: #999;
border-bottom-color: #999;
border-bottom-left-radius: 4px;
border-bottom-right-radius: 4px;
border-top-color: #DADADA;
color: #666;
box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
}
</style>
</head>
<body>
<!-- This file lives in public/404.html -->
<div class="dialog">
<div>
<h1>The page you were looking for doesn't exist.</h1>
<p>You may have mistyped the address or the page may have moved.</p>
</div>
<p>If you are the application owner check the logs for more information.</p>
</div>
</body>
</html>

67
public/422.html

@ -0,0 +1,67 @@
<!DOCTYPE html>
<html>
<head>
<title>The change you wanted was rejected (422)</title>
<meta name="viewport" content="width=device-width,initial-scale=1">
<style>
body {
background-color: #EFEFEF;
color: #2E2F30;
text-align: center;
font-family: arial, sans-serif;
margin: 0;
}
div.dialog {
width: 95%;
max-width: 33em;
margin: 4em auto 0;
}
div.dialog > div {
border: 1px solid #CCC;
border-right-color: #999;
border-left-color: #999;
border-bottom-color: #BBB;
border-top: #B00100 solid 4px;
border-top-left-radius: 9px;
border-top-right-radius: 9px;
background-color: white;
padding: 7px 12% 0;
box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
}
h1 {
font-size: 100%;
color: #730E15;
line-height: 1.5em;
}
div.dialog > p {
margin: 0 0 1em;
padding: 1em;
background-color: #F7F7F7;
border: 1px solid #CCC;
border-right-color: #999;
border-left-color: #999;
border-bottom-color: #999;
border-bottom-left-radius: 4px;
border-bottom-right-radius: 4px;
border-top-color: #DADADA;
color: #666;
box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
}
</style>
</head>
<body>
<!-- This file lives in public/422.html -->
<div class="dialog">
<div>
<h1>The change you wanted was rejected.</h1>
<p>Maybe you tried to change something you didn't have access to.</p>
</div>
<p>If you are the application owner check the logs for more information.</p>
</div>
</body>
</html>

66
public/500.html

@ -0,0 +1,66 @@
<!DOCTYPE html>
<html>
<head>
<title>We're sorry, but something went wrong (500)</title>
<meta name="viewport" content="width=device-width,initial-scale=1">
<style>
body {
background-color: #EFEFEF;
color: #2E2F30;
text-align: center;
font-family: arial, sans-serif;
margin: 0;
}
div.dialog {
width: 95%;
max-width: 33em;
margin: 4em auto 0;
}
div.dialog > div {
border: 1px solid #CCC;
border-right-color: #999;
border-left-color: #999;
border-bottom-color: #BBB;
border-top: #B00100 solid 4px;
border-top-left-radius: 9px;
border-top-right-radius: 9px;
background-color: white;
padding: 7px 12% 0;
box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
}
h1 {
font-size: 100%;
color: #730E15;
line-height: 1.5em;
}
div.dialog > p {
margin: 0 0 1em;
padding: 1em;
background-color: #F7F7F7;
border: 1px solid #CCC;
border-right-color: #999;
border-left-color: #999;
border-bottom-color: #999;
border-bottom-left-radius: 4px;
border-bottom-right-radius: 4px;
border-top-color: #DADADA;
color: #666;
box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
}
</style>
</head>
<body>
<!-- This file lives in public/500.html -->
<div class="dialog">
<div>
<h1>We're sorry, but something went wrong.</h1>
</div>
<p>If you are the application owner check the logs for more information.</p>
</div>
</body>
</html>

0
public/favicon.ico

5
public/robots.txt

@ -0,0 +1,5 @@
# See http://www.robotstxt.org/robotstxt.html for documentation on how to use the robots.txt file
#
# To ban all spiders from the entire site uncomment the next two lines:
# User-agent: *
# Disallow: /

0
test/controllers/.keep

9
test/controllers/welcome_controller_test.rb

@ -0,0 +1,9 @@
require 'test_helper'
class WelcomeControllerTest < ActionController::TestCase
test "should get index" do
get :index
assert_response :success
end
end

0
test/fixtures/.keep

0
test/helpers/.keep

0
test/integration/.keep

0
test/mailers/.keep

0
test/models/.keep

10
test/test_helper.rb

@ -0,0 +1,10 @@
ENV['RAILS_ENV'] ||= 'test'
require File.expand_path('../../config/environment', __FILE__)
require 'rails/test_help'
class ActiveSupport::TestCase
# Setup all fixtures in test/fixtures/*.yml for all tests in alphabetical order.
fixtures :all
# Add more helper methods to be used by all tests here...
end

0
vendor/assets/javascripts/.keep

0
vendor/assets/stylesheets/.keep

Loading…
Cancel
Save