remove useless url setting and base_href helper
authorLunar <lunar@anargeek.net>
Tue, 28 Feb 2012 23:27:53 +0000 (00:27 +0100)
committerLunar <lunar@anargeek.net>
Sat, 17 Mar 2012 09:57:00 +0000 (10:57 +0100)
Sinatra offers an `uri` helper which is there to properly compute
URLs for the application. We now use it instead of computing the `base_href` by
hand. We also remove the `url` setting as system administrators should properly
configure their `config.ru` and proxy to allow Sinatra to compute the right URL
for the application.

conf/settings-default.yml
lib/coquelicot/app.rb
spec/coquelicot_spec.rb
views/layout.haml
views/ready.haml

index cf17993..8d9629f 100644 (file)
@@ -9,14 +9,6 @@
 # These settings are only here for illustration purpose. Site specific
 # configuration only needs to specify the ones that need to be changed.
 
-# Base URL for Coquelicot
-#
-#   It should end with a '/'.
-#
-#   When empty, it will be computed dynamically using upcoming requests.
-#
-url: ""
-
 # Default expiration time (if unspecified by users)
 # (in minutes)
 #
index adc5a0b..8a23593 100644 (file)
@@ -48,7 +48,6 @@ module Coquelicot
     set :random_pass_length, 16
     set :about_text, ''
     set :additional_css, ''
-    set :url, '' # compute instance URL using request data
     set :authentication_method, :name => :simplepass,
                                 :upload_password => 'a94a8fe5ccb19ba61c4c0873d391e987982fbbd3'
 
@@ -94,7 +93,7 @@ module Coquelicot
         @name << "-#{pass}"
         @unprotected = true
       end
-      @url = "#{base_href}#{@name}"
+      @url = uri(@name)
       haml :ready
     end
 
@@ -213,21 +212,8 @@ module Coquelicot
     end
 
     helpers do
-      def base_href
-        return settings.url unless settings.url.empty?
-
-        url = request.scheme + "://"
-        url << request.host
-        if request.scheme == "https" && request.port != 443 ||
-            request.scheme == "http" && request.port != 80
-          url << ":#{request.port}"
-        end
-        url << request.script_name
-        "#{url}/"
-      end
-
       def clone_url
-        settings.respond_to?(:clone_url) ? settings.clone_url : "#{base_href}coquelicot.git"
+        settings.respond_to?(:clone_url) ? settings.clone_url : uri('coquelicot.git')
       end
 
       def authenticate(params)
index 2426441..c0f1659 100644 (file)
@@ -314,16 +314,4 @@ describe 'Coquelicot' do
       last_response.should be_ok
     end
   end
-
-  context "when I set an URL in the 'url' setting" do
-    before(:each) do
-      app.set :url, 'http://example.com/url-test/'
-    end
-    it 'should be appear in <base/> href' do
-      request "/"
-      last_response.should be_ok
-      doc = Hpricot(last_response.body)
-      (doc/"base").attr('href').should == 'http://example.com/url-test/'
-    end
-  end
 end
index 0a51139..b910acf 100644 (file)
@@ -21,7 +21,7 @@
   %head
     %title coquelicot
     %meta{ :"http-equiv" => "Content-Type", :content => "text/html; charset=UTF-8" }
-    %base{ :href => base_href }
+    %base{ :href => uri('/') }
     %link{ :rel => 'stylesheet', :href => "style.css", :type => 'text/css',
            :media => "screen, projection" }
     - unless settings.additional_css.empty?
index c71c587..14cb6fa 100644 (file)
 #content
   .url
     %a{ :href => @url }
-      %span.base>= "#{base_href}"
+      %span.base>= uri('/')
       %span.name= @name
   - unless @unprotected
     %p A password is required to download this file.
   %p The file will be available until #{@expire_at}.
   .again
-    %a{ :href => base_href } Share another file…
+    %a{ :href => uri('/') } Share another file…