Update dependencies, feature specs and sitemap

This commit is contained in:
2015-07-14 14:11:33 +02:00
parent 17bd340071
commit 42cc5afe6d
14 changed files with 123 additions and 112 deletions
+9 -7
View File
@@ -5,9 +5,9 @@ source "http://rubygems.org"
# development dependencies will be added by default to the :development group.
gemspec
gem "rails", "4.2.0"
gem "rails", " ~> 4.2.3"
group :assets do
gem 'sass-rails', ' ~> 5.0.0'
gem 'sass-rails' #, ' ~> 5.0.0'
gem 'bourbon'
gem 'coffee-script'
#gem 'therubyracer', :platforms => :ruby
@@ -26,7 +26,7 @@ gem 'orm_adapter', github: 'bterkuile/orm_adapter'
gem 'devise'
gem 'devise_simply_stored', github: 'bterkuile/devise_simply_stored'
gem 'slim-rails'
gem 'paperclip'
gem 'paperclip', ['>= 3.4', '!= 4.3.0']
gem 'email_validator'
gem 'actionpack-page_caching'
# Declare any dependencies that are still in development here instead of in
@@ -35,14 +35,16 @@ gem 'actionpack-page_caching'
# your gem to rubygems.org.
# To use debugger
group :test do
gem 'steak'
gem 'rspec-its'
group :development, :test do
gem 'rspec-rails'
gem 'pry-rails'
end
group :test do
gem 'factory_girl_rails'
gem 'capybara'
gem 'rspec-its'
end
group :development do
gem 'pry-rails'
gem 'thin'
#gem 'ruby-debug19', :require => 'ruby-debug'
end
+79 -73
View File
@@ -22,7 +22,7 @@ GIT
GIT
remote: git://github.com/bterkuile/simply_stored.git
revision: 652caf8c2cfe4f828477f8b76d0cd201851cd53d
revision: 8e8288b20ab64d62f1da7516731cd936f81b1f19
specs:
simply_stored (1.0.0)
activesupport
@@ -48,44 +48,44 @@ GEM
remote: http://rubygems.org/
specs:
ace-rails-ap (3.0.3)
actionmailer (4.2.0)
actionpack (= 4.2.0)
actionview (= 4.2.0)
activejob (= 4.2.0)
actionmailer (4.2.3)
actionpack (= 4.2.3)
actionview (= 4.2.3)
activejob (= 4.2.3)
mail (~> 2.5, >= 2.5.4)
rails-dom-testing (~> 1.0, >= 1.0.5)
actionpack (4.2.0)
actionview (= 4.2.0)
activesupport (= 4.2.0)
rack (~> 1.6.0)
actionpack (4.2.3)
actionview (= 4.2.3)
activesupport (= 4.2.3)
rack (~> 1.6)
rack-test (~> 0.6.2)
rails-dom-testing (~> 1.0, >= 1.0.5)
rails-html-sanitizer (~> 1.0, >= 1.0.1)
rails-html-sanitizer (~> 1.0, >= 1.0.2)
actionpack-page_caching (1.0.2)
actionpack (>= 4.0.0, < 5)
actionview (4.2.0)
activesupport (= 4.2.0)
actionview (4.2.3)
activesupport (= 4.2.3)
builder (~> 3.1)
erubis (~> 2.7.0)
rails-dom-testing (~> 1.0, >= 1.0.5)
rails-html-sanitizer (~> 1.0, >= 1.0.1)
activejob (4.2.0)
activesupport (= 4.2.0)
rails-html-sanitizer (~> 1.0, >= 1.0.2)
activejob (4.2.3)
activesupport (= 4.2.3)
globalid (>= 0.3.0)
activemodel (4.2.0)
activesupport (= 4.2.0)
activemodel (4.2.3)
activesupport (= 4.2.3)
builder (~> 3.1)
activerecord (4.2.0)
activemodel (= 4.2.0)
activesupport (= 4.2.0)
activerecord (4.2.3)
activemodel (= 4.2.3)
activesupport (= 4.2.3)
arel (~> 6.0)
activesupport (4.2.0)
activesupport (4.2.3)
i18n (~> 0.7)
json (~> 1.7, >= 1.7.7)
minitest (~> 5.1)
thread_safe (~> 0.3, >= 0.3.4)
tzinfo (~> 1.1)
arel (6.0.0)
arel (6.0.2)
bcrypt (3.1.10)
bourbon (4.2.3)
sass (~> 3.4)
@@ -106,11 +106,11 @@ GEM
coffee-script-source
execjs
coffee-script-source (1.9.1.1)
couchrest (1.2.0)
mime-types (~> 1.15)
multi_json (~> 1.0)
rest-client (~> 1.6.1)
daemons (1.2.2)
couchrest (1.2.1)
mime-types (>= 1.15)
multi_json (~> 1.7, ~> 1.0)
rest-client (~> 1.8.0)
daemons (1.2.3)
devise (3.5.1)
bcrypt (~> 3.0)
orm_adapter (~> 0.1)
@@ -119,6 +119,8 @@ GEM
thread_safe (~> 0.1)
warden (~> 1.2.3)
diff-lcs (1.2.5)
domain_name (0.5.24)
unf (>= 0.0.5, < 1.0.0)
email_validator (1.6.0)
activemodel
erubis (2.7.0)
@@ -136,8 +138,10 @@ GEM
sass (>= 3.3.0, < 3.5)
globalid (0.3.5)
activesupport (>= 4.1.0)
http-cookie (1.0.2)
domain_name (~> 0.5)
i18n (0.7.0)
jquery-rails (4.0.3)
jquery-rails (4.0.4)
rails-dom-testing (~> 1.0)
railties (>= 4.2.0)
thor (>= 0.14, < 2.0)
@@ -147,18 +151,19 @@ GEM
mail (2.6.3)
mime-types (>= 1.16, < 3)
method_source (0.8.2)
mime-types (1.25.1)
mime-types (2.6.1)
mini_portile (0.6.2)
minitest (5.7.0)
multi_json (1.11.0)
multi_json (1.11.2)
netrc (0.10.3)
nokogiri (1.6.6.2)
mini_portile (~> 0.6.0)
paperclip (4.2.2)
activemodel (>= 3.0.0)
activesupport (>= 3.0.0)
cocaine (~> 0.5.3)
paperclip (4.2.4)
activemodel (>= 3.2.0)
activesupport (>= 3.2.0)
cocaine (~> 0.5.5)
mime-types
pickadate-rails (3.5.5.0)
pickadate-rails (3.5.6.0)
railties (>= 3.1.0)
pry (0.10.1)
coderay (~> 1.1.0)
@@ -166,19 +171,19 @@ GEM
slop (~> 3.4)
pry-rails (0.3.4)
pry (>= 0.9.10)
rack (1.6.1)
rack (1.6.4)
rack-test (0.6.3)
rack (>= 1.0)
rails (4.2.0)
actionmailer (= 4.2.0)
actionpack (= 4.2.0)
actionview (= 4.2.0)
activejob (= 4.2.0)
activemodel (= 4.2.0)
activerecord (= 4.2.0)
activesupport (= 4.2.0)
rails (4.2.3)
actionmailer (= 4.2.3)
actionpack (= 4.2.3)
actionview (= 4.2.3)
activejob (= 4.2.3)
activemodel (= 4.2.3)
activerecord (= 4.2.3)
activesupport (= 4.2.3)
bundler (>= 1.3.0, < 2.0)
railties (= 4.2.0)
railties (= 4.2.3)
sprockets-rails
rails-deprecated_sanitizer (1.0.3)
activesupport (>= 4.2.0.alpha)
@@ -188,39 +193,39 @@ GEM
rails-deprecated_sanitizer (>= 1.0.1)
rails-html-sanitizer (1.0.2)
loofah (~> 2.0)
railties (4.2.0)
actionpack (= 4.2.0)
activesupport (= 4.2.0)
railties (4.2.3)
actionpack (= 4.2.3)
activesupport (= 4.2.3)
rake (>= 0.8.7)
thor (>= 0.18.1, < 2.0)
rake (10.4.2)
rdoc (4.2.0)
responders (2.1.0)
railties (>= 4.2.0, < 5)
rest-client (1.6.8)
mime-types (~> 1.16)
rdoc (>= 2.4.2)
rspec-core (3.2.3)
rspec-support (~> 3.2.0)
rspec-expectations (3.2.1)
rest-client (1.8.0)
http-cookie (>= 1.0.2, < 2.0)
mime-types (>= 1.16, < 3.0)
netrc (~> 0.7)
rspec-core (3.3.1)
rspec-support (~> 3.3.0)
rspec-expectations (3.3.0)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.2.0)
rspec-support (~> 3.3.0)
rspec-its (1.2.0)
rspec-core (>= 3.0.0)
rspec-expectations (>= 3.0.0)
rspec-mocks (3.2.1)
rspec-mocks (3.3.1)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.2.0)
rspec-rails (3.2.3)
rspec-support (~> 3.3.0)
rspec-rails (3.3.2)
actionpack (>= 3.0, < 4.3)
activesupport (>= 3.0, < 4.3)
railties (>= 3.0, < 4.3)
rspec-core (~> 3.2.0)
rspec-expectations (~> 3.2.0)
rspec-mocks (~> 3.2.0)
rspec-support (~> 3.2.0)
rspec-support (3.2.2)
sass (3.4.14)
rspec-core (~> 3.3.0)
rspec-expectations (~> 3.3.0)
rspec-mocks (~> 3.3.0)
rspec-support (~> 3.3.0)
rspec-support (3.3.0)
sass (3.4.16)
sass-rails (5.0.3)
railties (>= 4.0.0, < 5.0)
sass (~> 3.1)
@@ -239,13 +244,10 @@ GEM
slop (3.6.0)
sprockets (3.2.0)
rack (~> 1.0)
sprockets-rails (2.3.1)
sprockets-rails (2.3.2)
actionpack (>= 3.0)
activesupport (>= 3.0)
sprockets (>= 2.8, < 4.0)
steak (2.0.0)
capybara (>= 1.0.0)
rspec-rails (>= 2.5.0)
temple (0.7.6)
thin (1.6.3)
daemons (~> 1.0, >= 1.0.9)
@@ -258,6 +260,9 @@ GEM
railties (>= 3.1.1)
tzinfo (1.2.2)
thread_safe (~> 0.1)
unf (0.1.4)
unf_ext
unf_ext (0.0.7.1)
warden (1.2.3)
rack (>= 1.0)
xpath (2.0.0)
@@ -270,6 +275,7 @@ DEPENDENCIES
ace-rails-ap
actionpack-page_caching
bourbon
capybara
cmtool!
coffee-script
couch_potato!
@@ -281,14 +287,14 @@ DEPENDENCIES
foundation-rails
jquery-rails
orm_adapter!
paperclip
paperclip (>= 3.4, != 4.3.0)
pickadate-rails
pry-rails
rails (= 4.2.0)
rails (~> 4.2.3)
rspec-its
sass-rails (~> 5.0.0)
rspec-rails
sass-rails
simply_stored!
slim-rails
steak
thin
tinymce-rails
+5 -3
View File
@@ -71,16 +71,18 @@ end
### Routing
Add the following routes:
Add the following routes with changes according to your application:
```ruby
ALLOWED_LOCALES = /nl|de|fr|en|es/
devise_for :users, :controllers => {:sessions => 'cmtool/sessions', :passwords => 'cmtool/passwords'}
mount Cmtool::Engine => '/cmtool'
get '/:locale' => 'pages#home', constraints: {locale: ALLOWED_LOCALES}, as: :go_to_locale
get '/sitemap(.:format)' => 'pages#sitemap'
scope '(/:locale)', constraints: {locale: /nl|be|de|fr|en/}, defaults: { locale: :nl } do
scope '(/:locale)', constraints: {locale: ALLOWED_LOCALES}, defaults: { locale: :nl } do
root to: 'pages#home'
get "/:name" => "pages#show", constraints: {name: /.*/}, as: :page
end
get "/*url" => "pages#not_found"
root :to => 'pages#home'
```
### User model
+1
View File
@@ -1,3 +1,4 @@
class Page
include Cmtool::Includes::Page
view :by_locale, key: :locale
end
+4 -2
View File
@@ -33,8 +33,10 @@ module Cmtool
def sitemap
respond_to do |format|
format.xml do
page_uris = ::Page.for_sitemap.map{|p| page_path(p.name, locale: p.locale)}
pages_xml = page_uris.map{|uri| "<url><loc>#{uri}</loc></url>"}.join("\n")
pages_xml = ::Page.for_sitemap.map do |page|
uri = page_path(page.name, locale: page.locale)
"<url><loc>#{uri}</loc><lastmod>#{page.updated_at.strftime('%Y-%m-%d')}</lastmod></url>"
end.join("\n")
result = <<-XML
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
-4
View File
@@ -1,4 +0,0 @@
require 'spec_helper'
# Put your acceptance spec helpers inside spec/acceptance/support
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
-9
View File
@@ -1,9 +0,0 @@
module NavigationHelpers
# Put helper methods related to the paths in your application here.
def homepage
"/"
end
end
RSpec.configuration.include NavigationHelpers, :type => :acceptance
+1 -1
View File
@@ -9,7 +9,7 @@ Dummy::Application.configure do
config.action_controller.perform_caching = true
# Disable Rails's static asset server (Apache or nginx will already do this)
config.serve_static_assets = false
config.serve_static_files = false
# Compress JavaScripts and CSS
config.assets.compress = true
+1 -1
View File
@@ -8,7 +8,7 @@ Dummy::Application.configure do
config.cache_classes = true
# Configure static asset server for tests with Cache-Control for performance
config.serve_static_assets = true
config.serve_static_files = true
config.static_cache_control = "public, max-age=3600"
# Log error messages when you accidentally call methods on nil
+1 -1
View File
@@ -2,7 +2,7 @@ Rails.application.routes.draw do
devise_for :users, :controllers => {:sessions => 'cmtool/sessions', :passwords => 'cmtool/passwords'}
mount Cmtool::Engine => "/cmtool"
get '/sitemap(.:format)' => 'test_pages#sitemap'
get '/sitemap(.:format)' => 'pages#sitemap'
get "/:name" => "pages#show"
scope '(/:locale)', constraints: {locale: /nl|be|de|fr|en/}, defaults: { locale: :nl } do
get "/:name" => "pages#show", constraints: {name: /.*/}, as: :page
@@ -1,11 +1,6 @@
require 'acceptance/acceptance_helper'
feature 'Pages index', %q{
In order have pages
As a user
I want to see pages
} do
require 'spec_helper'
feature 'Pages index' do
scenario 'visit root' do
visit '/cmtool'
page.current_path.should == '/users/sign_in'
+12
View File
@@ -0,0 +1,12 @@
require 'spec_helper'
feature 'sitemap.xml' do
scenario 'proper sitemap' do
p1 = Page.create name: 'nl-1', title: 'NL 1', locale: 'nl'
p1 = Page.create name: 'en-1', title: 'EN 1', locale: 'en'
visit "/sitemap.xml"
page.body.should include "<lastmod>#{Date.today.strftime('%Y-%m-%d')}</lastmod>"
page.body.should include "<loc>/en/en-1</loc>"
page.body.should include "<loc>/nl-1</loc>"
end
end
+3 -1
View File
@@ -3,7 +3,6 @@ ENV["RAILS_ENV"] = "test"
require File.expand_path("../dummy/config/environment.rb", __FILE__)
require 'rspec/rails'
require 'rspec/autorun'
require 'factory_girl'
require 'capybara/rspec'
@@ -23,10 +22,13 @@ RSpec.configure do |config|
#config.include CompanyFactory
config.include Cmtool::Engine.routes.url_helpers
config.include Devise::TestHelpers, type: :controller
config.include FeatureHelpers, type: :feature
#config.use_transactional_fixtures = true
config.infer_base_class_for_anonymous_controllers = true
config.render_views = true
config.expect_with(:rspec) { |c| c.syntax = [:expect, :should] }
config.before :each do
CouchPotato.couchrest_database.recreate!
@user = User.first || create(:user)
@@ -1,4 +1,4 @@
module HelperMethods
module FeatureHelpers
# Put helper methods you need to be available in all acceptance specs here.
def create_user(email, password='secret')
@user = User.find_by_email(email) || FactoryGirl.create(:user, email: email, password: password)
@@ -14,6 +14,8 @@ module HelperMethods
def submit_form
find("[type=submit]").click
end
end
RSpec.configuration.include HelperMethods, :type => :acceptance
def homepage
"/"
end
end