robots.txt (close #37)

did committed Mar 23, 2015
commit c5592b42649bbcdde6085272d715cafead68ec8d
Showing 4 changed files with 29 additions and 0 deletions
locomotive/steam/middlewares/robots.rb b/lib/locomotive/steam/middlewares/robots.rb +20 -0
@@ @@ -0,0 +1,20 @@
+ module Locomotive::Steam
+ module Middlewares
+
+ class Robots < Struct.new(:app, :options)
+
+ include Helpers
+
+ def call(env)
+ if env['PATH_INFO'] == '/robots.txt'
+ site = env['steam.site']
+ render_response(site[:robots_txt] || '', 200, 'text/plain')
+ else
+ app.call(env)
+ end
+ end
+
+ end
+
+ end
+ end
locomotive/steam/server.rb b/lib/locomotive/steam/server.rb +1 -0
@@ @@ -48,6 +48,7 @@ module Locomotive::Steam
Middlewares::DefaultEnv,
Middlewares::Site,
Middlewares::Logging,
+ Middlewares::Robots,
Middlewares::Timezone,
Middlewares::EntrySubmission,
Middlewares::Locale,
spec/fixtures/default/config/site.yml +3 -0
@@ @@ -12,4 +12,7 @@ seo_title:
meta_keywords:
en: some meta keywords
fr: quelques mots cles
+
meta_description: some meta description
+
+ robots_txt: "User-agent: *\nDisallow:"
spec/integration/server/basic_spec.rb +5 -0
@@ @@ -31,6 +31,11 @@ describe Locomotive::Steam::Server do
expect(last_response.body).to include 'Lorem ipsum dolor sit amet'
end
+ it 'responds to the /robots.txt url' do
+ get '/robots.txt'
+ expect(last_response.body).to include "User-agent: *\nDisallow:"
+ end
+
describe 'redirection' do
let(:url) { '/store' }