Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Comparing changes

Choose two branches to see what's changed or to start a new pull request. If you need to, you can also compare across forks.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also compare across forks.
base fork: paulmederos/ifreerun-community-map
base: ab6e04e192
...
head fork: paulmederos/ifreerun-community-map
compare: 5e1e107b42
Checking mergeability… Don't worry, you can still create the pull request.
  • 6 commits
  • 30 files changed
  • 0 commit comments
  • 1 contributor
Showing with 1,182 additions and 292 deletions.
  1. +12 −24 Gemfile
  2. +161 −0 Gemfile.lock
  3. +3 −0  app/assets/javascripts/pages.js.coffee
  4. +13 −0 app/assets/javascripts/scripts.js
  5. +29 −0 app/assets/javascripts/tabs.js
  6. +3 −0  app/assets/javascripts/users.js.coffee
  7. +343 −0 app/assets/stylesheets/base.css
  8. +242 −0 app/assets/stylesheets/grid.css
  9. +152 −0 app/assets/stylesheets/layout.css
  10. +3 −0  app/assets/stylesheets/pages.css.scss
  11. +3 −0  app/assets/stylesheets/users.css.scss
  12. +6 −0 app/controllers/pages_controller.rb
  13. +17 −0 app/controllers/users_controller.rb
  14. +2 −0  app/helpers/pages_helper.rb
  15. +2 −0  app/helpers/users_helper.rb
  16. +7 −0 app/models/user.rb
  17. +33 −3 app/views/layouts/application.html.erb
  18. +42 −0 app/views/pages/home.html.erb
  19. +28 −0 app/views/users/new.html.erb
  20. +4 −11 config/database.yml
  21. +6 −13 config/routes.rb
  22. +10 −0 db/migrate/20120525034941_create_users.rb
  23. +23 −0 db/schema.rb
  24. +0 −241 public/index.html
  25. +9 −0 test/fixtures/users.yml
  26. +7 −0 test/functional/pages_controller_test.rb
  27. +7 −0 test/functional/users_controller_test.rb
  28. +4 −0 test/unit/helpers/pages_helper_test.rb
  29. +4 −0 test/unit/helpers/users_helper_test.rb
  30. +7 −0 test/unit/user_test.rb
View
36 Gemfile
@@ -1,38 +1,26 @@
source 'https://rubygems.org'
gem 'rails', '3.2.1'
-
-# Bundle edge Rails instead:
-# gem 'rails', :git => 'git://github.com/rails/rails.git'
-
-gem 'sqlite3'
+gem 'thin'
+gem 'pg'
# Gems used only for assets and not required
# in production environments by default.
group :assets do
gem 'sass-rails', '~> 3.2.3'
+ gem 'less', '~> 2.2.1'
gem 'coffee-rails', '~> 3.2.1'
-
- # See https://github.com/sstephenson/execjs#readme for more supported runtimes
- # gem 'therubyracer'
-
gem 'uglifier', '>= 1.0.3'
+ gem 'therubyracer'
end
-gem 'jquery-rails'
-
-# To use ActiveModel has_secure_password
-# gem 'bcrypt-ruby', '~> 3.0.0'
-
-# To use Jbuilder templates for JSON
-# gem 'jbuilder'
-
-# Use unicorn as the web server
-# gem 'unicorn'
-
-# Deploy with Capistrano
-# gem 'capistrano'
+group :development, :test do
+ gem 'nifty-generators'
+ gem 'rspec', '~> 2.8'
+ gem 'ruby-debug19', :require => 'ruby-debug'
+end
-# To use debugger
-# gem 'ruby-debug19', :require => 'ruby-debug'
+gem 'bcrypt-ruby', '~> 3.0.0'
+gem 'jquery-rails'
+gem 'rails-backbone'
View
161 Gemfile.lock
@@ -0,0 +1,161 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ actionmailer (3.2.1)
+ actionpack (= 3.2.1)
+ mail (~> 2.4.0)
+ actionpack (3.2.1)
+ activemodel (= 3.2.1)
+ activesupport (= 3.2.1)
+ builder (~> 3.0.0)
+ erubis (~> 2.7.0)
+ journey (~> 1.0.1)
+ rack (~> 1.4.0)
+ rack-cache (~> 1.1)
+ rack-test (~> 0.6.1)
+ sprockets (~> 2.1.2)
+ activemodel (3.2.1)
+ activesupport (= 3.2.1)
+ builder (~> 3.0.0)
+ activerecord (3.2.1)
+ activemodel (= 3.2.1)
+ activesupport (= 3.2.1)
+ arel (~> 3.0.0)
+ tzinfo (~> 0.3.29)
+ activeresource (3.2.1)
+ activemodel (= 3.2.1)
+ activesupport (= 3.2.1)
+ activesupport (3.2.1)
+ i18n (~> 0.6)
+ multi_json (~> 1.0)
+ archive-tar-minitar (0.5.2)
+ arel (3.0.2)
+ bcrypt-ruby (3.0.1)
+ builder (3.0.0)
+ coffee-rails (3.2.2)
+ coffee-script (>= 2.2.0)
+ railties (~> 3.2.0)
+ coffee-script (2.2.0)
+ coffee-script-source
+ execjs
+ coffee-script-source (1.3.3)
+ columnize (0.3.6)
+ commonjs (0.2.6)
+ daemons (1.1.8)
+ diff-lcs (1.1.3)
+ ejs (1.0.0)
+ erubis (2.7.0)
+ eventmachine (0.12.10)
+ execjs (1.4.0)
+ multi_json (~> 1.0)
+ hike (1.2.1)
+ i18n (0.6.0)
+ journey (1.0.3)
+ jquery-rails (2.0.2)
+ railties (>= 3.2.0, < 5.0)
+ thor (~> 0.14)
+ json (1.7.3)
+ less (2.2.1)
+ commonjs (~> 0.2.6)
+ libv8 (3.3.10.4)
+ linecache19 (0.5.12)
+ ruby_core_source (>= 0.1.4)
+ mail (2.4.4)
+ i18n (>= 0.4.0)
+ mime-types (~> 1.16)
+ treetop (~> 1.4.8)
+ mime-types (1.18)
+ multi_json (1.3.5)
+ nifty-generators (0.4.6)
+ pg (0.13.2)
+ polyglot (0.3.3)
+ rack (1.4.1)
+ rack-cache (1.2)
+ rack (>= 0.4)
+ rack-ssl (1.3.2)
+ rack
+ rack-test (0.6.1)
+ rack (>= 1.0)
+ rails (3.2.1)
+ actionmailer (= 3.2.1)
+ actionpack (= 3.2.1)
+ activerecord (= 3.2.1)
+ activeresource (= 3.2.1)
+ activesupport (= 3.2.1)
+ bundler (~> 1.0)
+ railties (= 3.2.1)
+ rails-backbone (0.7.0)
+ coffee-script (~> 2.2.0)
+ ejs (~> 1.0.0)
+ railties (>= 3.1.0)
+ railties (3.2.1)
+ actionpack (= 3.2.1)
+ activesupport (= 3.2.1)
+ rack-ssl (~> 1.3.2)
+ rake (>= 0.8.7)
+ rdoc (~> 3.4)
+ thor (~> 0.14.6)
+ rake (0.9.2.2)
+ rdoc (3.12)
+ json (~> 1.4)
+ rspec (2.9.0)
+ rspec-core (~> 2.9.0)
+ rspec-expectations (~> 2.9.0)
+ rspec-mocks (~> 2.9.0)
+ rspec-core (2.9.0)
+ rspec-expectations (2.9.1)
+ diff-lcs (~> 1.1.3)
+ rspec-mocks (2.9.0)
+ ruby-debug-base19 (0.11.25)
+ columnize (>= 0.3.1)
+ linecache19 (>= 0.5.11)
+ ruby_core_source (>= 0.1.4)
+ ruby-debug19 (0.11.6)
+ columnize (>= 0.3.1)
+ linecache19 (>= 0.5.11)
+ ruby-debug-base19 (>= 0.11.19)
+ ruby_core_source (0.1.5)
+ archive-tar-minitar (>= 0.5.2)
+ sass (3.1.18)
+ sass-rails (3.2.5)
+ railties (~> 3.2.0)
+ sass (>= 3.1.10)
+ tilt (~> 1.3)
+ sprockets (2.1.3)
+ hike (~> 1.2)
+ rack (~> 1.0)
+ tilt (~> 1.1, != 1.3.0)
+ therubyracer (0.10.1)
+ libv8 (~> 3.3.10)
+ thin (1.3.1)
+ daemons (>= 1.0.9)
+ eventmachine (>= 0.12.6)
+ rack (>= 1.0.0)
+ thor (0.14.6)
+ tilt (1.3.3)
+ treetop (1.4.10)
+ polyglot
+ polyglot (>= 0.3.1)
+ tzinfo (0.3.33)
+ uglifier (1.2.4)
+ execjs (>= 0.3.0)
+ multi_json (>= 1.0.2)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ bcrypt-ruby (~> 3.0.0)
+ coffee-rails (~> 3.2.1)
+ jquery-rails
+ less (~> 2.2.1)
+ nifty-generators
+ pg
+ rails (= 3.2.1)
+ rails-backbone
+ rspec (~> 2.8)
+ ruby-debug19
+ sass-rails (~> 3.2.3)
+ therubyracer
+ thin
+ uglifier (>= 1.0.3)
View
3  app/assets/javascripts/pages.js.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://jashkenas.github.com/coffee-script/
View
13 app/assets/javascripts/scripts.js
@@ -0,0 +1,13 @@
+$(document).ready(function() {
+
+ $('.hidden-text').hide();
+
+ $('.reveal-story').bind('click', function() {
+ $( $(this).attr('href') ).fadeIn('fast');
+
+ $(this).addClass('disabled');
+
+ return false;
+ });
+
+});
View
29 app/assets/javascripts/tabs.js
@@ -0,0 +1,29 @@
+
+/**
+ * Skeleton V1.1
+ * Copyright 2011, Dave Gamache
+ * www.getskeleton.com
+ * Free to use under the MIT license.
+ * http://www.opensource.org/licenses/mit-license.php
+ * 8/17/2011
+ */
+
+(function ($) {
+ // hash change handler
+ function hashchange () {
+ var hash = window.location.hash
+ , el = $('ul.tabs [href*="' + hash + '"]')
+ , content = $(hash)
+
+ if (el.length && !el.hasClass('active') && content.length) {
+ el.closest('.tabs').find('.active').removeClass('active');
+ el.addClass('active');
+ content.show().addClass('active').siblings().hide().removeClass('active');
+ }
+ }
+
+ // listen on event and fire right away
+ $(window).on('hashchange.skeleton', hashchange);
+ hashchange();
+ $(hashchange);
+})(jQuery);
View
3  app/assets/javascripts/users.js.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://jashkenas.github.com/coffee-script/
View
343 app/assets/stylesheets/base.css
@@ -0,0 +1,343 @@
+/*
+* Skeleton V1.1
+* Copyright 2011, Dave Gamache
+* www.getskeleton.com
+* Free to use under the MIT license.
+* http://www.opensource.org/licenses/mit-license.php
+* 8/17/2011
+*/
+
+
+/* Table of Content
+==================================================
+ #Reset & Basics
+ #Basic Styles
+ #Site Styles
+ #Typography
+ #Links
+ #Lists
+ #Images
+ #Buttons
+ #Tabs
+ #Forms
+ #Misc */
+
+
+/* #Reset & Basics (Inspired by E. Meyers)
+================================================== */
+ html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ font-size: 100%;
+ font: inherit;
+ vertical-align: baseline; }
+ article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
+ display: block; }
+ body {
+ line-height: 1; }
+ ol, ul {
+ list-style: none; }
+ blockquote, q {
+ quotes: none; }
+ blockquote:before, blockquote:after,
+ q:before, q:after {
+ content: '';
+ content: none; }
+ table {
+ border-collapse: collapse;
+ border-spacing: 0; }
+
+
+/* #Basic Styles
+================================================== */
+ body {
+ background: #fff;
+ font: 14px/21px "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, sans-serif;
+ color: #444;
+ -webkit-font-smoothing: antialiased; /* Fix for webkit rendering */
+ -webkit-text-size-adjust: 100%;
+ }
+
+
+/* #Typography
+================================================== */
+ h1, h2, h3, h4, h5, h6 {
+ color: #181818;
+ font-family: "Georgia", "Times New Roman", Helvetica, Arial, sans-serif;
+ font-weight: normal; }
+ h1 a, h2 a, h3 a, h4 a, h5 a, h6 a { font-weight: inherit; }
+ h1 { font-size: 46px; line-height: 50px; margin-bottom: 14px;}
+ h2 { font-size: 35px; line-height: 40px; margin-bottom: 10px; }
+ h3 { font-size: 28px; line-height: 34px; margin-bottom: 8px; }
+ h4 { font-size: 21px; line-height: 30px; margin-bottom: 4px; }
+ h5 { font-size: 17px; line-height: 24px; }
+ h6 { font-size: 14px; line-height: 21px; }
+ .subheader { color: #777; }
+
+ p { margin: 0 0 20px 0; }
+ p img { margin: 0; }
+ p.lead { font-size: 21px; line-height: 27px; color: #777; }
+
+ em { font-style: italic; }
+ strong { font-weight: bold; color: #333; }
+ small { font-size: 80%; }
+
+/* Blockquotes */
+ blockquote, blockquote p { font-size: 17px; line-height: 24px; color: #777; font-style: italic; }
+ blockquote { margin: 0 0 20px; padding: 9px 20px 0 19px; border-left: 1px solid #ddd; }
+ blockquote cite { display: block; font-size: 12px; color: #555; }
+ blockquote cite:before { content: "\2014 \0020"; }
+ blockquote cite a, blockquote cite a:visited, blockquote cite a:visited { color: #555; }
+
+ hr { border: solid #ddd; border-width: 1px 0 0; clear: both; margin: 10px 0 30px; height: 0; }
+
+
+/* #Links
+================================================== */
+ a, a:visited { color: #333; text-decoration: underline; outline: 0; }
+ a:hover, a:focus { color: #000; }
+ p a, p a:visited { line-height: inherit; }
+
+
+/* #Lists
+================================================== */
+ ul, ol { margin-bottom: 20px; }
+ ul { list-style: none outside; }
+ ol { list-style: decimal; }
+ ol, ul.square, ul.circle, ul.disc { margin-left: 30px; }
+ ul.square { list-style: square outside; }
+ ul.circle { list-style: circle outside; }
+ ul.disc { list-style: disc outside; }
+ ul ul, ul ol,
+ ol ol, ol ul { margin: 4px 0 5px 30px; font-size: 90%; }
+ ul ul li, ul ol li,
+ ol ol li, ol ul li { margin-bottom: 6px; }
+ li { line-height: 18px; margin-bottom: 12px; }
+ ul.large li { line-height: 21px; }
+ li p { line-height: 21px; }
+
+/* #Images
+================================================== */
+
+ img.scale-with-grid {
+ max-width: 100%;
+ height: auto; }
+
+
+/* #Buttons
+================================================== */
+
+ .button,
+ button,
+ input[type="submit"],
+ input[type="reset"],
+ input[type="button"] {
+ background: #eee; /* Old browsers */
+ background: #eee -moz-linear-gradient(top, rgba(255,255,255,.2) 0%, rgba(0,0,0,.2) 100%); /* FF3.6+ */
+ background: #eee -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,.2)), color-stop(100%,rgba(0,0,0,.2))); /* Chrome,Safari4+ */
+ background: #eee -webkit-linear-gradient(top, rgba(255,255,255,.2) 0%,rgba(0,0,0,.2) 100%); /* Chrome10+,Safari5.1+ */
+ background: #eee -o-linear-gradient(top, rgba(255,255,255,.2) 0%,rgba(0,0,0,.2) 100%); /* Opera11.10+ */
+ background: #eee -ms-linear-gradient(top, rgba(255,255,255,.2) 0%,rgba(0,0,0,.2) 100%); /* IE10+ */
+ background: #eee linear-gradient(top, rgba(255,255,255,.2) 0%,rgba(0,0,0,.2) 100%); /* W3C */
+ border: 1px solid #aaa;
+ border-top: 1px solid #ccc;
+ border-left: 1px solid #ccc;
+ padding: 4px 12px;
+ -moz-border-radius: 3px;
+ -webkit-border-radius: 3px;
+ border-radius: 3px;
+ color: #444;
+ display: inline-block;
+ font-size: 11px;
+ font-weight: bold;
+ text-decoration: none;
+ text-shadow: 0 1px rgba(255, 255, 255, .75);
+ cursor: pointer;
+ margin-bottom: 20px;
+ line-height: normal;
+ padding: 8px 10px;
+ font-family: "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, sans-serif; }
+
+ .button:hover,
+ button:hover,
+ input[type="submit"]:hover,
+ input[type="reset"]:hover,
+ input[type="button"]:hover {
+ color: #222;
+ background: #ddd; /* Old browsers */
+ background: #ddd -moz-linear-gradient(top, rgba(255,255,255,.3) 0%, rgba(0,0,0,.3) 100%); /* FF3.6+ */
+ background: #ddd -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,.3)), color-stop(100%,rgba(0,0,0,.3))); /* Chrome,Safari4+ */
+ background: #ddd -webkit-linear-gradient(top, rgba(255,255,255,.3) 0%,rgba(0,0,0,.3) 100%); /* Chrome10+,Safari5.1+ */
+ background: #ddd -o-linear-gradient(top, rgba(255,255,255,.3) 0%,rgba(0,0,0,.3) 100%); /* Opera11.10+ */
+ background: #ddd -ms-linear-gradient(top, rgba(255,255,255,.3) 0%,rgba(0,0,0,.3) 100%); /* IE10+ */
+ background: #ddd linear-gradient(top, rgba(255,255,255,.3) 0%,rgba(0,0,0,.3) 100%); /* W3C */
+ border: 1px solid #888;
+ border-top: 1px solid #aaa;
+ border-left: 1px solid #aaa; }
+
+ .button:active,
+ button:active,
+ input[type="submit"]:active,
+ input[type="reset"]:active,
+ input[type="button"]:active {
+ border: 1px solid #666;
+ background: #ccc; /* Old browsers */
+ background: #ccc -moz-linear-gradient(top, rgba(255,255,255,.35) 0%, rgba(10,10,10,.4) 100%); /* FF3.6+ */
+ background: #ccc -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,.35)), color-stop(100%,rgba(10,10,10,.4))); /* Chrome,Safari4+ */
+ background: #ccc -webkit-linear-gradient(top, rgba(255,255,255,.35) 0%,rgba(10,10,10,.4) 100%); /* Chrome10+,Safari5.1+ */
+ background: #ccc -o-linear-gradient(top, rgba(255,255,255,.35) 0%,rgba(10,10,10,.4) 100%); /* Opera11.10+ */
+ background: #ccc -ms-linear-gradient(top, rgba(255,255,255,.35) 0%,rgba(10,10,10,.4) 100%); /* IE10+ */
+ background: #ccc linear-gradient(top, rgba(255,255,255,.35) 0%,rgba(10,10,10,.4) 100%); /* W3C */ }
+
+ .button.full-width,
+ button.full-width,
+ input[type="submit"].full-width,
+ input[type="reset"].full-width,
+ input[type="button"].full-width {
+ width: 100%;
+ padding-left: 0 !important;
+ padding-right: 0 !important;
+ text-align: center; }
+
+ /* Fix for odd Mozilla border & padding issues */
+ button::-moz-focus-inner,
+ input::-moz-focus-inner {
+ border: 0;
+ padding: 0;
+ }
+
+
+/* #Tabs (activate in tabs.js)
+================================================== */
+ ul.tabs {
+ display: block;
+ margin: 0 0 20px 0;
+ padding: 0;
+ border-bottom: solid 1px #ddd; }
+ ul.tabs li {
+ display: block;
+ width: auto;
+ height: 30px;
+ padding: 0;
+ float: left;
+ margin-bottom: 0; }
+ ul.tabs li a {
+ display: block;
+ text-decoration: none;
+ width: auto;
+ height: 29px;
+ padding: 0px 20px;
+ line-height: 30px;
+ border: solid 1px #ddd;
+ border-width: 1px 1px 0 0;
+ margin: 0;
+ background: #f5f5f5;
+ font-size: 13px; }
+ ul.tabs li a.active {
+ background: #fff;
+ height: 30px;
+ position: relative;
+ top: -4px;
+ padding-top: 4px;
+ border-left-width: 1px;
+ margin: 0 0 0 -1px;
+ color: #111;
+ -moz-border-radius-topleft: 2px;
+ -webkit-border-top-left-radius: 2px;
+ border-top-left-radius: 2px;
+ -moz-border-radius-topright: 2px;
+ -webkit-border-top-right-radius: 2px;
+ border-top-right-radius: 2px; }
+ ul.tabs li:first-child a.active {
+ margin-left: 0; }
+ ul.tabs li:first-child a {
+ border-width: 1px 1px 0 1px;
+ -moz-border-radius-topleft: 2px;
+ -webkit-border-top-left-radius: 2px;
+ border-top-left-radius: 2px; }
+ ul.tabs li:last-child a {
+ -moz-border-radius-topright: 2px;
+ -webkit-border-top-right-radius: 2px;
+ border-top-right-radius: 2px; }
+
+ ul.tabs-content { margin: 0; display: block; }
+ ul.tabs-content > li { display:none; }
+ ul.tabs-content > li.active { display: block; }
+
+ /* Clearfixing tabs for beautiful stacking */
+ ul.tabs:before,
+ ul.tabs:after {
+ content: '\0020';
+ display: block;
+ overflow: hidden;
+ visibility: hidden;
+ width: 0;
+ height: 0; }
+ ul.tabs:after {
+ clear: both; }
+ ul.tabs {
+ zoom: 1; }
+
+
+/* #Forms
+================================================== */
+
+ form {
+ margin-bottom: 20px; }
+ fieldset {
+ margin-bottom: 20px; }
+ input[type="text"],
+ input[type="password"],
+ input[type="email"],
+ textarea,
+ select {
+ border: 1px solid #ccc;
+ padding: 6px 4px;
+ outline: none;
+ -moz-border-radius: 2px;
+ -webkit-border-radius: 2px;
+ border-radius: 2px;
+ font: 13px "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, sans-serif;
+ color: #777;
+ margin: 0;
+ width: 210px;
+ max-width: 100%;
+ display: block;
+ margin-bottom: 20px;
+ background: #fff; }
+ select {
+ padding: 0; }
+ input[type="text"]:focus,
+ input[type="password"]:focus,
+ input[type="email"]:focus,
+ textarea:focus {
+ border: 1px solid #aaa;
+ color: #444;
+ -moz-box-shadow: 0 0 3px rgba(0,0,0,.2);
+ -webkit-box-shadow: 0 0 3px rgba(0,0,0,.2);
+ box-shadow: 0 0 3px rgba(0,0,0,.2); }
+ textarea {
+ min-height: 60px; }
+ label,
+ legend {
+ display: block;
+ font-weight: bold;
+ font-size: 13px; }
+ select {
+ width: 220px; }
+ input[type="checkbox"] {
+ display: inline; }
+ label span,
+ legend span {
+ font-weight: normal;
+ font-size: 13px;
+ color: #444; }
+
+/* #Misc
+================================================== */
+ .remove-bottom { margin-bottom: 0 !important; }
+ .half-bottom { margin-bottom: 10px !important; }
+ .add-bottom { margin-bottom: 20px !important; }
+
+
View
242 app/assets/stylesheets/grid.css
@@ -0,0 +1,242 @@
+/*
+* Skeleton V1.1
+* Copyright 2011, Dave Gamache
+* www.getskeleton.com
+* Free to use under the MIT license.
+* http://www.opensource.org/licenses/mit-license.php
+* 8/17/2011
+*/
+
+
+/* Table of Contents
+==================================================
+ #Base 960 Grid
+ #Tablet (Portrait)
+ #Mobile (Portrait)
+ #Mobile (Landscape)
+ #Clearing */
+
+
+
+/* #Base 960 Grid
+================================================== */
+
+ .container { position: relative; width: 960px; margin: 0 auto; padding: 0; }
+ .container .column,
+ .container .columns { float: left; display: inline; margin-left: 10px; margin-right: 10px; }
+ .row { margin-bottom: 20px; }
+
+ /* Nested Column Classes */
+ .column.alpha, .columns.alpha { margin-left: 0; }
+ .column.omega, .columns.omega { margin-right: 0; }
+
+ /* Base Grid */
+ .container .one.column,
+ .container .one.columns { width: 40px; }
+ .container .two.columns { width: 100px; }
+ .container .three.columns { width: 160px; }
+ .container .four.columns { width: 220px; }
+ .container .five.columns { width: 280px; }
+ .container .six.columns { width: 340px; }
+ .container .seven.columns { width: 400px; }
+ .container .eight.columns { width: 460px; }
+ .container .nine.columns { width: 520px; }
+ .container .ten.columns { width: 580px; }
+ .container .eleven.columns { width: 640px; }
+ .container .twelve.columns { width: 700px; }
+ .container .thirteen.columns { width: 760px; }
+ .container .fourteen.columns { width: 820px; }
+ .container .fifteen.columns { width: 880px; }
+ .container .sixteen.columns { width: 940px; }
+
+ .container .one-third.column { width: 300px; }
+ .container .two-thirds.column { width: 620px; }
+
+ /* Offsets */
+ .container .offset-by-one { padding-left: 60px; }
+ .container .offset-by-two { padding-left: 120px; }
+ .container .offset-by-three { padding-left: 180px; }
+ .container .offset-by-four { padding-left: 240px; }
+ .container .offset-by-five { padding-left: 300px; }
+ .container .offset-by-six { padding-left: 360px; }
+ .container .offset-by-seven { padding-left: 420px; }
+ .container .offset-by-eight { padding-left: 480px; }
+ .container .offset-by-nine { padding-left: 540px; }
+ .container .offset-by-ten { padding-left: 600px; }
+ .container .offset-by-eleven { padding-left: 660px; }
+ .container .offset-by-twelve { padding-left: 720px; }
+ .container .offset-by-thirteen { padding-left: 780px; }
+ .container .offset-by-fourteen { padding-left: 840px; }
+ .container .offset-by-fifteen { padding-left: 900px; }
+
+
+
+/* #Tablet (Portrait)
+================================================== */
+
+ /* Note: Design for a width of 768px */
+
+ @media only screen and (min-width: 768px) and (max-width: 959px) {
+ .container { width: 768px; }
+ .container .column,
+ .container .columns { margin-left: 10px; margin-right: 10px; }
+ .column.alpha, .columns.alpha { margin-left: 0; margin-right: 10px; }
+ .column.omega, .columns.omega { margin-right: 0; margin-left: 10px; }
+ .alpha.omega { margin-left: 0; margin-right: 0; }
+
+ .container .one.column,
+ .container .one.columns { width: 28px; }
+ .container .two.columns { width: 76px; }
+ .container .three.columns { width: 124px; }
+ .container .four.columns { width: 172px; }
+ .container .five.columns { width: 220px; }
+ .container .six.columns { width: 268px; }
+ .container .seven.columns { width: 316px; }
+ .container .eight.columns { width: 364px; }
+ .container .nine.columns { width: 412px; }
+ .container .ten.columns { width: 460px; }
+ .container .eleven.columns { width: 508px; }
+ .container .twelve.columns { width: 556px; }
+ .container .thirteen.columns { width: 604px; }
+ .container .fourteen.columns { width: 652px; }
+ .container .fifteen.columns { width: 700px; }
+ .container .sixteen.columns { width: 748px; }
+
+ .container .one-third.column { width: 236px; }
+ .container .two-thirds.column { width: 492px; }
+
+ /* Offsets */
+ .container .offset-by-one { padding-left: 48px; }
+ .container .offset-by-two { padding-left: 96px; }
+ .container .offset-by-three { padding-left: 144px; }
+ .container .offset-by-four { padding-left: 192px; }
+ .container .offset-by-five { padding-left: 240px; }
+ .container .offset-by-six { padding-left: 288px; }
+ .container .offset-by-seven { padding-left: 336px; }
+ .container .offset-by-eight { padding-left: 384px; }
+ .container .offset-by-nine { padding-left: 432px; }
+ .container .offset-by-ten { padding-left: 480px; }
+ .container .offset-by-eleven { padding-left: 528px; }
+ .container .offset-by-twelve { padding-left: 576px; }
+ .container .offset-by-thirteen { padding-left: 624px; }
+ .container .offset-by-fourteen { padding-left: 672px; }
+ .container .offset-by-fifteen { padding-left: 720px; }
+ }
+
+
+/* #Mobile (Portrait)
+================================================== */
+
+ /* Note: Design for a width of 320px */
+
+ @media only screen and (max-width: 767px) {
+ .container { width: 300px; }
+ .container .columns,
+ .container .column { margin: 0; }
+
+ .container .one.column,
+ .container .one.columns,
+ .container .two.columns,
+ .container .three.columns,
+ .container .four.columns,
+ .container .five.columns,
+ .container .six.columns,
+ .container .seven.columns,
+ .container .eight.columns,
+ .container .nine.columns,
+ .container .ten.columns,
+ .container .eleven.columns,
+ .container .twelve.columns,
+ .container .thirteen.columns,
+ .container .fourteen.columns,
+ .container .fifteen.columns,
+ .container .sixteen.columns,
+ .container .one-third.column,
+ .container .two-thirds.column { width: 300px; }
+
+ /* Offsets */
+ .container .offset-by-one,
+ .container .offset-by-two,
+ .container .offset-by-three,
+ .container .offset-by-four,
+ .container .offset-by-five,
+ .container .offset-by-six,
+ .container .offset-by-seven,
+ .container .offset-by-eight,
+ .container .offset-by-nine,
+ .container .offset-by-ten,
+ .container .offset-by-eleven,
+ .container .offset-by-twelve,
+ .container .offset-by-thirteen,
+ .container .offset-by-fourteen,
+ .container .offset-by-fifteen { padding-left: 0; }
+
+ }
+
+
+/* #Mobile (Landscape)
+================================================== */
+
+ /* Note: Design for a width of 480px */
+
+ @media only screen and (min-width: 480px) and (max-width: 767px) {
+ .container { width: 420px; }
+ .container .columns,
+ .container .column { margin: 0; }
+
+ .container .one.column,
+ .container .one.columns,
+ .container .two.columns,
+ .container .three.columns,
+ .container .four.columns,
+ .container .five.columns,
+ .container .six.columns,
+ .container .seven.columns,
+ .container .eight.columns,
+ .container .nine.columns,
+ .container .ten.columns,
+ .container .eleven.columns,
+ .container .twelve.columns,
+ .container .thirteen.columns,
+ .container .fourteen.columns,
+ .container .fifteen.columns,
+ .container .sixteen.columns,
+ .container .one-third.column,
+ .container .two-thirds.column { width: 420px; }
+ }
+
+
+/* #Clearing
+================================================== */
+
+ /* Self Clearing Goodness */
+ .container:after { content: "\0020"; display: block; height: 0; clear: both; visibility: hidden; }
+
+ /* Use clearfix class on parent to clear nested columns,
+ or wrap each row of columns in a <div class="row"> */
+ .clearfix:before,
+ .clearfix:after,
+ .row:before,
+ .row:after {
+ content: '\0020';
+ display: block;
+ overflow: hidden;
+ visibility: hidden;
+ width: 0;
+ height: 0; }
+ .row:after,
+ .clearfix:after {
+ clear: both; }
+ .row,
+ .clearfix {
+ zoom: 1; }
+
+ /* You can also use a <br class="clear" /> to clear columns */
+ .clear {
+ clear: both;
+ display: block;
+ overflow: hidden;
+ visibility: hidden;
+ width: 0;
+ height: 0;
+ }
View
152 app/assets/stylesheets/layout.css
@@ -0,0 +1,152 @@
+/*
+* Skeleton V1.1
+* Copyright 2011, Dave Gamache
+* www.getskeleton.com
+* Free to use under the MIT license.
+* http://www.opensource.org/licenses/mit-license.php
+* 8/17/2011
+*/
+
+/* Table of Content
+==================================================
+ #Site Styles
+ #Page Styles
+ #Media Queries
+ #Font-Face */
+
+/* #Site Styles
+================================================== */
+
+body {
+ font-family: 'Helvetica', sans-serif;
+ background: rgba(200,200,200,.2);
+}
+
+.disabled { cursor: default; }
+
+
+header {
+ /* text-align: center; */
+ margin:3em 0 2em;
+}
+
+section {
+ margin-bottom: 1em;
+}
+
+.location-search input {
+ display: inline;
+ height: 2em;
+ padding:.25em .5em;
+ margin: 0;
+ font-size: 1.5em;
+}
+
+.location-search input[type="submit"] {
+ padding:.5em 1.5em;
+ height:54px;
+}
+
+.location-search input[type="text"] {
+ width:556px;
+}
+
+#main {
+ background: rgba(150,150,150,.1);
+}
+
+
+#sidebar {
+ background: rgba(200,200,200,.4);
+ height: 534px;
+ position: relative;
+}
+
+.map {
+ padding:1em;
+}
+
+.additions {
+ position: absolute;
+ width: 100%;
+ top:0;
+ background: #fc9406;
+}
+
+.additions a {
+ display:block;
+ width: 100%;
+ height: 36px;
+ padding-top: 16px;
+ text-align: center;
+ background: rgb(200,200,200);
+ border-bottom:1px solid rgba(0,0,0,.1);
+ box-shadow: 0 1px 0 rgba(255,255,255,.3);
+ background: -webkit-linear-gradient(top, rgba(255,255,255,0) 0%,rgba(206,206,206,0.25) 100%);
+}
+
+.results {
+ position: absolute;
+ top:56px;
+ overflow-y: scroll;
+ width:100%;
+}
+
+.results ul li a {
+ display: block;
+ width: 100%;
+ float:left;
+ padding: 1em 0 1em .25em;
+ background: white;
+
+}
+
+
+
+footer {
+ background-color:red;
+}
+
+
+
+
+
+/* #Page Styles
+================================================== */
+
+/* #Media Queries
+================================================== */
+
+ /* Smaller than standard 960 (devices and browsers) */
+ @media only screen and (max-width: 959px) {}
+
+ /* Tablet Portrait size to standard 960 (devices and browsers) */
+ @media only screen and (min-width: 768px) and (max-width: 959px) {}
+
+ /* All Mobile Sizes (devices and browser) */
+ @media only screen and (max-width: 767px) {}
+
+ /* Mobile Landscape Size to Tablet Portrait (devices and browsers) */
+ @media only screen and (min-width: 480px) and (max-width: 767px) {}
+
+ /* Mobile Portrait Size to Mobile Landscape Size (devices and browsers) */
+ @media only screen and (max-width: 479px) {}
+
+
+/* #Font-Face
+================================================== */
+/* This is the proper syntax for an @font-face file
+ Just create a "fonts" folder at the root,
+ copy your FontName into code below and remove
+ comment brackets */
+
+/* @font-face {
+ font-family: 'FontName';
+ src: url('../fonts/FontName.eot');
+ src: url('../fonts/FontName.eot?iefix') format('eot'),
+ url('../fonts/FontName.woff') format('woff'),
+ url('../fonts/FontName.ttf') format('truetype'),
+ url('../fonts/FontName.svg#webfontZam02nTh') format('svg');
+ font-weight: normal;
+ font-style: normal; }
+*/
View
3  app/assets/stylesheets/pages.css.scss
@@ -0,0 +1,3 @@
+// Place all the styles related to the Pages controller here.
+// They will automatically be included in application.css.
+// You can use Sass (SCSS) here: http://sass-lang.com/
View
3  app/assets/stylesheets/users.css.scss
@@ -0,0 +1,3 @@
+// Place all the styles related to the users controller here.
+// They will automatically be included in application.css.
+// You can use Sass (SCSS) here: http://sass-lang.com/
View
6 app/controllers/pages_controller.rb
@@ -0,0 +1,6 @@
+class PagesController < ApplicationController
+
+ def home
+
+ end
+end
View
17 app/controllers/users_controller.rb
@@ -0,0 +1,17 @@
+class UsersController < ApplicationController
+
+ def new
+ @user = User.new
+ end
+
+ def create
+ @user = User.new(params[:user])
+ if @user.save
+ session[:user_id] = @user.id
+ redirect_to root_url, notice: "Thank you for signing up!"
+ else
+ render "new"
+ end
+ end
+
+end
View
2  app/helpers/pages_helper.rb
@@ -0,0 +1,2 @@
+module PagesHelper
+end
View
2  app/helpers/users_helper.rb
@@ -0,0 +1,2 @@
+module UsersHelper
+end
View
7 app/models/user.rb
@@ -0,0 +1,7 @@
+class User < ActiveRecord::Base
+ has_secure_password
+
+ attr_accessible :email, :password, :password_confirmation
+
+ validates_uniqueness_of :email
+end
View
36 app/views/layouts/application.html.erb
@@ -1,14 +1,44 @@
<!DOCTYPE html>
-<html>
+<!--[if lt IE 7 ]><html class="ie ie6" lang="en"> <![endif]-->
+<!--[if IE 7 ]><html class="ie ie7" lang="en"> <![endif]-->
+<!--[if IE 8 ]><html class="ie ie8" lang="en"> <![endif]-->
+<!--[if (gte IE 9)|!(IE)]><!--><html lang="en"> <!--<![endif]-->
<head>
- <title>Ifreerun</title>
+ <meta charset="utf-8">
+ <title>Parkour / Freerunning communities and hotspots around the world | iFreerun.com</title>
+ <meta name="description" content="Find Parkour and Freerunning communities and hotspots around the world. Meet with locals to learn parkour and freerunning.">
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+
<%= stylesheet_link_tag "application", :media => "all" %>
+
+ <!--[if lt IE 9]>
+ <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
+ <![endif]-->
+
+ <link rel="shortcut icon" href="favicon.ico">
+ <link rel="apple-touch-icon" href="apple-touch-icon.png">
+ <link rel="apple-touch-icon" sizes="72x72" href="apple-touch-icon-72x72.png">
+ <link rel="apple-touch-icon" sizes="114x114" href="apple-touch-icon-114x114.png">
+
+ <script type="text/javascript" src="http://use.typekit.com/ohu7hxr.js"></script>
+ <script type="text/javascript">try{Typekit.load();}catch(e){}</script>
+
<%= javascript_include_tag "application" %>
<%= csrf_meta_tags %>
</head>
<body>
-<%= yield %>
+ <div class="container">
+ <%= yield %>
+ </div><!-- container -->
+
+ <footer>
+ <div class="container">
+ <div class="sixteen columns">
+ Find us on Twitter.
+ </div>
+ </div>
+ </footer>
</body>
</html>
View
42 app/views/pages/home.html.erb
@@ -0,0 +1,42 @@
+<header class="sixteen columns clearfix">
+ <h1>Where do you want to learn / train?</h1>
+ <div id="user_header">
+ <%= link_to "Sign Up", new_user_path %>
+ </div>
+</header>
+
+<section class="clearfix">
+ <div class="sixteen columns">
+ <div class="sixteen columns">
+ <form class="location-search">
+ <input type="text" />
+ <input type="submit" value="Let's Run"/>
+ </form>
+ </div>
+ <div class="sixteen columns">
+ <% flash.each do |name, msg| %>
+ <%= content_tag :div, msg, id: "flash_#{name}"%>
+ <% end %>
+ </div>
+ <div id="main" class="ten columns omega">
+ <div class="map">
+ <iframe width="100%" height="500px" frameborder="0" scrolling="no" marginheight="0" marginwidth="0"
+ src="http://maps.google.com/maps?f=q&amp;source=s_q&amp;hl=en&amp;geocode=&amp;q=blacksburg+va&amp;aq=&amp;sll=37.0625,-95.677068&amp;sspn=42.03917,63.369141&amp;ie=UTF8&amp;hq=&amp;hnear=Blacksburg,+Montgomery,+Virginia&amp;t=m&amp;z=12&amp;ll=37.229573,-80.413939&amp;output=embed"></iframe>
+ </div>
+ </div>
+ <div id="sidebar" class="six columns alpha">
+ <div class="additions">
+ <a href="#">Add a Community</a>
+ </div>
+ <div class="results">
+ <ul>
+ <li><a href="#">Result 1</a></li>
+ <li><a href="#">Result 2</a></li>
+ <li><a href="#">Result 3</a></li>
+ </ul>
+ </div>
+ </div>
+
+
+ </div>
+</section>
View
28 app/views/users/new.html.erb
@@ -0,0 +1,28 @@
+<h1>Sign Up</h1>
+
+<%= form_for @user do |f| %>
+ <% if @user.errors.any? %>
+ <div class="error_messages">
+ <h2>Form is invalid</h2>
+ <ul>
+ <% @user.errors.full_messages.each do |message| %>
+ <li><%= message %></li>
+ <% end %>
+ </ul>
+ </div>
+ <% end %>
+
+ <div class="field">
+ <%= f.label :email %><br />
+ <%= f.text_field :email %>
+ </div>
+ <div class="field">
+ <%= f.label :password %><br />
+ <%= f.password_field :password %>
+ </div>
+ <div class="field">
+ <%= f.label :password_confirmation %><br />
+ <%= f.password_field :password_confirmation %>
+ </div>
+ <div class="actions"><%= f.submit "Sign Up" %></div>
+<% end %>
View
15 config/database.yml
@@ -1,17 +1,10 @@
-# SQLite version 3.x
-# gem install sqlite3
-#
-# Ensure the SQLite 3 gem is defined in your Gemfile
-# gem 'sqlite3'
development:
- adapter: sqlite3
- database: db/development.sqlite3
- pool: 5
+ adapter: postgresql
+ database: ifreerun_dev
+ username: paul
timeout: 5000
+ pool: 5
-# 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:
adapter: sqlite3
database: db/test.sqlite3
View
19 config/routes.rb
@@ -1,10 +1,13 @@
Ifreerun::Application.routes.draw do
- # The priority is based upon order of creation:
- # first created -> highest priority.
+
+ resources :users
+ # You can have the root of your site routed with "root"
+ # just remember to delete public/index.html.
+ root :to => 'pages#home'
+
# Sample of regular route:
# match 'products/:id' => 'catalog#view'
- # Keep in mind you can assign values other than :controller and :action
# Sample of named route:
# match 'products/:id/purchase' => 'catalog#purchase', :as => :purchase
@@ -45,14 +48,4 @@
# # (app/controllers/admin/products_controller.rb)
# resources :products
# end
-
- # You can have the root of your site routed with "root"
- # just remember to delete public/index.html.
- # root :to => 'welcome#index'
-
- # See how all your routes lay out with "rake routes"
-
- # This is a legacy wild controller route that's not recommended for RESTful applications.
- # Note: This route will make all actions in every controller accessible via GET requests.
- # match ':controller(/:action(/:id))(.:format)'
end
View
10 db/migrate/20120525034941_create_users.rb
@@ -0,0 +1,10 @@
+class CreateUsers < ActiveRecord::Migration
+ def change
+ create_table :users do |t|
+ t.string :email
+ t.string :password_digest
+
+ t.timestamps
+ end
+ end
+end
View
23 db/schema.rb
@@ -0,0 +1,23 @@
+# encoding: UTF-8
+# This file is auto-generated from the current state of the database. Instead
+# of editing this file, please use the migrations feature of Active Record to
+# incrementally modify your database, and then regenerate this schema definition.
+#
+# Note that this schema.rb definition is the authoritative source for your
+# database schema. If you need to create the application database on another
+# system, you should be using db:schema:load, not running all the migrations
+# from scratch. The latter is a flawed and unsustainable approach (the more migrations
+# you'll amass, the slower it'll run and the greater likelihood for issues).
+#
+# It's strongly recommended to check this file into your version control system.
+
+ActiveRecord::Schema.define(:version => 20120525034941) do
+
+ create_table "users", :force => true do |t|
+ t.string "email"
+ t.string "password_digest"
+ t.datetime "created_at", :null => false
+ t.datetime "updated_at", :null => false
+ end
+
+end
View
241 public/index.html
@@ -1,241 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <title>Ruby on Rails: Welcome aboard</title>
- <style type="text/css" media="screen">
- body {
- margin: 0;
- margin-bottom: 25px;
- padding: 0;
- background-color: #f0f0f0;
- font-family: "Lucida Grande", "Bitstream Vera Sans", "Verdana";
- font-size: 13px;
- color: #333;
- }
-
- h1 {
- font-size: 28px;
- color: #000;
- }
-
- a {color: #03c}
- a:hover {
- background-color: #03c;
- color: white;
- text-decoration: none;
- }
-
-
- #page {
- background-color: #f0f0f0;
- width: 750px;
- margin: 0;
- margin-left: auto;
- margin-right: auto;
- }
-
- #content {
- float: left;
- background-color: white;
- border: 3px solid #aaa;
- border-top: none;
- padding: 25px;
- width: 500px;
- }
-
- #sidebar {
- float: right;
- width: 175px;
- }
-
- #footer {
- clear: both;
- }
-
- #header, #about, #getting-started {
- padding-left: 75px;
- padding-right: 30px;
- }
-
-
- #header {
- background-image: url("assets/rails.png");
- background-repeat: no-repeat;
- background-position: top left;
- height: 64px;
- }
- #header h1, #header h2 {margin: 0}
- #header h2 {
- color: #888;
- font-weight: normal;
- font-size: 16px;
- }
-
-
- #about h3 {
- margin: 0;
- margin-bottom: 10px;
- font-size: 14px;
- }
-
- #about-content {
- background-color: #ffd;
- border: 1px solid #fc0;
- margin-left: -55px;
- margin-right: -10px;
- }
- #about-content table {
- margin-top: 10px;
- margin-bottom: 10px;
- font-size: 11px;
- border-collapse: collapse;
- }
- #about-content td {
- padding: 10px;
- padding-top: 3px;
- padding-bottom: 3px;
- }
- #about-content td.name {color: #555}
- #about-content td.value {color: #000}
-
- #about-content ul {
- padding: 0;
- list-style-type: none;
- }
-
- #about-content.failure {
- background-color: #fcc;
- border: 1px solid #f00;
- }
- #about-content.failure p {
- margin: 0;
- padding: 10px;
- }
-
-
- #getting-started {
- border-top: 1px solid #ccc;
- margin-top: 25px;
- padding-top: 15px;
- }
- #getting-started h1 {
- margin: 0;
- font-size: 20px;
- }
- #getting-started h2 {
- margin: 0;
- font-size: 14px;
- font-weight: normal;
- color: #333;
- margin-bottom: 25px;
- }
- #getting-started ol {
- margin-left: 0;
- padding-left: 0;
- }
- #getting-started li {
- font-size: 18px;
- color: #888;
- margin-bottom: 25px;
- }
- #getting-started li h2 {
- margin: 0;
- font-weight: normal;
- font-size: 18px;
- color: #333;
- }
- #getting-started li p {
- color: #555;
- font-size: 13px;
- }
-
-
- #sidebar ul {
- margin-left: 0;
- padding-left: 0;
- }
- #sidebar ul h3 {
- margin-top: 25px;
- font-size: 16px;
- padding-bottom: 10px;
- border-bottom: 1px solid #ccc;
- }
- #sidebar li {
- list-style-type: none;
- }
- #sidebar ul.links li {
- margin-bottom: 5px;
- }
-
- .filename {
- font-style: italic;
- }
- </style>
- <script type="text/javascript">
- function about() {
- info = document.getElementById('about-content');
- if (window.XMLHttpRequest)
- { xhr = new XMLHttpRequest(); }
- else
- { xhr = new ActiveXObject("Microsoft.XMLHTTP"); }
- xhr.open("GET","rails/info/properties",false);
- xhr.send("");
- info.innerHTML = xhr.responseText;
- info.style.display = 'block'
- }
- </script>
- </head>
- <body>
- <div id="page">
- <div id="sidebar">
- <ul id="sidebar-items">
- <li>
- <h3>Browse the documentation</h3>
- <ul class="links">
- <li><a href="http://guides.rubyonrails.org/">Rails Guides</a></li>
- <li><a href="http://api.rubyonrails.org/">Rails API</a></li>
- <li><a href="http://www.ruby-doc.org/core/">Ruby core</a></li>
- <li><a href="http://www.ruby-doc.org/stdlib/">Ruby standard library</a></li>
- </ul>
- </li>
- </ul>
- </div>
-
- <div id="content">
- <div id="header">
- <h1>Welcome aboard</h1>
- <h2>You&rsquo;re riding Ruby on Rails!</h2>
- </div>
-
- <div id="about">
- <h3><a href="rails/info/properties" onclick="about(); return false">About your application&rsquo;s environment</a></h3>
- <div id="about-content" style="display: none"></div>
- </div>
-
- <div id="getting-started">
- <h1>Getting started</h1>
- <h2>Here&rsquo;s how to get rolling:</h2>
-
- <ol>
- <li>
- <h2>Use <code>rails generate</code> to create your models and controllers</h2>
- <p>To see all available options, run it without parameters.</p>
- </li>
-
- <li>
- <h2>Set up a default route and remove <span class="filename">public/index.html</span></h2>
- <p>Routes are set up in <span class="filename">config/routes.rb</span>.</p>
- </li>
-
- <li>
- <h2>Create your database</h2>
- <p>Run <code>rake db:create</code> to create your database. If you're not using SQLite (the default), edit <span class="filename">config/database.yml</span> with your username and password.</p>
- </li>
- </ol>
- </div>
- </div>
-
- <div id="footer">&nbsp;</div>
- </div>
- </body>
-</html>
View
9 test/fixtures/users.yml
@@ -0,0 +1,9 @@
+# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
+
+one:
+ email: MyString
+ password_digest: MyString
+
+two:
+ email: MyString
+ password_digest: MyString
View
7 test/functional/pages_controller_test.rb
@@ -0,0 +1,7 @@
+require 'test_helper'
+
+class PagesControllerTest < ActionController::TestCase
+ # test "the truth" do
+ # assert true
+ # end
+end
View
7 test/functional/users_controller_test.rb
@@ -0,0 +1,7 @@
+require 'test_helper'
+
+class UsersControllerTest < ActionController::TestCase
+ # test "the truth" do
+ # assert true
+ # end
+end
View
4 test/unit/helpers/pages_helper_test.rb
@@ -0,0 +1,4 @@
+require 'test_helper'
+
+class PagesHelperTest < ActionView::TestCase
+end
View
4 test/unit/helpers/users_helper_test.rb
@@ -0,0 +1,4 @@
+require 'test_helper'
+
+class UsersHelperTest < ActionView::TestCase
+end
View
7 test/unit/user_test.rb
@@ -0,0 +1,7 @@
+require 'test_helper'
+
+class UserTest < ActiveSupport::TestCase
+ # test "the truth" do
+ # assert true
+ # end
+end

No commit comments for this range

Something went wrong with that request. Please try again.