Cesidio Di Landa
12 years ago
24 changed files with 251 additions and 118 deletions
@ -1,28 +0,0 @@ |
|||
== 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>. |
@ -1,16 +0,0 @@ |
|||
// 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 vendor/assets/javascripts of plugins, if any, 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.
|
|||
//
|
|||
// WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT'S TO BE PROCESSED, ANY BLANK LINE SHOULD
|
|||
// GO AFTER THE REQUIRES BELOW.
|
|||
//
|
|||
//= require jquery
|
|||
//= require jquery_ujs
|
|||
//= require turbolinks
|
|||
//= require_tree .
|
@ -0,0 +1,32 @@ |
|||
#= require jquery |
|||
#= require jquery_ujs |
|||
#= require jquery.turbolinks |
|||
#= require turbolinks |
|||
|
|||
# FRONT END |
|||
#= require twitter/bootstrap |
|||
|
|||
# JS TEMPLATES |
|||
#= require handlebars.runtime |
|||
|
|||
# I18n |
|||
#= require i18n |
|||
#= require i18n/translations |
|||
|
|||
# ALL THE REST |
|||
#= require_tree . |
|||
|
|||
'use strict' |
|||
|
|||
I18n.defaultLocale = '<%= I18n.default_locale %>' |
|||
I18n.locale = $('html').attr 'lang' |
|||
|
|||
startSpinner = -> |
|||
$('#loading-spinner').show() |
|||
|
|||
stopSpinner = -> |
|||
$('#loading-spinner').fadeOut() |
|||
|
|||
# Turbolinks Spinner |
|||
document.addEventListener 'page:fetch', startSpinner |
|||
document.addEventListener 'page:receive', stopSpinner |
@ -0,0 +1,5 @@ |
|||
'use strict' |
|||
|
|||
# jQuery Turbolinks |
|||
$ -> |
|||
$('[rel~="tooltip"]').tooltip() |
@ -0,0 +1,2 @@ |
|||
var I18n = I18n || {}; |
|||
I18n.translations = {"en":{"date":{"formats":{"default":"%Y-%m-%d","short":"%b %d","long":"%B %d, %Y"},"day_names":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"abbr_day_names":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"month_names":[null,"January","February","March","April","May","June","July","August","September","October","November","December"],"abbr_month_names":[null,"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"order":["year","month","day"]},"time":{"formats":{"default":"%a, %d %b %Y %H:%M:%S %z","short":"%d %b %H:%M","long":"%B %d, %Y %H:%M"},"am":"am","pm":"pm"},"datetime":{"distance_in_words":{"half_a_minute":"half a minute","less_than_x_seconds":{"one":"less than 1 second","other":"less than %{count} seconds"},"x_seconds":{"one":"1 second","other":"%{count} seconds"},"less_than_x_minutes":{"one":"less than a minute","other":"less than %{count} minutes"},"x_minutes":{"one":"1 minute","other":"%{count} minutes"},"about_x_hours":{"one":"about 1 hour","other":"about %{count} hours"},"x_days":{"one":"1 day","other":"%{count} days"},"about_x_months":{"one":"about 1 month","other":"about %{count} months"},"x_months":{"one":"1 month","other":"%{count} months"},"about_x_years":{"one":"about 1 year","other":"about %{count} years"},"over_x_years":{"one":"over 1 year","other":"over %{count} years"},"almost_x_years":{"one":"almost 1 year","other":"almost %{count} years"}},"prompts":{"year":"Year","month":"Month","day":"Day","hour":"Hour","minute":"Minute","second":"Seconds"}}}}; |
@ -0,0 +1,25 @@ |
|||
/* ========================================================================== |
|||
Bootstrap and overrides |
|||
========================================================================== */ |
|||
|
|||
@import "twitter/bootstrap/bootstrap"; |
|||
|
|||
body { |
|||
padding-top: 60px; |
|||
} |
|||
|
|||
@import "twitter/bootstrap/responsive"; |
|||
|
|||
/* Fontawesome Icons |
|||
========================================================================== */ |
|||
|
|||
@fontAwesomeEotPath: asset-path("fontawesome-webfont.eot?v=3.0.2"); |
|||
@fontAwesomeEotPath_iefix: asset-path("fontawesome-webfont.eot?#iefix&v=3.0.2"); |
|||
@fontAwesomeWoffPath: asset-path("fontawesome-webfont.woff?v=3.0.2"); |
|||
@fontAwesomeTtfPath: asset-path("fontawesome-webfont.ttf?v=3.0.2"); |
|||
@import "fontawesome"; |
|||
|
|||
/* Overriding default variables and loading new ones |
|||
========================================================================== */ |
|||
|
|||
@import "stubs/variables_overrides.css.less"; |
@ -0,0 +1,13 @@ |
|||
@import "twitter/bootstrap/variables"; |
|||
|
|||
/* ========================================================================== |
|||
Variables and overrides |
|||
========================================================================== */ |
|||
|
|||
/* New variables |
|||
========================================================================== */ |
|||
|
|||
/* Bootstrap variables override |
|||
========================================================================== */ |
|||
|
|||
@sansFontFamily: "Ubuntu", "Helvetica Neue", Helvetica, Arial, sans-serif; |
@ -0,0 +1,5 @@ |
|||
class PagesController < ApplicationController |
|||
|
|||
def home |
|||
end |
|||
end |
@ -1,2 +1,9 @@ |
|||
module ApplicationHelper |
|||
def title(page_title) |
|||
content_for(:title) { page_title.to_s } |
|||
end |
|||
|
|||
def yield_or_default(section, default = '') |
|||
content_for?(section) ? content_for(section) : default |
|||
end |
|||
end |
|||
|
@ -1,14 +0,0 @@ |
|||
<!DOCTYPE html> |
|||
<html> |
|||
<head> |
|||
<title>Starterapp</title> |
|||
<%= stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => true %> |
|||
<%= javascript_include_tag "application", "data-turbolinks-track" => true %> |
|||
<%= csrf_meta_tags %> |
|||
</head> |
|||
<body> |
|||
|
|||
<%= yield %> |
|||
|
|||
</body> |
|||
</html> |
@ -0,0 +1,37 @@ |
|||
!!! |
|||
%html{ lang: I18n.locale.to_s } |
|||
%head |
|||
%meta{ charset: 'utf-8' } |
|||
%meta{ name: 'viewport', content: 'width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0' } |
|||
%title= yield_or_default :title, controller.action_name.titlecase |
|||
= csrf_meta_tags |
|||
= yield :head |
|||
/ Le HTML5 shim, for IE6-8 support of HTML elements |
|||
/[if lt IE 9] |
|||
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script> |
|||
|
|||
/ Le styles |
|||
= stylesheet_link_tag 'http://fonts.googleapis.com/css?family=Ubuntu:400,500,700', |
|||
'application', |
|||
media: 'all' |
|||
|
|||
/ Touch icons |
|||
%link{ href: asset_path('apple-touch-icon.png'), rel: 'apple-touch-icon' } |
|||
%link{ href: asset_path('apple-touch-icon-72x72.png'), rel: 'apple-touch-icon', sizes: '72x72' } |
|||
%link{ href: asset_path('apple-touch-icon-114x114.png'), rel: 'apple-touch-icon', sizes: '114x114' } |
|||
%link{ href: asset_path('apple-touch-icon-144x144.png'), rel: 'apple-touch-icon', sizes: '144x144' } |
|||
|
|||
/ |
|||
Le javascript |
|||
\================================================== |
|||
/ Placed at the top of the document 'cause of turbolinks |
|||
= javascript_include_tag 'application' |
|||
|
|||
%body |
|||
= render 'shared/navbar' |
|||
|
|||
#main-container.container |
|||
.content= yield |
|||
|
|||
#footer |
|||
.container= render 'shared/footer' |
@ -0,0 +1 @@ |
|||
%h1= t('hello') |
@ -0,0 +1 @@ |
|||
%footer.text-center |
@ -0,0 +1,4 @@ |
|||
.navbar.navbar-fixed-top |
|||
.navbar-inner |
|||
.container |
|||
= link_to Rails.application.class.parent_name, root_path, class: 'brand' |
@ -0,0 +1,26 @@ |
|||
# Split context in several files. |
|||
# By default only one file with all translations is exported and |
|||
# no configuration is required. Your settings for asset pipeline |
|||
# are automatically recognized. |
|||
# |
|||
# If you want to split translations into several files or specify |
|||
# locale contexts that will be exported, just use this file to do |
|||
# so. |
|||
# |
|||
# If you're going to use the Rails 3.1 asset pipeline, change |
|||
# the following configuration to something like this: |
|||
# |
|||
# translations: |
|||
# - file: "app/assets/javascripts/i18n/translations.js" |
|||
# |
|||
# If you're running an old version, you can use something |
|||
# like this: |
|||
# |
|||
# translations: |
|||
# - file: "public/javascripts/translations.js" |
|||
# only: "*" |
|||
# |
|||
|
|||
translations: |
|||
- file: 'app/assets/javascripts/i18n/translations.js' |
|||
only: ['*.date', '*.time', '*.datetime'] |
@ -1,49 +1,5 @@ |
|||
Starterapp::Application.routes.draw do |
|||
# 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 to: 'welcome#index' |
|||
root to: 'pages#home' |
|||
|
|||
# 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 within a namespace: |
|||
# namespace :admin do |
|||
# # Directs /admin/products/* to Admin::ProductsController |
|||
# # (app/controllers/admin/products_controller.rb) |
|||
# resources :products |
|||
# end |
|||
end |
|||
|
@ -0,0 +1,6 @@ |
|||
Changelog |
|||
========= |
|||
|
|||
0.1 |
|||
--- |
|||
* First version |
@ -0,0 +1,9 @@ |
|||
Starter App |
|||
=========== |
|||
|
|||
* Ruby 2 |
|||
* Rails 4 |
|||
* PostgreSQL |
|||
* Twitter Bootstrap |
|||
* Heroku |
|||
* RSpec |
@ -0,0 +1 @@ |
|||
0.1 |
@ -0,0 +1,8 @@ |
|||
require 'spec_helper' |
|||
|
|||
describe 'Home' do |
|||
it "shows Hello World message" do |
|||
visit root_path |
|||
expect(page).to have_content I18n.t('hello') |
|||
end |
|||
end |
@ -0,0 +1,56 @@ |
|||
if ENV['CI'] |
|||
require 'coveralls' |
|||
Coveralls.wear! 'rails' |
|||
end |
|||
|
|||
unless ENV['DRB'] |
|||
require 'simplecov' |
|||
SimpleCov.start 'rails' |
|||
end |
|||
|
|||
# This file is copied to spec/ when you run 'rails generate rspec:install' |
|||
ENV['RAILS_ENV'] ||= 'test' |
|||
require File.expand_path('../../config/environment', __FILE__) |
|||
require 'rspec/rails' |
|||
require 'rspec/autorun' |
|||
|
|||
# Requires supporting ruby files with custom matchers and macros, etc, |
|||
# in spec/support/ and its subdirectories. |
|||
Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f } |
|||
|
|||
require 'webmock/rspec' |
|||
require 'capybara/rspec' |
|||
|
|||
WebMock.disable_net_connect! allow: 'graph.facebook.com', allow_localhost: true |
|||
|
|||
#Capybara.ignore_hidden_elements = false # testing hidden fields |
|||
|
|||
RSpec.configure do |config| |
|||
# == Mock Framework |
|||
# |
|||
# If you prefer to use mocha, flexmock or RR, uncomment the appropriate line: |
|||
# |
|||
# config.mock_with :mocha |
|||
# config.mock_with :flexmock |
|||
# config.mock_with :rr |
|||
# config.mock_with :rspec |
|||
|
|||
|
|||
# Run specs in random order to surface order dependencies. If you find an |
|||
# order dependency and want to debug it, you can fix the order by providing |
|||
# the seed, which is printed after each run. |
|||
# --seed 1234 |
|||
config.order = 'random' |
|||
|
|||
config.include Delorean |
|||
config.include MailerMacros |
|||
ActionMailer::Base.perform_deliveries = false |
|||
ActionMailer::Base.raise_delivery_errors = false |
|||
ActionMailer::Base.delivery_method = :test |
|||
|
|||
config.before(:each) do |
|||
back_to_the_present |
|||
reset_email |
|||
#load "#{Rails.root}/db/seeds.rb" |
|||
end |
|||
end |
@ -0,0 +1,9 @@ |
|||
module MailerMacros |
|||
def last_email |
|||
ActionMailer::Base.deliveries.last |
|||
end |
|||
|
|||
def reset_email |
|||
ActionMailer::Base.deliveries = [] |
|||
end |
|||
end |
@ -1,15 +0,0 @@ |
|||
ENV["RAILS_ENV"] = "test" |
|||
require File.expand_path('../../config/environment', __FILE__) |
|||
require 'rails/test_help' |
|||
|
|||
class ActiveSupport::TestCase |
|||
ActiveRecord::Migration.check_pending! |
|||
|
|||
# Setup all fixtures in test/fixtures/*.yml for all tests in alphabetical order. |
|||
# |
|||
# Note: You'll currently still have to declare fixtures explicitly in integration tests |
|||
# -- they do not yet inherit this setting |
|||
fixtures :all |
|||
|
|||
# Add more helper methods to be used by all tests here... |
|||
end |
Loading…
Reference in new issue