Standardise on double quoted strings
authorTom Hughes <tom@compton.nu>
Fri, 20 Feb 2015 19:42:44 +0000 (19:42 +0000)
committerTom Hughes <tom@compton.nu>
Fri, 20 Feb 2015 19:47:26 +0000 (19:47 +0000)
230 files changed:
.rubocop.yml
.rubocop_todo.yml
Gemfile
Rakefile
app/controllers/amf_controller.rb
app/controllers/api_controller.rb
app/controllers/application_controller.rb
app/controllers/browse_controller.rb
app/controllers/changeset_controller.rb
app/controllers/diary_entry_controller.rb
app/controllers/geocoder_controller.rb
app/controllers/message_controller.rb
app/controllers/node_controller.rb
app/controllers/notes_controller.rb
app/controllers/oauth_clients_controller.rb
app/controllers/oauth_controller.rb
app/controllers/old_controller.rb
app/controllers/redactions_controller.rb
app/controllers/relation_controller.rb
app/controllers/search_controller.rb
app/controllers/site_controller.rb
app/controllers/swf_controller.rb
app/controllers/trace_controller.rb
app/controllers/user_blocks_controller.rb
app/controllers/user_controller.rb
app/controllers/user_preference_controller.rb
app/controllers/user_roles_controller.rb
app/controllers/way_controller.rb
app/helpers/application_helper.rb
app/helpers/browse_helper.rb
app/helpers/changeset_helper.rb
app/helpers/geocoder_helper.rb
app/helpers/title_helper.rb
app/helpers/user_blocks_helper.rb
app/helpers/user_helper.rb
app/models/changeset.rb
app/models/client_application.rb
app/models/diary_entry.rb
app/models/language.rb
app/models/message.rb
app/models/node.rb
app/models/notifier.rb
app/models/oauth2_token.rb
app/models/old_node.rb
app/models/old_relation.rb
app/models/old_way.rb
app/models/relation.rb
app/models/request_token.rb
app/models/trace.rb
app/models/tracepoint.rb
app/models/tracetag.rb
app/models/user.rb
app/models/user_block.rb
app/models/user_preference.rb
app/models/way.rb
config/application.rb
config/boot.rb
config/environment.rb
config/environments/production.rb
config/environments/test.rb
config/initializers/action_mailer.rb
config/initializers/assets.rb
config/initializers/classic_pagination.rb
config/initializers/cors.rb
config/initializers/field_error.rb
config/initializers/konacha.rb
config/initializers/oauth.rb
config/initializers/output_compression.rb
config/initializers/r2.rb
config/initializers/sanitize.rb
config/initializers/session_store.rb
config/preinitializer.rb
config/routes.rb
db/migrate/001_create_osm_db.rb
db/migrate/002_cleanup_osm_db.rb
db/migrate/003_sql_session_store_setup.rb
db/migrate/004_user_enhancements.rb
db/migrate/005_tile_tracepoints.rb
db/migrate/006_tile_nodes.rb
db/migrate/007_add_relations.rb
db/migrate/008_remove_segments.rb
db/migrate/010_diary_comments.rb
db/migrate/018_create_acls.rb
db/migrate/020_populate_node_tags_and_remove.rb
db/migrate/021_move_to_innodb.rb
db/migrate/022_key_constraints.rb
db/migrate/023_add_changesets.rb
db/migrate/024_order_relation_members.rb
db/migrate/025_add_end_time_to_changesets.rb
db/migrate/028_add_more_changeset_indexes.rb
db/migrate/029_add_user_foreign_keys.rb
db/migrate/030_add_foreign_keys.rb
db/migrate/031_create_countries.rb
db/migrate/034_create_languages.rb
db/migrate/035_change_user_locale.rb
db/migrate/039_add_more_controls_to_gpx_files.rb
db/migrate/042_add_foreign_keys_to_oauth_tables.rb
db/migrate/044_create_user_roles.rb
db/migrate/045_create_user_blocks.rb
db/migrate/046_alter_user_roles_and_blocks.rb
db/migrate/051_add_status_to_user.rb
db/migrate/053_add_map_bug_tables.rb
db/migrate/054_refactor_map_bug_tables.rb
db/migrate/055_change_map_bug_comment_type.rb
db/migrate/056_add_date_closed.rb
db/migrate/057_add_map_bug_comment_event.rb
db/migrate/20110521142405_rename_bugs_to_notes.rb
db/migrate/20111212183945_add_lowercase_user_indexes.rb
db/migrate/20120214210114_add_text_format.rb
db/migrate/20120318201948_create_redactions.rb
db/migrate/20120328090602_drop_session_table.rb
db/migrate/20120404205604_add_user_and_description_to_redaction.rb
db/migrate/20140115192822_add_text_index_to_note_comments.rb
db/migrate/20140507110937_create_changeset_comments.rb
db/migrate/20140519141742_add_join_table_between_users_and_changesets.rb
lib/bounding_box.rb
lib/classic_pagination/pagination.rb
lib/classic_pagination/pagination_helper.rb
lib/daemons/gpx_import.rb
lib/daemons/gpx_import_ctl
lib/diff_reader.rb
lib/gpx.rb
lib/id.rb
lib/nominatim.rb
lib/not_redactable.rb
lib/object_metadata.rb
lib/osm.rb
lib/output_compression/output_compression.rb
lib/potlatch.rb
lib/quova.rb
lib/redactable.rb
lib/short_link.rb
lib/tasks/add_version_to_nodes.rake
lib/tasks/testing.rake
lib/utf8.rb
script/cleanup
script/deliver-message
script/locale/po2yaml
script/locale/reload-languages
script/locale/yaml2po
script/rails
script/statistics
script/update-spam-blocks
test/controllers/amf_controller_test.rb
test/controllers/api_controller_test.rb
test/controllers/browse_controller_test.rb
test/controllers/changeset_controller_test.rb
test/controllers/diary_entry_controller_test.rb
test/controllers/directions_controller_test.rb
test/controllers/export_controller_test.rb
test/controllers/geocoder_controller_test.rb
test/controllers/message_controller_test.rb
test/controllers/node_controller_test.rb
test/controllers/notes_controller_test.rb
test/controllers/oauth_clients_controller_test.rb
test/controllers/oauth_controller_test.rb
test/controllers/old_node_controller_test.rb
test/controllers/old_relation_controller_test.rb
test/controllers/old_way_controller_test.rb
test/controllers/redactions_controller_test.rb
test/controllers/relation_controller_test.rb
test/controllers/search_controller_test.rb
test/controllers/site_controller_test.rb
test/controllers/swf_controller_test.rb
test/controllers/trace_controller_test.rb
test/controllers/user_blocks_controller_test.rb
test/controllers/user_controller_test.rb
test/controllers/user_preference_controller_test.rb
test/controllers/user_roles_controller_test.rb
test/controllers/way_controller_test.rb
test/helpers/application_helper_test.rb
test/helpers/asset_helper_test.rb
test/helpers/browse_helper_test.rb
test/helpers/changeset_helper_test.rb
test/helpers/note_helper_test.rb
test/helpers/title_helper_test.rb
test/integration/client_application_test.rb
test/integration/cors_test.rb
test/integration/oauth_test.rb
test/integration/redirect_test.rb
test/integration/short_links_test.rb
test/integration/user_blocks_test.rb
test/integration/user_changeset_comments_test.rb
test/integration/user_creation_test.rb
test/integration/user_diaries_test.rb
test/integration/user_login_test.rb
test/integration/user_roles_test.rb
test/integration/user_terms_seen_test.rb
test/lib/bounding_box_test.rb
test/lib/country_test.rb
test/lib/i18n_test.rb
test/lib/password_hash_test.rb
test/lib/rich_text_test.rb
test/lib/short_link_test.rb
test/lib/utf8_test.rb
test/models/acl_test.rb
test/models/changeset_comment_test.rb
test/models/changeset_tag_test.rb
test/models/changeset_test.rb
test/models/diary_comment_test.rb
test/models/diary_entry_test.rb
test/models/friend_test.rb
test/models/language_test.rb
test/models/message_test.rb
test/models/node_tag_test.rb
test/models/node_test.rb
test/models/note_comment_test.rb
test/models/note_test.rb
test/models/oauth_nonce_test.rb
test/models/oauth_token_test.rb
test/models/old_node_tag_test.rb
test/models/old_node_test.rb
test/models/old_relation_tag_test.rb
test/models/old_relation_test.rb
test/models/old_way_tag_test.rb
test/models/old_way_test.rb
test/models/redaction_test.rb
test/models/relation_member_test.rb
test/models/relation_tag_test.rb
test/models/relation_test.rb
test/models/trace_test.rb
test/models/tracepoint_test.rb
test/models/tracetag_test.rb
test/models/user_preference_test.rb
test/models/user_test.rb
test/models/user_token_test.rb
test/models/way_node_test.rb
test/models/way_tag_test.rb
test/models/way_test.rb
test/test_helper.rb

index c05a1ca..555d76d 100644 (file)
@@ -8,3 +8,6 @@ Style/FileName:
     - 'script/deliver-message'
     - 'script/locale/reload-languages'
     - 'script/update-spam-blocks'
+
+Style/StringLiterals:
+  EnforcedStyle: double_quotes
index 2817fae..f43d2ac 100644 (file)
@@ -141,12 +141,6 @@ Style/RegexpLiteral:
 Style/RescueModifier:
   Enabled: false
 
-# Offense count: 6639
-# Cop supports --auto-correct.
-# Configuration parameters: EnforcedStyle, SupportedStyles.
-Style/StringLiterals:
-  Enabled: false
-
 # Offense count: 8
 # Cop supports --auto-correct.
 # Configuration parameters: EnforcedStyle, SupportedStyles.
diff --git a/Gemfile b/Gemfile
index e59705d..b8657ba 100644 (file)
--- a/Gemfile
+++ b/Gemfile
@@ -1,97 +1,97 @@
-source 'https://rubygems.org'
+source "https://rubygems.org"
 
 # Require rails
-gem 'rails', '4.2.0'
+gem "rails", "4.2.0"
 
 # Require things which have moved to gems in ruby 1.9
-gem 'bigdecimal', "~> 1.1.0", :platforms => :ruby_19
+gem "bigdecimal", "~> 1.1.0", :platforms => :ruby_19
 
 # Require things which have moved to gems in ruby 2.0
-gem 'psych', :platforms => :ruby_20
+gem "psych", :platforms => :ruby_20
 
 # Require json for multi_json
-gem 'json'
+gem "json"
 
 # Use postgres as the database
-gem 'pg'
+gem "pg"
 
 # Use SCSS for stylesheets
-gem 'sass-rails', '~> 5.0'
+gem "sass-rails", "~> 5.0"
 
 # Use Uglifier as compressor for JavaScript assets
-gem 'uglifier', '>= 1.3.0'
+gem "uglifier", ">= 1.3.0"
 
 # Use CoffeeScript for .js.coffee assets and views
-gem 'coffee-rails', '~> 4.1.0'
+gem "coffee-rails", "~> 4.1.0"
 
 # Use jquery as the JavaScript library
-gem 'jquery-rails'
+gem "jquery-rails"
 
 # Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
 # gem 'jbuilder', '~> 2.0'
-gem 'jsonify-rails'
+gem "jsonify-rails"
 
 # Use R2 for RTL conversion
-gem 'r2'
+gem "r2"
 
 # Use autoprefixer to generate CSS prefixes
-gem 'autoprefixer-rails'
+gem "autoprefixer-rails"
 
 # Load rails plugins
-gem 'rails-i18n', "~> 4.0.0"
-gem 'dynamic_form'
-gem 'rinku', '>= 1.2.2', :require => 'rails_rinku'
-gem 'oauth-plugin', '>= 0.5.1'
-gem 'open_id_authentication', '>= 1.1.0'
-gem 'validates_email_format_of', '>= 1.5.1'
-gem 'composite_primary_keys', '~> 8.0.0'
-gem 'http_accept_language', '~> 2.0.0'
-gem 'paperclip', '~> 4.0'
-gem 'deadlock_retry', '>= 1.2.0'
-gem 'openstreetmap-i18n-js', '>= 3.0.0.rc5.3', :require => 'i18n-js'
-gem 'rack-cors'
-gem 'actionpack-page_caching'
+gem "rails-i18n", "~> 4.0.0"
+gem "dynamic_form"
+gem "rinku", ">= 1.2.2", :require => "rails_rinku"
+gem "oauth-plugin", ">= 0.5.1"
+gem "open_id_authentication", ">= 1.1.0"
+gem "validates_email_format_of", ">= 1.5.1"
+gem "composite_primary_keys", "~> 8.0.0"
+gem "http_accept_language", "~> 2.0.0"
+gem "paperclip", "~> 4.0"
+gem "deadlock_retry", ">= 1.2.0"
+gem "openstreetmap-i18n-js", ">= 3.0.0.rc5.3", :require => "i18n-js"
+gem "rack-cors"
+gem "actionpack-page_caching"
 
 # We need ruby-openid 2.2.0 or later for ruby 1.9 support
-gem 'ruby-openid', '>= 2.2.0'
+gem "ruby-openid", ">= 2.2.0"
 
 # Markdown formatting support
-gem 'redcarpet'
+gem "redcarpet"
 
 # Character conversion support for ruby 1.8
-gem 'iconv', '= 0.1', :platforms => :ruby_18
+gem "iconv", "= 0.1", :platforms => :ruby_18
 
 # Load libxml support for XML parsing and generation
-gem 'libxml-ruby', '>= 2.0.5', :require => 'libxml'
+gem "libxml-ruby", ">= 2.0.5", :require => "libxml"
 
 # Use for HTML sanitisation
-gem 'sanitize'
-gem 'htmlentities'
+gem "sanitize"
+gem "htmlentities"
 
 # Load SystemTimer for implementing request timeouts
-gem 'SystemTimer', '>= 1.1.3', :require => 'system_timer', :platforms => :ruby_18
+gem "SystemTimer", ">= 1.1.3", :require => "system_timer", :platforms => :ruby_18
 
 # Load httpclient and soap4r for SOAP support for Quova GeoIP queries
-gem 'httpclient'
-gem 'soap4r-ruby1.9'
+gem "httpclient"
+gem "soap4r-ruby1.9"
 
 # Load memcache client in case we are using it
-gem 'dalli'
-gem 'kgio'
+gem "dalli"
+gem "kgio"
 
 # Gems useful for development
 group :development do
-  gem 'vendorer'
+  gem "vendorer"
 end
 
 # Gems needed for running tests
 group :test do
-  gem 'timecop'
-  gem 'minitest', '~> 5.1', :platforms => [:ruby_19, :ruby_20]
+  gem "timecop"
+  gem "minitest", "~> 5.1", :platforms => [:ruby_19, :ruby_20]
 end
 
 # Needed in development as well so rake can see konacha tasks
 group :development, :test do
-  gem 'konacha'
-  gem 'poltergeist'
+  gem "konacha"
+  gem "poltergeist"
 end
index 28fdc4c..39f9f35 100644 (file)
--- a/Rakefile
+++ b/Rakefile
@@ -1,6 +1,6 @@
 # Add your own tasks in files placed in lib/tasks ending in .rake,
 # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
 
-require File.expand_path('../config/application', __FILE__)
+require File.expand_path("../config/application", __FILE__)
 
 OpenStreetMap::Application.load_tasks
index 6f84313..6860056 100644 (file)
@@ -51,17 +51,17 @@ class AmfController < ApplicationController
       logger.info("Executing AMF #{message}(#{args.join(',')})")
 
       case message
-      when 'getpresets' then        result = getpresets(*args)
-      when 'whichways' then         result = whichways(*args)
-      when 'whichways_deleted' then result = whichways_deleted(*args)
-      when 'getway' then            result = getway(args[0].to_i)
-      when 'getrelation' then       result = getrelation(args[0].to_i)
-      when 'getway_old' then        result = getway_old(args[0].to_i, args[1])
-      when 'getway_history' then    result = getway_history(args[0].to_i)
-      when 'getnode_history' then   result = getnode_history(args[0].to_i)
-      when 'findgpx' then           result = findgpx(*args)
-      when 'findrelations' then     result = findrelations(*args)
-      when 'getpoi' then            result = getpoi(*args)
+      when "getpresets" then        result = getpresets(*args)
+      when "whichways" then         result = whichways(*args)
+      when "whichways_deleted" then result = whichways_deleted(*args)
+      when "getway" then            result = getway(args[0].to_i)
+      when "getrelation" then       result = getrelation(args[0].to_i)
+      when "getway_old" then        result = getway_old(args[0].to_i, args[1])
+      when "getway_history" then    result = getway_history(args[0].to_i)
+      when "getnode_history" then   result = getnode_history(args[0].to_i)
+      when "findgpx" then           result = findgpx(*args)
+      when "findrelations" then     result = findrelations(*args)
+      when "getpoi" then            result = getpoi(*args)
       end
 
       result
@@ -82,19 +82,19 @@ class AmfController < ApplicationController
         result = [-5, nil]
       else
         case message
-        when 'putway' then
+        when "putway" then
           orn = renumberednodes.dup
           result = putway(renumberednodes, *args)
           result[4] = renumberednodes.reject { |k, _v| orn.key?(k) }
           if result[0] == 0 && result[2] != result[3] then renumberedways[result[2]] = result[3] end
-        when 'putrelation' then
+        when "putrelation" then
           result = putrelation(renumberednodes, renumberedways, *args)
-        when 'deleteway' then
+        when "deleteway" then
           result = deleteway(*args)
-        when 'putpoi' then
+        when "putpoi" then
           result = putpoi(*args)
           if result[0] == 0 && result[2] != result[3] then renumberednodes[result[2]] = result[3] end
-        when 'startchangeset' then
+        when "startchangeset" then
           result = startchangeset(*args)
         end
 
@@ -138,7 +138,7 @@ class AmfController < ApplicationController
     amf_handle_error("'startchangeset'", nil, nil) do
       user = getuser(usertoken)
       unless user then return -1, "You are not logged in, so Potlatch can't write any changes to the database." end
-      if user.blocks.active.exists? then return -1, t('application.setup_user_auth.blocked') end
+      if user.blocks.active.exists? then return -1, t("application.setup_user_auth.blocked") end
       if REQUIRE_TERMS_AGREED && user.terms_agreed.nil? then return -1, "You must accept the contributor terms before you can edit." end
 
       if cstags
@@ -155,7 +155,7 @@ class AmfController < ApplicationController
         elsif closecomment.empty?
           cs.save!
         else
-          cs.tags['comment'] = closecomment
+          cs.tags["comment"] = closecomment
           # in case closecomment has chars not allowed in xml
           cs.tags = strip_non_xml_chars cs.tags
           cs.save_with_tags!
@@ -168,7 +168,7 @@ class AmfController < ApplicationController
         cs.tags = cstags
         cs.user_id = user.id
         unless closecomment.empty?
-          cs.tags['comment'] = closecomment
+          cs.tags["comment"] = closecomment
           # in case closecomment has chars not allowed in xml
           cs.tags = strip_non_xml_chars cs.tags
         end
@@ -176,9 +176,9 @@ class AmfController < ApplicationController
         cs.created_at = Time.now.getutc
         cs.closed_at = cs.created_at + Changeset::IDLE_TIMEOUT
         cs.save_with_tags!
-        return [0, '', cs.id]
+        return [0, "", cs.id]
       else
-        return [0, '', nil]
+        return [0, "", nil]
       end
     end
   end
@@ -215,12 +215,12 @@ class AmfController < ApplicationController
 
   def getlocalized(lang)
     # What we end up actually using. Reported in Potlatch's created_by=* string
-    loaded_lang = 'en'
+    loaded_lang = "en"
 
     # Load English defaults
     en = YAML.load(File.open("#{Rails.root}/config/potlatch/locales/en.yml"))["en"]
 
-    if lang == 'en'
+    if lang == "en"
       return [loaded_lang, en]
     else
       # Use English as a fallback
@@ -288,7 +288,7 @@ class AmfController < ApplicationController
         relations = relations.collect { |relation| [relation.id, relation.version] }.uniq
       end
 
-      [0, '', ways, points, relations]
+      [0, "", ways, points, relations]
     end
   end
 
@@ -312,7 +312,7 @@ class AmfController < ApplicationController
       nodes_in_area = Node.bbox(bbox).joins(:ways_via_history).where(:current_ways => { :visible => false })
       way_ids = nodes_in_area.collect { |node| node.ways_via_history.invisible.collect(&:id) }.flatten.uniq
 
-      [0, '', way_ids]
+      [0, "", way_ids]
     end
   end
 
@@ -320,7 +320,7 @@ class AmfController < ApplicationController
   # Returns the way id, a Potlatch-style array of points, a hash of tags, the version number, and the user ID.
 
   def getway(wayid) #:doc:
-    amf_handle_error_with_timeout("'getway' #{wayid}", 'way', wayid) do
+    amf_handle_error_with_timeout("'getway' #{wayid}", "way", wayid) do
       if POTLATCH_USE_SQL
         points = sql_get_nodes_in_way(wayid)
         tags = sql_get_tags_in_way(wayid)
@@ -333,11 +333,11 @@ class AmfController < ApplicationController
         way = Way.where(:id => wayid).first
 
         # check case where way has been deleted or doesn't exist
-        return [-4, 'way', wayid] if way.nil? || !way.visible
+        return [-4, "way", wayid] if way.nil? || !way.visible
 
         points = way.nodes.preload(:node_tags).collect do |node|
           nodetags = node.tags
-          nodetags.delete('created_by')
+          nodetags.delete("created_by")
           [node.lon, node.lat, node.id, nodetags, node.version]
         end
         tags = way.tags
@@ -345,7 +345,7 @@ class AmfController < ApplicationController
         uid = way.changeset.user.id
       end
 
-      [0, '', wayid, points, tags, version, uid]
+      [0, "", wayid, points, tags, version, uid]
     end
   end
 
@@ -365,8 +365,8 @@ class AmfController < ApplicationController
   # 5. is this the current, visible version? (boolean)
 
   def getway_old(id, timestamp) #:doc:
-    amf_handle_error_with_timeout("'getway_old' #{id}, #{timestamp}", 'way', id) do
-      if timestamp == ''
+    amf_handle_error_with_timeout("'getway_old' #{id}, #{timestamp}", "way", id) do
+      if timestamp == ""
         # undelete
         old_way = OldWay.where(:visible => true, :way_id => id).unredacted.order("version DESC").first
         points = old_way.get_nodes_undelete unless old_way.nil?
@@ -392,8 +392,8 @@ class AmfController < ApplicationController
         return [-1, "Sorry, the server could not find a way at that time.", id]
       else
         curway = Way.find(id)
-        old_way.tags['history'] = "Retrieved from v#{old_way.version}"
-        return [0, '', id, points, old_way.tags, curway.version, (curway.version == old_way.version && curway.visible)]
+        old_way.tags["history"] = "Retrieved from v#{old_way.version}"
+        return [0, "", id, points, old_way.tags, curway.version, (curway.version == old_way.version && curway.visible)]
       end
     end
   end
@@ -434,9 +434,9 @@ class AmfController < ApplicationController
     revdates.collect! { |d| [(d + 1).strftime("%d %b %Y, %H:%M:%S")] + revusers[d.to_i] }
     revdates.uniq!
 
-    return ['way', wayid, revdates]
+    return ["way", wayid, revdates]
   rescue ActiveRecord::RecordNotFound
-    return ['way', wayid, []]
+    return ["way", wayid, []]
   end
 
   # Find history of a node. Returns 'node', id, and an array of previous versions as above.
@@ -445,14 +445,14 @@ class AmfController < ApplicationController
     history = Node.find(nodeid).old_nodes.unredacted.reverse.collect do |old_node|
       [(old_node.timestamp + 1).strftime("%d %b %Y, %H:%M:%S")] + change_user(old_node)
     end
-    return ['node', nodeid, history]
+    return ["node", nodeid, history]
   rescue ActiveRecord::RecordNotFound
-    return ['node', nodeid, []]
+    return ["node", nodeid, []]
   end
 
   def change_user(obj)
     user_object = obj.changeset.user
-    user = user_object.data_public? ? user_object.display_name : 'anonymous'
+    user = user_object.data_public? ? user_object.display_name : "anonymous"
     uid  = user_object.data_public? ? user_object.id : 0
     [user, uid]
   end
@@ -465,7 +465,7 @@ class AmfController < ApplicationController
       user = getuser(usertoken)
 
       return -1, "You must be logged in to search for GPX traces." unless user
-      return -1, t('application.setup_user_auth.blocked') if user.blocks.active.exists?
+      return -1, t("application.setup_user_auth.blocked") if user.blocks.active.exists?
 
       query = Trace.visible_to(user)
       if searchterm.to_i > 0
@@ -476,7 +476,7 @@ class AmfController < ApplicationController
       gpxs = query.collect do |gpx|
         [gpx.id, gpx.name, gpx.description]
       end
-      [0, '', gpxs]
+      [0, "", gpxs]
     end
   end
 
@@ -490,11 +490,11 @@ class AmfController < ApplicationController
   # 5. version.
 
   def getrelation(relid) #:doc:
-    amf_handle_error("'getrelation' #{relid}", 'relation', relid) do
+    amf_handle_error("'getrelation' #{relid}", "relation", relid) do
       rel = Relation.where(:id => relid).first
 
-      return [-4, 'relation', relid] if rel.nil? || !rel.visible
-      [0, '', relid, rel.tags, rel.members, rel.version]
+      return [-4, "relation", relid] if rel.nil? || !rel.visible
+      [0, "", relid, rel.tags, rel.members, rel.version]
     end
   end
 
@@ -526,10 +526,10 @@ class AmfController < ApplicationController
   # 3. version.
 
   def putrelation(renumberednodes, renumberedways, usertoken, changeset_id, version, relid, tags, members, visible) #:doc:
-    amf_handle_error("'putrelation' #{relid}", 'relation', relid)  do
+    amf_handle_error("'putrelation' #{relid}", "relation", relid)  do
       user = getuser(usertoken)
       unless user then return -1, "You are not logged in, so the relation could not be saved." end
-      if user.blocks.active.exists? then return -1, t('application.setup_user_auth.blocked') end
+      if user.blocks.active.exists? then return -1, t("application.setup_user_auth.blocked") end
       if REQUIRE_TERMS_AGREED && user.terms_agreed.nil? then return -1, "You must accept the contributor terms before you can edit." end
 
       unless tags_ok(tags) then return -1, "One of the tags is invalid. Linux users may need to upgrade to Flash Player 10.1." end
@@ -551,8 +551,8 @@ class AmfController < ApplicationController
         members.each do |m|
           mid = m[1].to_i
           if mid < 0
-            mid = renumberednodes[mid] if m[0] == 'Node'
-            mid = renumberedways[mid] if m[0] == 'Way'
+            mid = renumberednodes[mid] if m[0] == "Node"
+            mid = renumberedways[mid] if m[0] == "Way"
           end
           if mid
             typedmembers << [m[0], mid, m[2].delete("\000-\037\ufffe\uffff", "^\011\012\015")]
@@ -581,9 +581,9 @@ class AmfController < ApplicationController
       end # transaction
 
       if relid <= 0
-        return [0, '', relid, new_relation.id, new_relation.version]
+        return [0, "", relid, new_relation.id, new_relation.version]
       else
-        return [0, '', relid, relid, relation.version]
+        return [0, "", relid, relid, relation.version]
       end
     end
   end
@@ -612,12 +612,12 @@ class AmfController < ApplicationController
   # 6. hash of node versions (node=>version)
 
   def putway(renumberednodes, usertoken, changeset_id, wayversion, originalway, pointlist, attributes, nodes, deletednodes) #:doc:
-    amf_handle_error("'putway' #{originalway}", 'way', originalway) do
+    amf_handle_error("'putway' #{originalway}", "way", originalway) do
       # -- Initialise
 
       user = getuser(usertoken)
       unless user then return -1, "You are not logged in, so the way could not be saved." end
-      if user.blocks.active.exists? then return -1, t('application.setup_user_auth.blocked') end
+      if user.blocks.active.exists? then return -1, t("application.setup_user_auth.blocked") end
       if REQUIRE_TERMS_AGREED && user.terms_agreed.nil? then return -1, "You must accept the contributor terms before you can edit." end
 
       if pointlist.length < 2 then return -2, "Server error - way is only #{points.length} points long." end
@@ -654,7 +654,7 @@ class AmfController < ApplicationController
           unless tags_ok(node.tags) then return -1, "One of the tags is invalid. Linux users may need to upgrade to Flash Player 10.1." end
           node.tags = strip_non_xml_chars node.tags
 
-          node.tags.delete('created_by')
+          node.tags.delete("created_by")
           node.version = version
           if id <= 0
             # We're creating the node
@@ -708,7 +708,7 @@ class AmfController < ApplicationController
         end
       end # transaction
 
-      [0, '', originalway, way.id, renumberednodes, way.version, nodeversions, deletednodes]
+      [0, "", originalway, way.id, renumberednodes, way.version, nodeversions, deletednodes]
     end
   end
 
@@ -722,10 +722,10 @@ class AmfController < ApplicationController
   # 4. version.
 
   def putpoi(usertoken, changeset_id, version, id, lon, lat, tags, visible) #:doc:
-    amf_handle_error("'putpoi' #{id}", 'node', id) do
+    amf_handle_error("'putpoi' #{id}", "node", id) do
       user = getuser(usertoken)
       unless user then return -1, "You are not logged in, so the point could not be saved." end
-      if user.blocks.active.exists? then return -1, t('application.setup_user_auth.blocked') end
+      if user.blocks.active.exists? then return -1, t("application.setup_user_auth.blocked") end
       if REQUIRE_TERMS_AGREED && user.terms_agreed.nil? then return -1, "You must accept the contributor terms before you can edit." end
 
       unless tags_ok(tags) then return -1, "One of the tags is invalid. Linux users may need to upgrade to Flash Player 10.1." end
@@ -766,9 +766,9 @@ class AmfController < ApplicationController
       end # transaction
 
       if id <= 0
-        return [0, '', id, new_node.id, new_node.version]
+        return [0, "", id, new_node.id, new_node.version]
       else
-        return [0, '', id, node.id, node.version]
+        return [0, "", id, node.id, node.version]
       end
     end
   end
@@ -779,18 +779,18 @@ class AmfController < ApplicationController
   # Returns array of id, long, lat, hash of tags, (current) version.
 
   def getpoi(id, timestamp) #:doc:
-    amf_handle_error("'getpoi' #{id}", 'node', id) do
+    amf_handle_error("'getpoi' #{id}", "node", id) do
       id = id.to_i
       n = Node.find(id)
       v = n.version
-      unless timestamp == ''
+      unless timestamp == ""
         n = OldNode.where("node_id = ? AND timestamp <= ?", id, timestamp).unredacted.order("timestamp DESC").first
       end
 
       if n
-        return [0, '', n.id, n.lon, n.lat, n.tags, v]
+        return [0, "", n.id, n.lon, n.lat, n.tags, v]
       else
-        return [-4, 'node', id]
+        return [-4, "node", id]
       end
     end
   end
@@ -806,10 +806,10 @@ class AmfController < ApplicationController
   # Returns 0 (success), unchanged way id, new way version, new node versions.
 
   def deleteway(usertoken, changeset_id, way_id, way_version, deletednodes) #:doc:
-    amf_handle_error("'deleteway' #{way_id}", 'way', way_id) do
+    amf_handle_error("'deleteway' #{way_id}", "way", way_id) do
       user = getuser(usertoken)
       unless user then return -1, "You are not logged in, so the way could not be deleted." end
-      if user.blocks.active.exists? then return -1, t('application.setup_user_auth.blocked') end
+      if user.blocks.active.exists? then return -1, t("application.setup_user_auth.blocked") end
       if REQUIRE_TERMS_AGREED && user.terms_agreed.nil? then return -1, "You must accept the contributor terms before you can edit." end
 
       way_id = way_id.to_i
@@ -843,7 +843,7 @@ class AmfController < ApplicationController
           end
         end
       end # transaction
-      [0, '', way_id, old_way.version, nodeversions]
+      [0, "", way_id, old_way.version, nodeversions]
     end
   end
 
@@ -906,7 +906,7 @@ class AmfController < ApplicationController
        AND current_ways.visible=TRUE
        AND #{OSM.sql_for_area(bbox, "current_nodes.")}
     EOF
-    ActiveRecord::Base.connection.select_all(sql).collect { |a| [a['wayid'].to_i, a['version'].to_i] }
+    ActiveRecord::Base.connection.select_all(sql).collect { |a| [a["wayid"].to_i, a["version"].to_i] }
   end
 
   def sql_find_pois_in_area(bbox)
@@ -922,9 +922,9 @@ class AmfController < ApplicationController
     ActiveRecord::Base.connection.select_all(sql).each do |row|
       poitags = {}
       ActiveRecord::Base.connection.select_all("SELECT k,v FROM current_node_tags WHERE id=#{row['id']}").each do |n|
-        poitags[n['k']] = n['v']
+        poitags[n["k"]] = n["v"]
       end
-      pois << [row['id'].to_i, row['lon'].to_f, row['lat'].to_f, poitags, row['version'].to_i]
+      pois << [row["id"].to_i, row["lon"].to_f, row["lat"].to_f, poitags, row["version"].to_i]
     end
     pois
   end
@@ -949,7 +949,7 @@ class AmfController < ApplicationController
          AND crm.member_id IN (#{way_ids.join(',')})
         EOF
     end
-    ActiveRecord::Base.connection.select_all(sql).collect { |a| [a['relid'].to_i, a['version'].to_i] }
+    ActiveRecord::Base.connection.select_all(sql).collect { |a| [a["relid"].to_i, a["version"].to_i] }
   end
 
   def sql_get_nodes_in_way(wayid)
@@ -965,10 +965,10 @@ class AmfController < ApplicationController
     ActiveRecord::Base.connection.select_all(sql).each do |row|
       nodetags = {}
       ActiveRecord::Base.connection.select_all("SELECT k,v FROM current_node_tags WHERE id=#{row['id']}").each do |n|
-        nodetags[n['k']] = n['v']
+        nodetags[n["k"]] = n["v"]
       end
-      nodetags.delete('created_by')
-      points << [row['lon'].to_f, row['lat'].to_f, row['id'].to_i, nodetags, row['version'].to_i]
+      nodetags.delete("created_by")
+      points << [row["lon"].to_f, row["lat"].to_f, row["id"].to_i, nodetags, row["version"].to_i]
     end
     points
   end
@@ -976,16 +976,16 @@ class AmfController < ApplicationController
   def sql_get_tags_in_way(wayid)
     tags = {}
     ActiveRecord::Base.connection.select_all("SELECT k,v FROM current_way_tags WHERE id=#{wayid.to_i}").each do |row|
-      tags[row['k']] = row['v']
+      tags[row["k"]] = row["v"]
     end
     tags
   end
 
   def sql_get_way_version(wayid)
-    ActiveRecord::Base.connection.select_one("SELECT version FROM current_ways WHERE id=#{wayid.to_i}")['version']
+    ActiveRecord::Base.connection.select_one("SELECT version FROM current_ways WHERE id=#{wayid.to_i}")["version"]
   end
 
   def sql_get_way_user(wayid)
-    ActiveRecord::Base.connection.select_one("SELECT user FROM current_ways,changesets WHERE current_ways.id=#{wayid.to_i} AND current_ways.changeset=changesets.id")['user']
+    ActiveRecord::Base.connection.select_one("SELECT user FROM current_ways,changesets WHERE current_ways.id=#{wayid.to_i} AND current_ways.changeset=changesets.id")["user"]
   end
 end
index 659d354..6bbbee1 100644 (file)
@@ -9,7 +9,7 @@ class ApiController < ApplicationController
   # within the specified bounding box, and in the specified page.
   def trackpoints
     # retrieve the page number
-    page = params['page'].to_s.to_i
+    page = params["page"].to_s.to_i
 
     unless page >= 0
       report_error("Page number must be greater than or equal to 0")
@@ -35,10 +35,10 @@ class ApiController < ApplicationController
 
     doc = XML::Document.new
     doc.encoding = XML::Encoding::UTF_8
-    root = XML::Node.new 'gpx'
-    root['version'] = '1.0'
-    root['creator'] = 'OpenStreetMap.org'
-    root['xmlns'] = "http://www.topografix.com/GPX/1/0"
+    root = XML::Node.new "gpx"
+    root["version"] = "1.0"
+    root["creator"] = "OpenStreetMap.org"
+    root["xmlns"] = "http://www.topografix.com/GPX/1/0"
 
     doc.root = root
 
@@ -61,21 +61,21 @@ class ApiController < ApplicationController
         gpx_file = Trace.find(gpx_id)
 
         if gpx_file.trackable?
-          track = XML::Node.new 'trk'
+          track = XML::Node.new "trk"
           doc.root << track
           timestamps = true
 
           if gpx_file.identifiable?
             track << (XML::Node.new("name") << gpx_file.name)
             track << (XML::Node.new("desc") << gpx_file.description)
-            track << (XML::Node.new("url") << url_for(:controller => 'trace', :action => 'view', :display_name => gpx_file.user.display_name, :id => gpx_file.id))
+            track << (XML::Node.new("url") << url_for(:controller => "trace", :action => "view", :display_name => gpx_file.user.display_name, :id => gpx_file.id))
           end
         else
           # use the anonymous track segment if the user hasn't allowed
           # their GPX points to be tracked.
           timestamps = false
           if anon_track.nil?
-            anon_track = XML::Node.new 'trk'
+            anon_track = XML::Node.new "trk"
             doc.root << anon_track
           end
           track = anon_track
@@ -84,12 +84,12 @@ class ApiController < ApplicationController
 
       if trackid != point.trackid
         if gpx_file.trackable?
-          trkseg = XML::Node.new 'trkseg'
+          trkseg = XML::Node.new "trkseg"
           track << trkseg
           trackid = point.trackid
         else
           if anon_trkseg.nil?
-            anon_trkseg = XML::Node.new 'trkseg'
+            anon_trkseg = XML::Node.new "trkseg"
             anon_track << anon_trkseg
           end
           trkseg = anon_trkseg
@@ -141,7 +141,7 @@ class ApiController < ApplicationController
     doc = OSM::API.new.get_xml_doc
 
     # add bounds
-    doc.root << bbox.add_bounds_to(XML::Node.new 'bounds')
+    doc.root << bbox.add_bounds_to(XML::Node.new "bounds")
 
     # get ways
     # find which ways are needed
@@ -210,13 +210,13 @@ class ApiController < ApplicationController
   # Get a list of the tiles that have changed within a specified time
   # period
   def changes
-    zoom = (params[:zoom] || '12').to_i
+    zoom = (params[:zoom] || "12").to_i
 
     if params.include?(:start) && params.include?(:end)
       starttime = Time.parse(params[:start])
       endtime = Time.parse(params[:end])
     else
-      hours = (params[:hours] || '1').to_i.hours
+      hours = (params[:hours] || "1").to_i.hours
       endtime = Time.now.getutc
       starttime = endtime - hours
     end
@@ -228,7 +228,7 @@ class ApiController < ApplicationController
       tiles = Node.where(:timestamp => starttime..endtime).group("maptile_for_point(latitude, longitude, #{zoom})").count
 
       doc = OSM::API.new.get_xml_doc
-      changes = XML::Node.new 'changes'
+      changes = XML::Node.new "changes"
       changes["starttime"] = starttime.xmlschema
       changes["endtime"] = endtime.xmlschema
 
@@ -236,7 +236,7 @@ class ApiController < ApplicationController
         x = (tile.to_i >> zoom) & mask
         y = tile.to_i & mask
 
-        t = XML::Node.new 'tile'
+        t = XML::Node.new "tile"
         t["x"] = x.to_s
         t["y"] = y.to_s
         t["z"] = zoom.to_s
@@ -261,37 +261,37 @@ class ApiController < ApplicationController
   def capabilities
     doc = OSM::API.new.get_xml_doc
 
-    api = XML::Node.new 'api'
-    version = XML::Node.new 'version'
-    version['minimum'] = "#{API_VERSION}"
-    version['maximum'] = "#{API_VERSION}"
+    api = XML::Node.new "api"
+    version = XML::Node.new "version"
+    version["minimum"] = "#{API_VERSION}"
+    version["maximum"] = "#{API_VERSION}"
     api << version
-    area = XML::Node.new 'area'
-    area['maximum'] = MAX_REQUEST_AREA.to_s
+    area = XML::Node.new "area"
+    area["maximum"] = MAX_REQUEST_AREA.to_s
     api << area
-    tracepoints = XML::Node.new 'tracepoints'
-    tracepoints['per_page'] = TRACEPOINTS_PER_PAGE.to_s
+    tracepoints = XML::Node.new "tracepoints"
+    tracepoints["per_page"] = TRACEPOINTS_PER_PAGE.to_s
     api << tracepoints
-    waynodes = XML::Node.new 'waynodes'
-    waynodes['maximum'] = MAX_NUMBER_OF_WAY_NODES.to_s
+    waynodes = XML::Node.new "waynodes"
+    waynodes["maximum"] = MAX_NUMBER_OF_WAY_NODES.to_s
     api << waynodes
-    changesets = XML::Node.new 'changesets'
-    changesets['maximum_elements'] = Changeset::MAX_ELEMENTS.to_s
+    changesets = XML::Node.new "changesets"
+    changesets["maximum_elements"] = Changeset::MAX_ELEMENTS.to_s
     api << changesets
-    timeout = XML::Node.new 'timeout'
-    timeout['seconds'] = API_TIMEOUT.to_s
+    timeout = XML::Node.new "timeout"
+    timeout["seconds"] = API_TIMEOUT.to_s
     api << timeout
-    status = XML::Node.new 'status'
-    status['database'] = database_status.to_s
-    status['api'] = api_status.to_s
-    status['gpx'] = gpx_status.to_s
+    status = XML::Node.new "status"
+    status["database"] = database_status.to_s
+    status["api"] = api_status.to_s
+    status["gpx"] = gpx_status.to_s
     api << status
     doc.root << api
-    policy = XML::Node.new 'policy'
-    blacklist = XML::Node.new 'imagery'
+    policy = XML::Node.new "policy"
+    blacklist = XML::Node.new "imagery"
     IMAGERY_BLACKLIST.each do |url_regex|
-      xnd = XML::Node.new 'blacklist'
-      xnd['regex'] = url_regex.to_s
+      xnd = XML::Node.new "blacklist"
+      xnd["regex"] = url_regex.to_s
       blacklist << xnd
     end
     policy << blacklist
index 3b70696..43afdf7 100644 (file)
@@ -18,7 +18,7 @@ class ApplicationController < ActionController::Base
       # don't allow access to any auth-requiring part of the site unless
       # the new CTs have been seen (and accept/decline chosen).
       elsif !@user.terms_seen && flash[:skip_terms].nil?
-        flash[:notice] = t 'user.terms.you need to accept or decline'
+        flash[:notice] = t "user.terms.you need to accept or decline"
         if params[:referer]
           redirect_to :controller => "user", :action => "terms", :referer => params[:referer]
         else
@@ -39,7 +39,7 @@ class ApplicationController < ActionController::Base
   def require_user
     unless @user
       if request.get?
-        redirect_to :controller => 'user', :action => 'login', :referer => request.fullpath
+        redirect_to :controller => "user", :action => "login", :referer => request.fullpath
       else
         render :text => "", :status => :forbidden
       end
@@ -76,7 +76,7 @@ class ApplicationController < ActionController::Base
         redirect_to Hash[params].merge(:cookie_test => "true")
         return false
       else
-        flash.now[:warning] = t 'application.require_cookies.cookies_needed'
+        flash.now[:warning] = t "application.require_cookies.cookies_needed"
       end
     else
       session.delete(:cookie_test)
@@ -123,8 +123,8 @@ class ApplicationController < ActionController::Base
   def require_moderator
     unless @user.moderator?
       if request.get?
-        flash[:error] = t('application.require_moderator.not_a_moderator')
-        redirect_to :action => 'index'
+        flash[:error] = t("application.require_moderator.not_a_moderator")
+        redirect_to :action => "index"
       else
         render :text => "", :status => :forbidden
       end
@@ -142,7 +142,7 @@ class ApplicationController < ActionController::Base
       # authenticate per-scheme
       if username.nil?
         @user = nil # no authentication provided - perhaps first connect (client should retry after 401)
-      elsif username == 'token'
+      elsif username == "token"
         @user = User.authenticate(:token => passwd) # preferred - random token for user from db, passed in basic auth
       else
         @user = User.authenticate(:username => username, :password => passwd) # basic auth
@@ -154,7 +154,7 @@ class ApplicationController < ActionController::Base
       # check if the user has been banned
       if @user.blocks.active.exists?
         # NOTE: need slightly more helpful message than this.
-        report_error t('application.setup_user_auth.blocked'), :forbidden
+        report_error t("application.setup_user_auth.blocked"), :forbidden
       end
 
       # if the user hasn't seen the contributor terms then don't
@@ -162,12 +162,12 @@ class ApplicationController < ActionController::Base
       # (but can decline) the CTs to continue.
       if REQUIRE_TERMS_SEEN && !@user.terms_seen && flash[:skip_terms].nil?
         set_locale
-        report_error t('application.setup_user_auth.need_to_see_terms'), :forbidden
+        report_error t("application.setup_user_auth.need_to_see_terms"), :forbidden
       end
     end
   end
 
-  def authorize(realm = 'Web Password', errormessage = "Couldn't authenticate you")
+  def authorize(realm = "Web Password", errormessage = "Couldn't authenticate you")
     # make the @user object from any auth sources we have
     setup_user_auth
 
@@ -201,7 +201,7 @@ class ApplicationController < ActionController::Base
       if request.xhr?
         report_error "Database offline for maintenance", :service_unavailable
       else
-        redirect_to :controller => 'site', :action => 'offline'
+        redirect_to :controller => "site", :action => "offline"
       end
     end
   end
@@ -212,7 +212,7 @@ class ApplicationController < ActionController::Base
       if request.xhr?
         report_error "Database offline for maintenance", :service_unavailable
       else
-        redirect_to :controller => 'site', :action => 'offline'
+        redirect_to :controller => "site", :action => "offline"
       end
     end
   end
@@ -273,10 +273,10 @@ class ApplicationController < ActionController::Base
   #  message. For now, rails won't let us)
   def report_error(message, status = :bad_request)
     # Todo: some sort of escaping of problem characters in the message
-    response.headers['Error'] = message
+    response.headers["Error"] = message
 
-    if request.headers['X-Error-Format'] &&
-       request.headers['X-Error-Format'].downcase == "xml"
+    if request.headers["X-Error-Format"] &&
+       request.headers["X-Error-Format"].downcase == "xml"
       result = OSM::API.new.get_xml_doc
       result.root.name = "osmError"
       result.root << (XML::Node.new("status") << "#{Rack::Utils.status_code(status)} #{Rack::Utils::HTTP_STATUS_CODES[status]}")
@@ -289,11 +289,11 @@ class ApplicationController < ActionController::Base
   end
 
   def set_locale
-    response.header['Vary'] = 'Accept-Language'
+    response.header["Vary"] = "Accept-Language"
 
     if @user && !@user.languages.empty?
       http_accept_language.user_preferred_languages = @user.languages
-      response.header['Vary'] = '*'
+      response.header["Vary"] = "*"
     end
 
     I18n.locale = select_locale
@@ -303,7 +303,7 @@ class ApplicationController < ActionController::Base
       @user.save
     end
 
-    response.headers['Content-Language'] = I18n.locale.to_s
+    response.headers["Content-Language"] = I18n.locale.to_s
   end
 
   def select_locale(locales = I18n.available_locales)
@@ -429,7 +429,7 @@ class ApplicationController < ActionController::Base
   end
 
   def map_layout
-    request.xhr? ? 'xhr' : 'map'
+    request.xhr? ? "xhr" : "map"
   end
 
   def preferred_editor
@@ -441,8 +441,8 @@ class ApplicationController < ActionController::Base
                DEFAULT_EDITOR
              end
 
-    if request.env['HTTP_USER_AGENT'] =~ /MSIE|Trident/ && editor == 'id'
-      editor = 'potlatch2'
+    if request.env["HTTP_USER_AGENT"] =~ /MSIE|Trident/ && editor == "id"
+      editor = "potlatch2"
     end
 
     editor
@@ -454,16 +454,16 @@ class ApplicationController < ActionController::Base
 
   # extract authorisation credentials from headers, returns user = nil if none
   def get_auth_data
-    if request.env.key? 'X-HTTP_AUTHORIZATION'          # where mod_rewrite might have put it
-      authdata = request.env['X-HTTP_AUTHORIZATION'].to_s.split
-    elsif request.env.key? 'REDIRECT_X_HTTP_AUTHORIZATION'          # mod_fcgi
-      authdata = request.env['REDIRECT_X_HTTP_AUTHORIZATION'].to_s.split
-    elsif request.env.key? 'HTTP_AUTHORIZATION'         # regular location
-      authdata = request.env['HTTP_AUTHORIZATION'].to_s.split
+    if request.env.key? "X-HTTP_AUTHORIZATION"          # where mod_rewrite might have put it
+      authdata = request.env["X-HTTP_AUTHORIZATION"].to_s.split
+    elsif request.env.key? "REDIRECT_X_HTTP_AUTHORIZATION"          # mod_fcgi
+      authdata = request.env["REDIRECT_X_HTTP_AUTHORIZATION"].to_s.split
+    elsif request.env.key? "HTTP_AUTHORIZATION"         # regular location
+      authdata = request.env["HTTP_AUTHORIZATION"].to_s.split
     end
     # only basic authentication supported
-    if authdata && authdata[0] == 'Basic'
-      user, pass = Base64.decode64(authdata[1]).split(':', 2)
+    if authdata && authdata[0] == "Basic"
+      user, pass = Base64.decode64(authdata[1]).split(":", 2)
     end
     [user, pass]
   end
index 3dfcd18..a529b39 100644 (file)
@@ -10,7 +10,7 @@ class BrowseController < ApplicationController
   def relation
     @type = "relation"
     @feature = Relation.find(params[:id])
-    render 'feature'
+    render "feature"
   rescue ActiveRecord::RecordNotFound
     render :action => "not_found", :status => :not_found
   end
@@ -18,7 +18,7 @@ class BrowseController < ApplicationController
   def relation_history
     @type = "relation"
     @feature = Relation.find(params[:id])
-    render 'history'
+    render "history"
   rescue ActiveRecord::RecordNotFound
     render :action => "not_found", :status => :not_found
   end
@@ -26,7 +26,7 @@ class BrowseController < ApplicationController
   def way
     @type = "way"
     @feature = Way.preload(:way_tags, :containing_relation_members, :changeset => :user, :nodes => [:node_tags, :ways => :way_tags]).find(params[:id])
-    render 'feature'
+    render "feature"
   rescue ActiveRecord::RecordNotFound
     render :action => "not_found", :status => :not_found
   end
@@ -34,7 +34,7 @@ class BrowseController < ApplicationController
   def way_history
     @type = "way"
     @feature = Way.preload(:way_tags, :old_ways => { :changeset => :user }).find(params[:id])
-    render 'history'
+    render "history"
   rescue ActiveRecord::RecordNotFound
     render :action => "not_found", :status => :not_found
   end
@@ -42,7 +42,7 @@ class BrowseController < ApplicationController
   def node
     @type = "node"
     @feature = Node.find(params[:id])
-    render 'feature'
+    render "feature"
   rescue ActiveRecord::RecordNotFound
     render :action => "not_found", :status => :not_found
   end
@@ -50,7 +50,7 @@ class BrowseController < ApplicationController
   def node_history
     @type = "node"
     @feature = Node.find(params[:id])
-    render 'history'
+    render "history"
   rescue ActiveRecord::RecordNotFound
     render :action => "not_found", :status => :not_found
   end
@@ -63,9 +63,9 @@ class BrowseController < ApplicationController
     else
       @comments = @changeset.comments.includes(:author)
     end
-    @node_pages, @nodes = paginate(:old_nodes, :conditions => { :changeset_id => @changeset.id }, :per_page => 20, :parameter => 'node_page')
-    @way_pages, @ways = paginate(:old_ways, :conditions => { :changeset_id => @changeset.id }, :per_page => 20, :parameter => 'way_page')
-    @relation_pages, @relations = paginate(:old_relations, :conditions => { :changeset_id => @changeset.id }, :per_page => 20, :parameter => 'relation_page')
+    @node_pages, @nodes = paginate(:old_nodes, :conditions => { :changeset_id => @changeset.id }, :per_page => 20, :parameter => "node_page")
+    @way_pages, @ways = paginate(:old_ways, :conditions => { :changeset_id => @changeset.id }, :per_page => 20, :parameter => "way_page")
+    @relation_pages, @relations = paginate(:old_relations, :conditions => { :changeset_id => @changeset.id }, :per_page => 20, :parameter => "relation_page")
     if @changeset.user.data_public?
       @next_by_user = @changeset.user.changesets.where("id > ?", @changeset.id).reorder(:id => :asc).first
       @prev_by_user = @changeset.user.changesets.where("id < ?", @changeset.id).reorder(:id => :desc).first
index 941e752..eefe5b5 100644 (file)
@@ -1,8 +1,8 @@
 # The ChangesetController is the RESTful interface to Changeset objects
 
 class ChangesetController < ApplicationController
-  layout 'site'
-  require 'xml/libxml'
+  layout "site"
+  require "xml/libxml"
 
   skip_before_filter :verify_authenticity_token, :except => [:list]
   before_filter :authorize_web, :only => [:list, :feed, :comments_feed]
@@ -85,8 +85,8 @@ class ChangesetController < ApplicationController
     # abuse, maybe should change to some other format?
     doc = XML::Parser.string(request.raw_post).parse
     doc.find("//osm/node").each do |n|
-      lon << n['lon'].to_f * GeoRecord::SCALE
-      lat << n['lat'].to_f * GeoRecord::SCALE
+      lon << n["lon"].to_f * GeoRecord::SCALE
+      lat << n["lat"].to_f * GeoRecord::SCALE
     end
 
     # add the existing bounding box to the lon-lat array
@@ -204,17 +204,17 @@ class ChangesetController < ApplicationController
   # query changesets by bounding box, time, user or open/closed status.
   def query
     # find any bounding box
-    bbox = BoundingBox.from_bbox_params(params) if params['bbox']
+    bbox = BoundingBox.from_bbox_params(params) if params["bbox"]
 
     # create the conditions that the user asked for. some or all of
     # these may be nil.
     changesets = Changeset.all
     changesets = conditions_bbox(changesets, bbox)
-    changesets = conditions_user(changesets, params['user'], params['display_name'])
-    changesets = conditions_time(changesets, params['time'])
-    changesets = conditions_open(changesets, params['open'])
-    changesets = conditions_closed(changesets, params['closed'])
-    changesets = conditions_ids(changesets, params['changesets'])
+    changesets = conditions_user(changesets, params["user"], params["display_name"])
+    changesets = conditions_time(changesets, params["time"])
+    changesets = conditions_open(changesets, params["open"])
+    changesets = conditions_closed(changesets, params["closed"])
+    changesets = conditions_ids(changesets, params["changesets"])
 
     # create the results document
     results = OSM::API.new.get_xml_doc
@@ -509,7 +509,7 @@ class ChangesetController < ApplicationController
     else
       # if there is a range, i.e: comma separated, then the first is
       # low, second is high - same as with bounding boxes.
-      if time.count(',') == 1
+      if time.count(",") == 1
         # check that we actually have 2 elements in the array
         times = time.split(/,/)
         fail OSM::APIBadUserInput.new("bad time range") if times.size != 2
@@ -564,7 +564,7 @@ class ChangesetController < ApplicationController
     elsif ids.empty?
       fail OSM::APIBadUserInput.new("No changesets were given to search for")
     else
-      ids = ids.split(',').collect(&:to_i)
+      ids = ids.split(",").collect(&:to_i)
       return changesets.where(:id => ids)
     end
   end
index 5129963..7c38e58 100644 (file)
@@ -1,5 +1,5 @@
 class DiaryEntryController < ApplicationController
-  layout 'site', :except => :rss
+  layout "site", :except => :rss
 
   before_filter :authorize_web
   before_filter :set_locale
@@ -10,7 +10,7 @@ class DiaryEntryController < ApplicationController
   before_filter :require_administrator, :only => [:hide, :hidecomment]
 
   def new
-    @title = t 'diary_entry.new.title'
+    @title = t "diary_entry.new.title"
 
     if params[:diary_entry]
       @diary_entry = DiaryEntry.new(entry_params)
@@ -24,27 +24,27 @@ class DiaryEntryController < ApplicationController
         else
           @user.preferences.create(:k => "diary.default_language", :v => @diary_entry.language_code)
         end
-        redirect_to :controller => 'diary_entry', :action => 'list', :display_name => @user.display_name
+        redirect_to :controller => "diary_entry", :action => "list", :display_name => @user.display_name
       else
-        render :action => 'edit'
+        render :action => "edit"
       end
     else
       default_lang = @user.preferences.where(:k => "diary.default_language").first
       lang_code = default_lang ? default_lang.v : @user.preferred_language
       @diary_entry = DiaryEntry.new(:language_code => lang_code)
       set_map_location
-      render :action => 'edit'
+      render :action => "edit"
     end
   end
 
   def edit
-    @title = t 'diary_entry.edit.title'
+    @title = t "diary_entry.edit.title"
     @diary_entry = DiaryEntry.find(params[:id])
 
     if @user != @diary_entry.user
-      redirect_to :controller => 'diary_entry', :action => 'view', :id => params[:id]
+      redirect_to :controller => "diary_entry", :action => "view", :id => params[:id]
     elsif params[:diary_entry] && @diary_entry.update_attributes(entry_params)
-      redirect_to :controller => 'diary_entry', :action => 'view', :id => params[:id]
+      redirect_to :controller => "diary_entry", :action => "view", :id => params[:id]
     end
 
     set_map_location
@@ -61,9 +61,9 @@ class DiaryEntryController < ApplicationController
         Notifier.diary_comment_notification(@diary_comment).deliver_now
       end
 
-      redirect_to :controller => 'diary_entry', :action => 'view', :display_name => @entry.user.display_name, :id => @entry.id
+      redirect_to :controller => "diary_entry", :action => "view", :display_name => @entry.user.display_name, :id => @entry.id
     else
-      render :action => 'view'
+      render :action => "view"
     end
   rescue ActiveRecord::RecordNotFound
     render :action => "no_such_entry", :status => :not_found
@@ -74,7 +74,7 @@ class DiaryEntryController < ApplicationController
       @this_user = User.active.find_by_display_name(params[:display_name])
 
       if @this_user
-        @title = t 'diary_entry.list.user_title', :user => @this_user.display_name
+        @title = t "diary_entry.list.user_title", :user => @this_user.display_name
         @entries = @this_user.diary_entries
       else
         render_unknown_user params[:display_name]
@@ -82,7 +82,7 @@ class DiaryEntryController < ApplicationController
       end
     elsif params[:friends]
       if @user
-        @title = t 'diary_entry.list.title_friends'
+        @title = t "diary_entry.list.title_friends"
         @entries = DiaryEntry.where(:user_id => @user.friend_users)
       else
         require_user
@@ -90,7 +90,7 @@ class DiaryEntryController < ApplicationController
       end
     elsif params[:nearby]
       if @user
-        @title = t 'diary_entry.list.title_nearby'
+        @title = t "diary_entry.list.title_nearby"
         @entries = DiaryEntry.where(:user_id => @user.nearby)
       else
         require_user
@@ -100,10 +100,10 @@ class DiaryEntryController < ApplicationController
       @entries = DiaryEntry.joins(:user).where(:users => { :status => %w(active confirmed) })
 
       if params[:language]
-        @title = t 'diary_entry.list.in_language_title', :language => Language.find(params[:language]).english_name
+        @title = t "diary_entry.list.in_language_title", :language => Language.find(params[:language]).english_name
         @entries = @entries.where(:language_code => params[:language])
       else
-        @title = t 'diary_entry.list.title'
+        @title = t "diary_entry.list.title"
       end
     end
 
@@ -123,8 +123,8 @@ class DiaryEntryController < ApplicationController
 
       if user
         @entries = user.diary_entries
-        @title = I18n.t('diary_entry.feed.user.title', :user => user.display_name)
-        @description = I18n.t('diary_entry.feed.user.description', :user => user.display_name)
+        @title = I18n.t("diary_entry.feed.user.title", :user => user.display_name)
+        @description = I18n.t("diary_entry.feed.user.description", :user => user.display_name)
         @link = "http://#{SERVER_URL}/user/#{user.display_name}/diary"
       else
         render :text => "", :status => :not_found
@@ -135,12 +135,12 @@ class DiaryEntryController < ApplicationController
 
       if params[:language]
         @entries = @entries.where(:language_code => params[:language])
-        @title = I18n.t('diary_entry.feed.language.title', :language_name => Language.find(params[:language]).english_name)
-        @description = I18n.t('diary_entry.feed.language.description', :language_name => Language.find(params[:language]).english_name)
+        @title = I18n.t("diary_entry.feed.language.title", :language_name => Language.find(params[:language]).english_name)
+        @description = I18n.t("diary_entry.feed.language.description", :language_name => Language.find(params[:language]).english_name)
         @link = "http://#{SERVER_URL}/diary/#{params[:language]}"
       else
-        @title = I18n.t('diary_entry.feed.all.title')
-        @description = I18n.t('diary_entry.feed.all.description')
+        @title = I18n.t("diary_entry.feed.all.title")
+        @description = I18n.t("diary_entry.feed.all.description")
         @link = "http://#{SERVER_URL}/diary"
       end
     end
@@ -151,10 +151,10 @@ class DiaryEntryController < ApplicationController
   def view
     @entry = @this_user.diary_entries.visible.where(:id => params[:id]).first
     if @entry
-      @title = t 'diary_entry.view.title', :user => params[:display_name], :title => @entry.title
+      @title = t "diary_entry.view.title", :user => params[:display_name], :title => @entry.title
     else
-      @title = t 'diary_entry.no_such_entry.title', :id => params[:id]
-      render :action => 'no_such_entry', :status => :not_found
+      @title = t "diary_entry.no_such_entry.title", :id => params[:id]
+      render :action => "no_such_entry", :status => :not_found
     end
   end
 
@@ -176,7 +176,7 @@ class DiaryEntryController < ApplicationController
                                            :user_id => @this_user,
                                            :visible => true
                                          },
-                                         :order => 'created_at DESC',
+                                         :order => "created_at DESC",
                                          :per_page => 20)
     @page = (params[:page] || 1).to_i
   end
@@ -200,8 +200,8 @@ class DiaryEntryController < ApplicationController
   # and return them to the user page.
   def require_administrator
     unless @user.administrator?
-      flash[:error] = t('user.filter.not_an_administrator')
-      redirect_to :controller => 'diary_entry', :action => 'view'
+      flash[:error] = t("user.filter.not_an_administrator")
+      redirect_to :controller => "diary_entry", :action => "view"
     end
   end
 
index 37cdc65..e889228 100644 (file)
@@ -1,10 +1,10 @@
 # coding: utf-8
 
 class GeocoderController < ApplicationController
-  require 'cgi'
-  require 'uri'
-  require 'net/http'
-  require 'rexml/document'
+  require "cgi"
+  require "uri"
+  require "net/http"
+  require "rexml/document"
 
   before_filter :authorize_web
   before_filter :set_locale
@@ -170,7 +170,7 @@ class GeocoderController < ApplicationController
       else
         prefix_name = t "geocoder.search_osm_nominatim.prefix.#{klass}.#{type}", :default => type.gsub("_", " ").capitalize
       end
-      if klass == 'boundary' && type == 'administrative'
+      if klass == "boundary" && type == "administrative"
         rank = (place.attributes["place_rank"].to_i + 1) / 2
         prefix_name = t "geocoder.search_osm_nominatim.admin_levels.level#{rank}", :default => prefix_name
       end
@@ -324,7 +324,7 @@ class GeocoderController < ApplicationController
   end
 
   def escape_query(query)
-    URI.escape(query, Regexp.new("[^#{URI::PATTERN::UNRESERVED}]", false, 'N'))
+    URI.escape(query, Regexp.new("[^#{URI::PATTERN::UNRESERVED}]", false, "N"))
   end
 
   def normalize_params
@@ -356,11 +356,11 @@ class GeocoderController < ApplicationController
   def nsew_to_decdeg(captures)
     begin
       Float(captures[0])
-      captures[2].downcase != 's' ? lat = captures[0].to_f : lat = -(captures[0].to_f)
-      captures[5].downcase != 'w' ? lon = captures[3].to_f : lon = -(captures[3].to_f)
+      captures[2].downcase != "s" ? lat = captures[0].to_f : lat = -(captures[0].to_f)
+      captures[5].downcase != "w" ? lon = captures[3].to_f : lon = -(captures[3].to_f)
     rescue
-      captures[0].downcase != 's' ? lat = captures[1].to_f : lat = -(captures[1].to_f)
-      captures[3].downcase != 'w' ? lon = captures[4].to_f : lon = -(captures[4].to_f)
+      captures[0].downcase != "s" ? lat = captures[1].to_f : lat = -(captures[1].to_f)
+      captures[3].downcase != "w" ? lon = captures[4].to_f : lon = -(captures[4].to_f)
     end
     { :lat => lat, :lon => lon }
   end
@@ -368,11 +368,11 @@ class GeocoderController < ApplicationController
   def ddm_to_decdeg(captures)
     begin
       Float(captures[0])
-      captures[3].downcase != 's' ? lat = captures[0].to_f + captures[1].to_f / 60 : lat = -(captures[0].to_f + captures[1].to_f / 60)
-      captures[7].downcase != 'w' ? lon = captures[4].to_f + captures[5].to_f / 60 : lon = -(captures[4].to_f + captures[5].to_f / 60)
+      captures[3].downcase != "s" ? lat = captures[0].to_f + captures[1].to_f / 60 : lat = -(captures[0].to_f + captures[1].to_f / 60)
+      captures[7].downcase != "w" ? lon = captures[4].to_f + captures[5].to_f / 60 : lon = -(captures[4].to_f + captures[5].to_f / 60)
     rescue
-      captures[0].downcase != 's' ? lat = captures[1].to_f + captures[2].to_f / 60 : lat = -(captures[1].to_f + captures[2].to_f / 60)
-      captures[4].downcase != 'w' ? lon = captures[5].to_f + captures[6].to_f / 60 : lon = -(captures[5].to_f + captures[6].to_f / 60)
+      captures[0].downcase != "s" ? lat = captures[1].to_f + captures[2].to_f / 60 : lat = -(captures[1].to_f + captures[2].to_f / 60)
+      captures[4].downcase != "w" ? lon = captures[5].to_f + captures[6].to_f / 60 : lon = -(captures[5].to_f + captures[6].to_f / 60)
     end
     { :lat => lat, :lon => lon }
   end
@@ -380,11 +380,11 @@ class GeocoderController < ApplicationController
   def dms_to_decdeg(captures)
     begin
       Float(captures[0])
-      captures[4].downcase != 's' ? lat = captures[0].to_f + (captures[1].to_f + captures[2].to_f / 60) / 60 : lat = -(captures[0].to_f + (captures[1].to_f + captures[2].to_f / 60) / 60)
-      captures[9].downcase != 'w' ? lon = captures[5].to_f + (captures[6].to_f + captures[7].to_f / 60) / 60 : lon = -(captures[5].to_f + (captures[6].to_f + captures[7].to_f / 60) / 60)
+      captures[4].downcase != "s" ? lat = captures[0].to_f + (captures[1].to_f + captures[2].to_f / 60) / 60 : lat = -(captures[0].to_f + (captures[1].to_f + captures[2].to_f / 60) / 60)
+      captures[9].downcase != "w" ? lon = captures[5].to_f + (captures[6].to_f + captures[7].to_f / 60) / 60 : lon = -(captures[5].to_f + (captures[6].to_f + captures[7].to_f / 60) / 60)
     rescue
-      captures[0].downcase != 's' ? lat = captures[1].to_f + (captures[2].to_f + captures[3].to_f / 60) / 60 : lat = -(captures[1].to_f + (captures[2].to_f + captures[3].to_f / 60) / 60)
-      captures[5].downcase != 'w' ? lon = captures[6].to_f + (captures[7].to_f + captures[8].to_f / 60) / 60 : lon = -(captures[6].to_f + (captures[7].to_f + captures[8].to_f / 60) / 60)
+      captures[0].downcase != "s" ? lat = captures[1].to_f + (captures[2].to_f + captures[3].to_f / 60) / 60 : lat = -(captures[1].to_f + (captures[2].to_f + captures[3].to_f / 60) / 60)
+      captures[5].downcase != "w" ? lon = captures[6].to_f + (captures[7].to_f + captures[8].to_f / 60) / 60 : lon = -(captures[6].to_f + (captures[7].to_f + captures[8].to_f / 60) / 60)
     end
     { :lat => lat, :lon => lon }
   end
index 3cc80c1..32f2f87 100644 (file)
@@ -1,5 +1,5 @@
 class MessageController < ApplicationController
-  layout 'site'
+  layout "site"
 
   before_filter :authorize_web
   before_filter :set_locale
@@ -15,7 +15,7 @@ class MessageController < ApplicationController
   def new
     if params[:message]
       if @user.sent_messages.where("sent_on >= ?", Time.now.getutc - 1.hour).count >= MAX_MESSAGES_PER_HOUR
-        flash[:error] = t 'message.new.limit_exceeded'
+        flash[:error] = t "message.new.limit_exceeded"
       else
         @message = Message.new(message_params)
         @message.to_user_id = @this_user.id
@@ -23,15 +23,15 @@ class MessageController < ApplicationController
         @message.sent_on = Time.now.getutc
 
         if @message.save
-          flash[:notice] = t 'message.new.message_sent'
+          flash[:notice] = t "message.new.message_sent"
           Notifier.message_notification(@message).deliver_now
-          redirect_to :controller => 'message', :action => 'inbox', :display_name => @user.display_name
+          redirect_to :controller => "message", :action => "inbox", :display_name => @user.display_name
         end
       end
     end
 
     @message ||= Message.new(:recipient => @this_user)
-    @title = t 'message.new.title'
+    @title = t "message.new.title"
   end
 
   # Allow the user to reply to another message.
@@ -49,69 +49,69 @@ class MessageController < ApplicationController
 
       @title = @message.title
 
-      render :action => 'new'
+      render :action => "new"
     else
-      flash[:notice] = t 'message.reply.wrong_user', :user => @user.display_name
+      flash[:notice] = t "message.reply.wrong_user", :user => @user.display_name
       redirect_to :controller => "user", :action => "login", :referer => request.fullpath
     end
   rescue ActiveRecord::RecordNotFound
-    @title = t 'message.no_such_message.title'
-    render :action => 'no_such_message', :status => :not_found
+    @title = t "message.no_such_message.title"
+    render :action => "no_such_message", :status => :not_found
   end
 
   # Show a message
   def read
-    @title = t 'message.read.title'
+    @title = t "message.read.title"
     @message = Message.find(params[:message_id])
 
     if @message.to_user_id == @user.id || @message.from_user_id == @user.id
       @message.message_read = true if @message.to_user_id == @user.id
       @message.save
     else
-      flash[:notice] = t 'message.read.wrong_user', :user => @user.display_name
+      flash[:notice] = t "message.read.wrong_user", :user => @user.display_name
       redirect_to :controller => "user", :action => "login", :referer => request.fullpath
     end
   rescue ActiveRecord::RecordNotFound
-    @title = t 'message.no_such_message.title'
-    render :action => 'no_such_message', :status => :not_found
+    @title = t "message.no_such_message.title"
+    render :action => "no_such_message", :status => :not_found
   end
 
   # Display the list of messages that have been sent to the user.
   def inbox
-    @title = t 'message.inbox.title'
+    @title = t "message.inbox.title"
     if @user && params[:display_name] == @user.display_name
     else
-      redirect_to :controller => 'message', :action => 'inbox', :display_name => @user.display_name
+      redirect_to :controller => "message", :action => "inbox", :display_name => @user.display_name
     end
   end
 
   # Display the list of messages that the user has sent to other users.
   def outbox
-    @title = t 'message.outbox.title'
+    @title = t "message.outbox.title"
     if @user && params[:display_name] == @user.display_name
     else
-      redirect_to :controller => 'message', :action => 'outbox', :display_name => @user.display_name
+      redirect_to :controller => "message", :action => "outbox", :display_name => @user.display_name
     end
   end
 
   # Set the message as being read or unread.
   def mark
     @message = Message.where("to_user_id = ? OR from_user_id = ?", @user.id, @user.id).find(params[:message_id])
-    if params[:mark] == 'unread'
+    if params[:mark] == "unread"
       message_read = false
-      notice = t 'message.mark.as_unread'
+      notice = t "message.mark.as_unread"
     else
       message_read = true
-      notice = t 'message.mark.as_read'
+      notice = t "message.mark.as_read"
     end
     @message.message_read = message_read
     if @message.save && !request.xhr?
       flash[:notice] = notice
-      redirect_to :controller => 'message', :action => 'inbox', :display_name => @user.display_name
+      redirect_to :controller => "message", :action => "inbox", :display_name => @user.display_name
     end
   rescue ActiveRecord::RecordNotFound
-    @title = t 'message.no_such_message.title'
-    render :action => 'no_such_message', :status => :not_found
+    @title = t "message.no_such_message.title"
+    render :action => "no_such_message", :status => :not_found
   end
 
   # Delete the message.
@@ -120,17 +120,17 @@ class MessageController < ApplicationController
     @message.from_user_visible = false if @message.sender == @user
     @message.to_user_visible = false if @message.recipient == @user
     if @message.save && !request.xhr?
-      flash[:notice] = t 'message.delete.deleted'
+      flash[:notice] = t "message.delete.deleted"
 
       if params[:referer]
         redirect_to params[:referer]
       else
-        redirect_to :controller => 'message', :action => 'inbox', :display_name => @user.display_name
+        redirect_to :controller => "message", :action => "inbox", :display_name => @user.display_name
       end
     end
   rescue ActiveRecord::RecordNotFound
-    @title = t 'message.no_such_message.title'
-    render :action => 'no_such_message', :status => :not_found
+    @title = t "message.no_such_message.title"
+    render :action => "no_such_message", :status => :not_found
   end
 
   private
index cd5b893..8c57ad8 100644 (file)
@@ -1,7 +1,7 @@
 # The NodeController is the RESTful interface to Node objects
 
 class NodeController < ApplicationController
-  require 'xml/libxml'
+  require "xml/libxml"
 
   skip_before_filter :verify_authenticity_token
   before_filter :authorize, :only => [:create, :update, :delete]
@@ -64,11 +64,11 @@ class NodeController < ApplicationController
 
   # Dump the details on many nodes whose ids are given in the "nodes" parameter.
   def nodes
-    unless params['nodes']
+    unless params["nodes"]
       fail OSM::APIBadUserInput.new("The parameter nodes is required, and must be of the form nodes=id[,id[,id...]]")
     end
 
-    ids = params['nodes'].split(',').collect(&:to_i)
+    ids = params["nodes"].split(",").collect(&:to_i)
 
     if ids.length == 0
       fail OSM::APIBadUserInput.new("No nodes were given to search for")
index 5fdda44..5bdf288 100644 (file)
@@ -1,5 +1,5 @@
 class NotesController < ApplicationController
-  layout 'site', :only => [:mine]
+  layout "site", :only => [:mine]
 
   before_filter :check_api_readable
   before_filter :authorize_web, :only => [:mine]
@@ -279,17 +279,17 @@ class NotesController < ApplicationController
   def mine
     if params[:display_name]
       if @this_user = User.active.find_by_display_name(params[:display_name])
-        @title =  t 'note.mine.title', :user => @this_user.display_name
-        @heading =  t 'note.mine.heading', :user => @this_user.display_name
-        @description = t 'note.mine.subheading', :user => render_to_string(:partial => "user", :object => @this_user)
+        @title =  t "note.mine.title", :user => @this_user.display_name
+        @heading =  t "note.mine.heading", :user => @this_user.display_name
+        @description = t "note.mine.subheading", :user => render_to_string(:partial => "user", :object => @this_user)
         @page = (params[:page] || 1).to_i
         @page_size = 10
         @notes = @this_user.notes.order("updated_at DESC, id").uniq.offset((@page - 1) * @page_size).limit(@page_size).preload(:comments => :author).to_a
       else
-        @title = t 'user.no_such_user.title'
+        @title = t "user.no_such_user.title"
         @not_found_user = params[:display_name]
 
-        render :template => 'user/no_such_user', :status => :not_found
+        render :template => "user/no_such_user", :status => :not_found
       end
     end
   end
index 48074dd..bf55679 100644 (file)
@@ -1,5 +1,5 @@
 class OauthClientsController < ApplicationController
-  layout 'site'
+  layout "site"
 
   before_filter :authorize_web
   before_filter :set_locale
@@ -17,7 +17,7 @@ class OauthClientsController < ApplicationController
   def create
     @client_application = @user.client_applications.build(application_params)
     if @client_application.save
-      flash[:notice] = t 'oauth_clients.create.flash'
+      flash[:notice] = t "oauth_clients.create.flash"
       redirect_to :action => "show", :id => @client_application.id
     else
       render :action => "new"
@@ -41,7 +41,7 @@ class OauthClientsController < ApplicationController
   def update
     @client_application = @user.client_applications.find(params[:id])
     if @client_application.update_attributes(application_params)
-      flash[:notice] = t 'oauth_clients.update.flash'
+      flash[:notice] = t "oauth_clients.update.flash"
       redirect_to :action => "show", :id => @client_application.id
     else
       render :action => "edit"
@@ -54,7 +54,7 @@ class OauthClientsController < ApplicationController
   def destroy
     @client_application = @user.client_applications.find(params[:id])
     @client_application.destroy
-    flash[:notice] = t 'oauth_clients.destroy.flash'
+    flash[:notice] = t "oauth_clients.destroy.flash"
     redirect_to :action => "index"
   rescue ActiveRecord::RecordNotFound
     @type = "client application"
index 819f74d..ed7853d 100644 (file)
@@ -1,9 +1,9 @@
-require 'oauth/controllers/provider_controller'
+require "oauth/controllers/provider_controller"
 
 class OauthController < ApplicationController
   include OAuth::Controllers::ProviderController
 
-  layout 'site'
+  layout "site"
 
   def login_required
     authorize_web
@@ -30,7 +30,7 @@ class OauthController < ApplicationController
     @token = current_user.oauth_tokens.find_by_token params[:token]
     if @token
       @token.invalidate!
-      flash[:notice] = t('oauth.revoke.flash', :application => @token.client_application.name)
+      flash[:notice] = t("oauth.revoke.flash", :application => @token.client_application.name)
     end
     redirect_to oauth_clients_url(:display_name => @token.user.display_name)
   end
index 9d7cf21..ff86407 100644 (file)
@@ -2,7 +2,7 @@
 # into one place. as it turns out, the API methods for historical
 # nodes, ways and relations are basically identical.
 class OldController < ApplicationController
-  require 'xml/libxml'
+  require "xml/libxml"
 
   skip_before_filter :verify_authenticity_token
   before_filter :setup_user_auth, :only => [:history, :version]
@@ -52,7 +52,7 @@ class OldController < ApplicationController
   end
 
   def redact
-    redaction_id = params['redaction']
+    redaction_id = params["redaction"]
     if redaction_id.nil?
       # if no redaction ID was provided, then this is an unredact
       # operation.
index 8ba5c7d..beff596 100644 (file)
@@ -1,5 +1,5 @@
 class RedactionsController < ApplicationController
-  layout 'site'
+  layout "site"
 
   before_filter :authorize_web
   before_filter :set_locale
@@ -25,10 +25,10 @@ class RedactionsController < ApplicationController
     # note that the description format will default to 'markdown'
 
     if @redaction.save
-      flash[:notice] = t('redaction.create.flash')
+      flash[:notice] = t("redaction.create.flash")
       redirect_to @redaction
     else
-      render :action => 'new'
+      render :action => "new"
     end
   end
 
@@ -44,10 +44,10 @@ class RedactionsController < ApplicationController
     @redaction.description = params[:redaction][:description]
 
     if @redaction.save
-      flash[:notice] = t('redaction.update.flash')
+      flash[:notice] = t("redaction.update.flash")
       redirect_to @redaction
     else
-      render :action => 'edit'
+      render :action => "edit"
     end
   end
 
@@ -56,14 +56,14 @@ class RedactionsController < ApplicationController
        @redaction.old_ways.empty? &&
        @redaction.old_relations.empty?
       if @redaction.destroy
-        flash[:notice] = t('redaction.destroy.flash')
+        flash[:notice] = t("redaction.destroy.flash")
         redirect_to :redactions
       else
-        flash[:error] = t('redaction.destroy.error')
+        flash[:error] = t("redaction.destroy.error")
         redirect_to @redaction
       end
     else
-      flash[:error] = t('redaction.destroy.not_empty')
+      flash[:error] = t("redaction.destroy.not_empty")
       redirect_to @redaction
     end
   end
index 132b78e..22a8d28 100644 (file)
@@ -1,5 +1,5 @@
 class RelationController < ApplicationController
-  require 'xml/libxml'
+  require "xml/libxml"
 
   skip_before_filter :verify_authenticity_token
   before_filter :authorize, :only => [:create, :update, :delete]
@@ -76,9 +76,9 @@ class RelationController < ApplicationController
       # first find the ids of nodes, ways and relations referenced by this
       # relation - note that we exclude this relation just in case.
 
-      node_ids = relation.members.select { |m| m[0] == 'Node' }.map { |m| m[1] }
-      way_ids = relation.members.select { |m| m[0] == 'Way' }.map { |m| m[1] }
-      relation_ids = relation.members.select { |m| m[0] == 'Relation' && m[1] != relation.id }.map { |m| m[1] }
+      node_ids = relation.members.select { |m| m[0] == "Node" }.map { |m| m[1] }
+      way_ids = relation.members.select { |m| m[0] == "Way" }.map { |m| m[1] }
+      relation_ids = relation.members.select { |m| m[0] == "Relation" && m[1] != relation.id }.map { |m| m[1] }
 
       # next load the relations and the ways.
 
@@ -133,11 +133,11 @@ class RelationController < ApplicationController
   end
 
   def relations
-    unless params['relations']
+    unless params["relations"]
       fail OSM::APIBadUserInput.new("The parameter relations is required, and must be of the form relations=id[,id[,id...]]")
     end
 
-    ids = params['relations'].split(',').collect(&:to_i)
+    ids = params["relations"].split(",").collect(&:to_i)
 
     if ids.length == 0
       fail OSM::APIBadUserInput.new("No relations were given to search for")
index 7cd6f4c..0217bb2 100644 (file)
@@ -22,24 +22,24 @@ class SearchController < ApplicationController
   end
 
   def do_search(do_ways, do_nodes, do_relations)
-    type = params['type']
-    value = params['value']
+    type = params["type"]
+    value = params["value"]
     unless type || value
-      name = params['name']
+      name = params["name"]
       if name
-        type = 'name'
+        type = "name"
         value = name
       end
     end
 
     if do_nodes
-      response.headers['Error'] = "Searching of nodes is currently unavailable"
+      response.headers["Error"] = "Searching of nodes is currently unavailable"
       render :text => "", :status => :service_unavailable
       return false
     end
 
     unless value
-      response.headers['Error'] = "Searching for a key without value is currently unavailable"
+      response.headers["Error"] = "Searching for a key without value is currently unavailable"
       render :text => "", :status => :service_unavailable
       return false
     end
index 01cdcf2..4034950 100644 (file)
@@ -1,5 +1,5 @@
 class SiteController < ApplicationController
-  layout 'site'
+  layout "site"
   layout :map_layout, :only => [:index, :export]
 
   before_filter :authorize_web
@@ -11,7 +11,7 @@ class SiteController < ApplicationController
 
   def index
     unless STATUS == :database_readonly || STATUS == :database_offline
-      session[:location] ||= OSM.ip_location(request.env['REMOTE_ADDR'])
+      session[:location] ||= OSM.ip_location(request.env["REMOTE_ADDR"])
     end
   end
 
@@ -26,24 +26,24 @@ class SiteController < ApplicationController
     end
 
     if params.key? :node
-      new_params[:controller] = 'browse'
-      new_params[:action] = 'node'
+      new_params[:controller] = "browse"
+      new_params[:action] = "node"
       new_params[:id] = params[:node]
     elsif params.key? :way
-      new_params[:controller] = 'browse'
-      new_params[:action] = 'way'
+      new_params[:controller] = "browse"
+      new_params[:action] = "way"
       new_params[:id] = params[:way]
     elsif params.key? :relation
-      new_params[:controller] = 'browse'
-      new_params[:action] = 'relation'
+      new_params[:controller] = "browse"
+      new_params[:action] = "relation"
       new_params[:id] = params[:relation]
     elsif params.key? :changeset
-      new_params[:controller] = 'browse'
-      new_params[:action] = 'changeset'
+      new_params[:controller] = "browse"
+      new_params[:action] = "changeset"
       new_params[:id] = params[:changeset]
     else
-      new_params[:controller] = 'site'
-      new_params[:action] = 'index'
+      new_params[:controller] = "site"
+      new_params[:action] = "index"
     end
 
     new_params[:anchor] = "map=#{zoom}/#{lat}/#{lon}"
@@ -143,12 +143,12 @@ class SiteController < ApplicationController
 
     if params[:layers]
       anchor << "layers=#{params.delete(:layers)}"
-    elsif params.delete(:notes) == 'yes'
+    elsif params.delete(:notes) == "yes"
       anchor << "layers=N"
     end
 
     if anchor.present?
-      redirect_to Hash[params].merge(:anchor => anchor.join('&'))
+      redirect_to Hash[params].merge(:anchor => anchor.join("&"))
     end
   end
 end
index af5afb7..51fe401 100644 (file)
@@ -15,13 +15,13 @@ class SwfController < ApplicationController
   def trackpoints
     # -        Initialise
 
-    baselong = params['baselong'].to_f
-    basey = params['basey'].to_f
-    masterscale = params['masterscale'].to_f
+    baselong = params["baselong"].to_f
+    basey = params["basey"].to_f
+    masterscale = params["masterscale"].to_f
 
-    bbox = BoundingBox.new(params['xmin'], params['ymin'],
-                           params['xmax'], params['ymax'])
-    start = params['start'].to_i
+    bbox = BoundingBox.new(params["xmin"], params["ymin"],
+                           params["xmax"], params["ymax"])
+    start = params["start"].to_i
 
     # -        Begin movie
 
@@ -30,7 +30,7 @@ class SwfController < ApplicationController
     bounds_bottom = 0
     bounds_top = 240 * 20
 
-    m = ''
+    m = ""
     m += swf_record(9, 255.chr + 155.chr + 155.chr)                    # Background
     absx = 0
     absy = 0
@@ -39,11 +39,11 @@ class SwfController < ApplicationController
 
     # -        Send SQL for GPS tracks
 
-    b = ''
+    b = ""
     lasttime = 0
-    lasttrack = lastfile = '-1'
+    lasttrack = lastfile = "-1"
 
-    if params['token']
+    if params["token"]
       user = User.authenticate(:token => params[:token])
       sql = "SELECT gps_points.latitude*0.0000001 AS lat,gps_points.longitude*0.0000001 AS lon,gpx_files.id AS fileid," +                     "      EXTRACT(EPOCH FROM gps_points.timestamp) AS ts, gps_points.trackid AS trackid " +                            " FROM gpx_files,gps_points " +                         "WHERE gpx_files.id=gpx_id " +                          "  AND gpx_files.user_id=#{user.id} " +                         "  AND " + OSM.sql_for_area(bbox, "gps_points.") +                      "  AND (gps_points.timestamp IS NOT NULL) " +                           "ORDER BY fileid DESC,ts " +                            "LIMIT 10000 OFFSET #{start}"
     else
@@ -55,23 +55,23 @@ class SwfController < ApplicationController
 
     r = start_shape
     gpslist.each do |row|
-      xs = (long2coord(row['lon'].to_f, baselong, masterscale) * 20).floor
-      ys = (lat2coord(row['lat'].to_f, basey, masterscale) * 20).floor
+      xs = (long2coord(row["lon"].to_f, baselong, masterscale) * 20).floor
+      ys = (lat2coord(row["lat"].to_f, basey, masterscale) * 20).floor
       xl = [xs, xl].min
       xr = [xs, xr].max
       yb = [ys, yb].min
       yt = [ys, yt].max
-      if row['ts'].to_i - lasttime > 180 || row['fileid'] != lastfile || row['trackid'] != lasttrack # or row['ts'].to_i==lasttime
-        b += start_and_move(xs, ys, '01')
+      if row["ts"].to_i - lasttime > 180 || row["fileid"] != lastfile || row["trackid"] != lasttrack # or row['ts'].to_i==lasttime
+        b += start_and_move(xs, ys, "01")
         absx = xs.floor
         absy = ys.floor
       end
       b += draw_to(absx, absy, xs, ys)
       absx = xs.floor
       absy = ys.floor
-      lasttime = row['ts'].to_i
-      lastfile = row['fileid']
-      lasttrack = row['trackid']
+      lasttime = row["ts"].to_i
+      lastfile = row["fileid"]
+      lasttrack = row["trackid"]
       r += [b.slice!(0...80)].pack("B*") while b.length > 80
     end
 
@@ -86,11 +86,11 @@ class SwfController < ApplicationController
 
     # -        Create Flash header and write to browser
 
-    m += swf_record(1, '')                                                                     # Show frame
-    m += swf_record(0, '')                                                                     # End
+    m += swf_record(1, "")                                                                     # Show frame
+    m += swf_record(0, "")                                                                     # End
 
     m = pack_rect(bounds_left, bounds_right, bounds_bottom, bounds_top) + 0.chr + 12.chr + pack_u16(1) + m
-    m = 'FWS' + 6.chr + pack_u32(m.length + 8) + m
+    m = "FWS" + 6.chr + pack_u32(m.length + 8) + m
 
     render :text => m, :content_type => "application/x-shockwave-flash"
   end
@@ -113,11 +113,11 @@ class SwfController < ApplicationController
   end
 
   def end_shape
-    '000000'
+    "000000"
   end
 
   def start_and_move(x, y, col)
-    d = '001001'                                       # Line style change, moveTo
+    d = "001001"                                       # Line style change, moveTo
     l = [length_sb(x), length_sb(y)].max
     d += sprintf("%05b%0#{l}b%0#{l}b", l, x, y)
     d += col                                           # Select line style
@@ -133,7 +133,7 @@ class SwfController < ApplicationController
     mstep = [dx.abs / 16383, dy.abs / 16383, 1].max.ceil
     xstep = dx / mstep
     ystep = dy / mstep
-    d = ''
+    d = ""
     1.upto(mstep).each do
       d += draw_section(x, y, x + xstep, y + ystep)
       x += xstep
@@ -143,12 +143,12 @@ class SwfController < ApplicationController
   end
 
   def draw_section(x1, y1, x2, y2)
-    d = '11'                                                                                   # TypeFlag, EdgeFlag
+    d = "11"                                                                                   # TypeFlag, EdgeFlag
     dx = x2 - x1
     dy = y2 - y1
     l = [length_sb(dx), length_sb(dy)].max
     d += sprintf("%04b", l - 2)
-    d += '1'                                                                                   # GeneralLine
+    d += "1"                                                                                   # GeneralLine
     d += sprintf("%0#{l}b%0#{l}b", dx, dy)
     d
   end
index 538cf10..9d6dad6 100644 (file)
@@ -1,5 +1,5 @@
 class TraceController < ApplicationController
-  layout 'site'
+  layout "site"
 
   skip_before_filter :verify_authenticity_token, :only => [:api_create, :api_read, :api_update, :api_delete, :api_data]
   before_filter :authorize_web
@@ -31,14 +31,14 @@ class TraceController < ApplicationController
 
     # set title
     if target_user.nil?
-      @title = t 'trace.list.public_traces'
+      @title = t "trace.list.public_traces"
     elsif @user && @user == target_user
-      @title = t 'trace.list.your_traces'
+      @title = t "trace.list.your_traces"
     else
-      @title = t 'trace.list.public_traces_from', :user => target_user.display_name
+      @title = t "trace.list.public_traces_from", :user => target_user.display_name
     end
 
-    @title += t 'trace.list.tagged_with', :tags => params[:tag] if params[:tag]
+    @title += t "trace.list.tagged_with", :tags => params[:tag] if params[:tag]
 
     # four main cases:
     # 1 - all traces, logged in = all public traces + all user's (i.e + all mine)
@@ -94,14 +94,14 @@ class TraceController < ApplicationController
 
     if @trace && @trace.visible? &&
        (@trace.public? || @trace.user == @user)
-      @title = t 'trace.view.title', :name => @trace.name
+      @title = t "trace.view.title", :name => @trace.name
     else
-      flash[:error] = t 'trace.view.trace_not_found'
-      redirect_to :controller => 'trace', :action => 'list'
+      flash[:error] = t "trace.view.trace_not_found"
+      redirect_to :controller => "trace", :action => "list"
     end
   rescue ActiveRecord::RecordNotFound
-    flash[:error] = t 'trace.view.trace_not_found'
-    redirect_to :controller => 'trace', :action => 'list'
+    flash[:error] = t "trace.view.trace_not_found"
+    redirect_to :controller => "trace", :action => "list"
   end
 
   def create
@@ -118,10 +118,10 @@ class TraceController < ApplicationController
 
         if @trace.id
           logger.info("id is #{@trace.id}")
-          flash[:notice] = t 'trace.create.trace_uploaded'
+          flash[:notice] = t "trace.create.trace_uploaded"
 
           if @user.traces.where(:inserted => false).count > 4
-            flash[:warning] = t 'trace.trace_header.traces_waiting', :count => @user.traces.where(:inserted => false).count
+            flash[:warning] = t "trace.trace_header.traces_waiting", :count => @user.traces.where(:inserted => false).count
           end
 
           redirect_to :action => :list, :display_name => @user.display_name
@@ -140,7 +140,7 @@ class TraceController < ApplicationController
       @trace = Trace.new(:visibility => default_visibility)
     end
 
-    @title = t 'trace.create.upload_trace'
+    @title = t "trace.create.upload_trace"
   end
 
   def data
@@ -150,11 +150,11 @@ class TraceController < ApplicationController
       if Acl.no_trace_download(request.remote_ip)
         render :text => "", :status => :forbidden
       elsif request.format == Mime::XML
-        send_file(trace.xml_file, :filename => "#{trace.id}.xml", :type => request.format.to_s, :disposition => 'attachment')
+        send_file(trace.xml_file, :filename => "#{trace.id}.xml", :type => request.format.to_s, :disposition => "attachment")
       elsif request.format == Mime::GPX
-        send_file(trace.xml_file, :filename => "#{trace.id}.gpx", :type => request.format.to_s, :disposition => 'attachment')
+        send_file(trace.xml_file, :filename => "#{trace.id}.gpx", :type => request.format.to_s, :disposition => "attachment")
       else
-        send_file(trace.trace_name, :filename => "#{trace.id}#{trace.extension_name}", :type => trace.mime_type, :disposition => 'attachment')
+        send_file(trace.trace_name, :filename => "#{trace.id}#{trace.extension_name}", :type => trace.mime_type, :disposition => "attachment")
       end
     else
       render :text => "", :status => :not_found
@@ -171,14 +171,14 @@ class TraceController < ApplicationController
     elsif @user.nil? || @trace.user != @user
       render :text => "", :status => :forbidden
     else
-      @title = t 'trace.edit.title', :name => @trace.name
+      @title = t "trace.edit.title", :name => @trace.name
 
       if params[:trace]
         @trace.description = params[:trace][:description]
         @trace.tagstring = params[:trace][:tagstring]
         @trace.visibility = params[:trace][:visibility]
         if @trace.save
-          redirect_to :action => 'view', :display_name => @user.display_name
+          redirect_to :action => "view", :display_name => @user.display_name
         end
       end
     end
@@ -196,7 +196,7 @@ class TraceController < ApplicationController
     else
       trace.visible = false
       trace.save
-      flash[:notice] = t 'trace.delete.scheduled_for_deletion'
+      flash[:notice] = t "trace.delete.scheduled_for_deletion"
       redirect_to :action => :list, :display_name => @user.display_name
     end
   rescue ActiveRecord::RecordNotFound
@@ -222,7 +222,7 @@ class TraceController < ApplicationController
     if trace.inserted?
       if trace.public? || (@user && @user == trace.user)
         expires_in 7.days, :private => !trace.public?, :public => trace.public?
-        send_file(trace.large_picture_name, :filename => "#{trace.id}.gif", :type => 'image/gif', :disposition => 'inline')
+        send_file(trace.large_picture_name, :filename => "#{trace.id}.gif", :type => "image/gif", :disposition => "inline")
       else
         render :text => "", :status => :forbidden
       end
@@ -239,7 +239,7 @@ class TraceController < ApplicationController
     if trace.inserted?
       if trace.public? || (@user && @user == trace.user)
         expires_in 7.days, :private => !trace.public?, :public => trace.public?
-        send_file(trace.icon_picture_name, :filename => "#{trace.id}_icon.gif", :type => 'image/gif', :disposition => 'inline')
+        send_file(trace.icon_picture_name, :filename => "#{trace.id}_icon.gif", :type => "image/gif", :disposition => "inline")
       else
         render :text => "", :status => :forbidden
       end
@@ -299,9 +299,9 @@ class TraceController < ApplicationController
 
     if trace.public? || trace.user == @user
       if request.format == Mime::XML || request.format == Mime::GPX
-        send_file(trace.xml_file, :filename => "#{trace.id}.xml", :type => request.format.to_s, :disposition => 'attachment')
+        send_file(trace.xml_file, :filename => "#{trace.id}.xml", :type => request.format.to_s, :disposition => "attachment")
       else
-        send_file(trace.trace_name, :filename => "#{trace.id}#{trace.extension_name}", :type => trace.mime_type, :disposition => 'attachment')
+        send_file(trace.trace_name, :filename => "#{trace.id}#{trace.extension_name}", :type => trace.mime_type, :disposition => "attachment")
       end
     else
       render :text => "", :status => :forbidden
@@ -340,7 +340,7 @@ class TraceController < ApplicationController
 
   def do_create(file, tags, description, visibility)
     # Sanitise the user's filename
-    name = file.original_filename.gsub(/[^a-zA-Z0-9.]/, '_')
+    name = file.original_filename.gsub(/[^a-zA-Z0-9.]/, "_")
 
     # Get a temporary filename...
     filename = "/tmp/#{rand}"
@@ -398,7 +398,7 @@ class TraceController < ApplicationController
   end
 
   def offline_warning
-    flash.now[:warning] = t 'trace.offline_warning.message' if STATUS == :gpx_offline
+    flash.now[:warning] = t "trace.offline_warning.message" if STATUS == :gpx_offline
   end
 
   def offline_redirect
index 1b2ff89..b0ac27d 100644 (file)
@@ -1,5 +1,5 @@
 class UserBlocksController < ApplicationController
-  layout 'site'
+  layout "site"
 
   before_filter :authorize_web
   before_filter :set_locale
@@ -44,7 +44,7 @@ class UserBlocksController < ApplicationController
       )
 
       if @user_block.save
-        flash[:notice] = t('user_block.create.flash', :name => @this_user.display_name)
+        flash[:notice] = t("user_block.create.flash", :name => @this_user.display_name)
         redirect_to @user_block
       else
         render :action => "new"
@@ -57,14 +57,14 @@ class UserBlocksController < ApplicationController
   def update
     if @valid_params
       if @user_block.creator_id != @user.id
-        flash[:error] = t('user_block.update.only_creator_can_edit')
+        flash[:error] = t("user_block.update.only_creator_can_edit")
         redirect_to :action => "edit"
       elsif @user_block.update_attributes(
         :ends_at => Time.now.getutc + @block_period.hours,
         :reason => params[:user_block][:reason],
         :needs_view => params[:user_block][:needs_view]
             )
-        flash[:notice] = t('user_block.update.success')
+        flash[:notice] = t("user_block.update.success")
         redirect_to(@user_block)
       else
         render :action => "edit"
@@ -79,7 +79,7 @@ class UserBlocksController < ApplicationController
   def revoke
     if params[:confirm]
       if @user_block.revoke! @user
-        flash[:notice] = t 'user_block.revoke.flash'
+        flash[:notice] = t "user_block.revoke.flash"
         redirect_to(@user_block)
       end
     end
@@ -125,10 +125,10 @@ class UserBlocksController < ApplicationController
     @valid_params = false
 
     if !UserBlock::PERIODS.include?(@block_period)
-      flash[:error] = t('user_block.filter.block_period')
+      flash[:error] = t("user_block.filter.block_period")
 
     elsif @user_block && !@user_block.active?
-      flash[:error] = t('user_block.filter.block_expired')
+      flash[:error] = t("user_block.filter.block_expired")
 
     else
       @valid_params = true
index 70fa4f7..1a7f381 100644 (file)
@@ -1,5 +1,5 @@
 class UserController < ApplicationController
-  layout 'site', :except => [:api_details]
+  layout "site", :except => [:api_details]
 
   skip_before_filter :verify_authenticity_token, :only => [:api_read, :api_details, :api_gpx_files]
   before_filter :disable_terms_redirect, :only => [:terms, :save, :logout, :api_details]
@@ -26,7 +26,7 @@ class UserController < ApplicationController
     if request.xhr?
       render :partial => "terms"
     else
-      @title = t 'user.terms.title'
+      @title = t "user.terms.title"
 
       if @user && @user.terms_agreed?
         # Already agreed to terms, so just show settings
@@ -38,14 +38,14 @@ class UserController < ApplicationController
   end
 
   def save
-    @title = t 'user.new.title'
+    @title = t "user.new.title"
 
     if params[:decline]
       if @user
         @user.terms_seen = true
 
         if @user.save
-          flash[:notice] = t 'user.new.terms declined', :url => t('user.new.terms declined url')
+          flash[:notice] = t "user.new.terms declined", :url => t("user.new.terms declined url")
         end
 
         if params[:referer]
@@ -54,7 +54,7 @@ class UserController < ApplicationController
           redirect_to :action => :account, :display_name => @user.display_name
         end
       else
-        redirect_to t('user.terms.declined')
+        redirect_to t("user.terms.declined")
       end
     elsif @user
       unless @user.terms_agreed?
@@ -62,7 +62,7 @@ class UserController < ApplicationController
         @user.terms_agreed = Time.now.getutc
         @user.terms_seen = true
 
-        flash[:notice] = t 'user.new.terms accepted' if @user.save
+        flash[:notice] = t "user.new.terms accepted" if @user.save
       end
 
       if params[:referer]
@@ -90,10 +90,10 @@ class UserController < ApplicationController
           begin
             uri = URI(session[:referer])
             /map=(.*)\/(.*)\/(.*)/.match(uri.fragment) do |m|
-              editor = Rack::Utils.parse_query(uri.query).slice('editor')
-              referer = welcome_path({ 'zoom' => m[1],
-                                       'lat' => m[2],
-                                       'lon' => m[3] }.merge(editor))
+              editor = Rack::Utils.parse_query(uri.query).slice("editor")
+              referer = welcome_path({ "zoom" => m[1],
+                                       "lat" => m[2],
+                                       "lon" => m[3] }.merge(editor))
             end
           rescue
             # Use default
@@ -105,17 +105,17 @@ class UserController < ApplicationController
           else
             session[:token] = @user.tokens.create.token
             Notifier.signup_confirm(@user, @user.tokens.create(:referer => referer)).deliver_now
-            redirect_to :action => 'confirm', :display_name => @user.display_name
+            redirect_to :action => "confirm", :display_name => @user.display_name
           end
         else
-          render :action => 'new', :referer => params[:referer]
+          render :action => "new", :referer => params[:referer]
         end
       end
     end
   end
 
   def account
-    @title = t 'user.account.title'
+    @title = t "user.account.title"
     @tokens = @user.oauth_tokens.authorized
 
     if params[:user] && params[:user][:display_name] && params[:user][:description]
@@ -144,12 +144,12 @@ class UserController < ApplicationController
   def go_public
     @user.data_public = true
     @user.save
-    flash[:notice] = t 'user.go_public.flash success'
-    redirect_to :controller => 'user', :action => 'account', :display_name => @user.display_name
+    flash[:notice] = t "user.go_public.flash success"
+    redirect_to :controller => "user", :action => "account", :display_name => @user.display_name
   end
 
   def lost_password
-    @title = t 'user.lost_password.title'
+    @title = t "user.lost_password.title"
 
     if params[:user] && params[:user][:email]
       user = User.visible.find_by_email(params[:user][:email])
@@ -163,16 +163,16 @@ class UserController < ApplicationController
       if user
         token = user.tokens.create
         Notifier.lost_password(user, token).deliver_now
-        flash[:notice] = t 'user.lost_password.notice email on way'
-        redirect_to :action => 'login'
+        flash[:notice] = t "user.lost_password.notice email on way"
+        redirect_to :action => "login"
       else
-        flash.now[:error] = t 'user.lost_password.notice email cannot find'
+        flash.now[:error] = t "user.lost_password.notice email cannot find"
       end
     end
   end
 
   def reset_password
-    @title = t 'user.reset_password.title'
+    @title = t "user.reset_password.title"
 
     if params[:token]
       token = UserToken.find_by_token(params[:token])
@@ -188,13 +188,13 @@ class UserController < ApplicationController
 
           if @user.save
             token.destroy
-            flash[:notice] = t 'user.reset_password.flash changed'
-            redirect_to :action => 'login'
+            flash[:notice] = t "user.reset_password.flash changed"
+            redirect_to :action => "login"
           end
         end
       else
-        flash[:error] = t 'user.reset_password.flash token bad'
-        redirect_to :action => 'lost_password'
+        flash[:error] = t "user.reset_password.flash token bad"
+        redirect_to :action => "lost_password"
       end
     else
       render :text => "", :status => :bad_request
@@ -202,7 +202,7 @@ class UserController < ApplicationController
   end
 
   def new
-    @title = t 'user.new.title'
+    @title = t "user.new.title"
     @referer = params[:referer] || session[:referer]
 
     if using_open_id?
@@ -216,10 +216,10 @@ class UserController < ApplicationController
       end
 
       if @user.openid_url.nil? || @user.invalid?
-        render :action => 'new'
+        render :action => "new"
       else
         session[:new_user] = @user
-        redirect_to :action => 'terms'
+        redirect_to :action => "terms"
       end
     elsif @user
       # The user is logged in already, so don't show them the signup
@@ -227,7 +227,7 @@ class UserController < ApplicationController
       if @referer
         redirect_to @referer
       else
-        redirect_to :controller => 'site', :action => 'index'
+        redirect_to :controller => "site", :action => "index"
       end
     elsif params.key?(:openid)
       @user = User.new(:email => params[:email],
@@ -235,7 +235,7 @@ class UserController < ApplicationController
                        :display_name => params[:nickname],
                        :openid_url => params[:openid])
 
-      flash.now[:notice] = t 'user.new.openid association'
+      flash.now[:notice] = t "user.new.openid association"
     else
       check_signup_allowed
     end
@@ -286,7 +286,7 @@ class UserController < ApplicationController
   end
 
   def logout
-    @title = t 'user.logout.title'
+    @title = t "user.logout.title"
 
     if params[:session] == request.session_options[:id]
       if session[:token]
@@ -299,7 +299,7 @@ class UserController < ApplicationController
       if params[:referer]
         redirect_to params[:referer]
       else
-        redirect_to :controller => 'site', :action => 'index'
+        redirect_to :controller => "site", :action => "index"
       end
     end
   end
@@ -308,11 +308,11 @@ class UserController < ApplicationController
     if request.post?
       token = UserToken.find_by_token(params[:confirm_string])
       if token && token.user.active?
-        flash[:error] = t('user.confirm.already active')
-        redirect_to :action => 'login'
+        flash[:error] = t("user.confirm.already active")
+        redirect_to :action => "login"
       elsif !token || token.expired?
-        flash[:error] = t('user.confirm.unknown token')
-        redirect_to :action => 'confirm'
+        flash[:error] = t("user.confirm.unknown token")
+        redirect_to :action => "confirm"
       else
         user = token.user
         user.status = "active"
@@ -329,7 +329,7 @@ class UserController < ApplicationController
         end
 
         if token.nil? || token.user != user
-          flash[:notice] = t('user.confirm.success')
+          flash[:notice] = t("user.confirm.success")
           redirect_to :action => :login, :referer => referer
         else
           token.destroy
@@ -349,12 +349,12 @@ class UserController < ApplicationController
   def confirm_resend
     if user = User.find_by_display_name(params[:display_name])
       Notifier.signup_confirm(user, user.tokens.create).deliver_now
-      flash[:notice] = t 'user.confirm_resend.success', :email => user.email
+      flash[:notice] = t "user.confirm_resend.success", :email => user.email
     else
-      flash[:notice] = t 'user.confirm_resend.failure', :name => params[:display_name]
+      flash[:notice] = t "user.confirm_resend.failure", :name => params[:display_name]
     end
 
-    redirect_to :action => 'login'
+    redirect_to :action => "login"
   end
 
   def confirm_email
@@ -366,16 +366,16 @@ class UserController < ApplicationController
         @user.new_email = nil
         @user.email_valid = true
         if @user.save
-          flash[:notice] = t 'user.confirm_email.success'
+          flash[:notice] = t "user.confirm_email.success"
         else
           flash[:errors] = @user.errors
         end
         token.destroy
         session[:user] = @user.id
-        redirect_to :action => 'account', :display_name => @user.display_name
+        redirect_to :action => "account", :display_name => @user.display_name
       else
-        flash[:error] = t 'user.confirm_email.failure'
-        redirect_to :action => 'account', :display_name => @user.display_name
+        flash[:error] = t "user.confirm_email.failure"
+        redirect_to :action => "account", :display_name => @user.display_name
       end
     end
   end
@@ -417,20 +417,20 @@ class UserController < ApplicationController
         friend.user_id = @user.id
         friend.friend_user_id = @new_friend.id
         if @user.is_friends_with?(@new_friend)
-          flash[:warning] = t 'user.make_friend.already_a_friend', :name => @new_friend.display_name
+          flash[:warning] = t "user.make_friend.already_a_friend", :name => @new_friend.display_name
         else
           if friend.save
-            flash[:notice] = t 'user.make_friend.success', :name => @new_friend.display_name
+            flash[:notice] = t "user.make_friend.success", :name => @new_friend.display_name
             Notifier.friend_notification(friend).deliver_now
           else
-            friend.add_error(t('user.make_friend.failed', :name => @new_friend.display_name))
+            friend.add_error(t("user.make_friend.failed", :name => @new_friend.display_name))
           end
         end
 
         if params[:referer]
           redirect_to params[:referer]
         else
-          redirect_to :controller => 'user', :action => 'view'
+          redirect_to :controller => "user", :action => "view"
         end
       end
     else
@@ -445,15 +445,15 @@ class UserController < ApplicationController
       if request.post?
         if @user.is_friends_with?(@friend)
           Friend.delete_all "user_id = #{@user.id} AND friend_user_id = #{@friend.id}"
-          flash[:notice] = t 'user.remove_friend.success', :name => @friend.display_name
+          flash[:notice] = t "user.remove_friend.success", :name => @friend.display_name
         else
-          flash[:error] = t 'user.remove_friend.not_a_friend', :name => @friend.display_name
+          flash[:error] = t "user.remove_friend.not_a_friend", :name => @friend.display_name
         end
 
         if params[:referer]
           redirect_to params[:referer]
         else
-          redirect_to :controller => 'user', :action => 'view'
+          redirect_to :controller => "user", :action => "view"
         end
       end
     else
@@ -466,14 +466,14 @@ class UserController < ApplicationController
   def set_status
     @this_user.status = params[:status]
     @this_user.save
-    redirect_to :controller => 'user', :action => 'view', :display_name => params[:display_name]
+    redirect_to :controller => "user", :action => "view", :display_name => params[:display_name]
   end
 
   ##
   # delete a user, marking them as deleted and removing personal data
   def delete
     @this_user.delete
-    redirect_to :controller => 'user', :action => 'view', :display_name => params[:display_name]
+    redirect_to :controller => "user", :action => "view", :display_name => params[:display_name]
   end
 
   ##
@@ -508,9 +508,9 @@ class UserController < ApplicationController
     elsif user = User.authenticate(:username => username, :password => password, :pending => true)
       unconfirmed_login(user)
     elsif User.authenticate(:username => username, :password => password, :suspended => true)
-      failed_login t('user.login.account is suspended', :webmaster => "mailto:webmaster@openstreetmap.org")
+      failed_login t("user.login.account is suspended", :webmaster => "mailto:webmaster@openstreetmap.org")
     else
-      failed_login t('user.login.auth failure')
+      failed_login t("user.login.auth failure")
     end
   end
 
@@ -541,9 +541,9 @@ class UserController < ApplicationController
           when "active", "confirmed" then
             successful_login(user)
           when "suspended" then
-            failed_login t('user.login.account is suspended', :webmaster => "mailto:webmaster@openstreetmap.org")
+            failed_login t("user.login.account is suspended", :webmaster => "mailto:webmaster@openstreetmap.org")
           else
-            failed_login t('user.login.auth failure')
+            failed_login t("user.login.auth failure")
           end
         else
           # Guard against not getting any extension data
@@ -557,14 +557,14 @@ class UserController < ApplicationController
           nickname = sreg["nickname"] || ax["http://axschema.org/namePerson/friendly"].first
           email = sreg["email"] || ax["http://axschema.org/contact/email"].first
 
-          redirect_to :controller => 'user', :action => 'new', :nickname => nickname, :email => email, :openid => identity_url
+          redirect_to :controller => "user", :action => "new", :nickname => nickname, :email => email, :openid => identity_url
         end
       elsif result.missing?
-        failed_login t('user.login.openid missing provider')
+        failed_login t("user.login.openid missing provider")
       elsif result.invalid?
-        failed_login t('user.login.openid invalid')
+        failed_login t("user.login.openid invalid")
       else
-        failed_login t('user.login.auth failure')
+        failed_login t("user.login.auth failure")
       end
     end
   end
@@ -595,11 +595,11 @@ class UserController < ApplicationController
         user.openid_url = identity_url
         yield user, verified_email
       elsif result.missing?
-        flash.now[:error] = t 'user.login.openid missing provider'
+        flash.now[:error] = t "user.login.openid missing provider"
       elsif result.invalid?
-        flash.now[:error] = t 'user.login.openid invalid'
+        flash.now[:error] = t "user.login.openid invalid"
       else
-        flash.now[:error] = t 'user.login.auth failure'
+        flash.now[:error] = t "user.login.auth failure"
       end
     end
   end
@@ -615,7 +615,7 @@ class UserController < ApplicationController
       # provider and, unlike yahoo.com, where it works automatically, Google
       # have hidden their OpenID endpoint somewhere obscure this making it
       # somewhat less user friendly.
-      return 'https://www.google.com/accounts/o8/id'
+      return "https://www.google.com/accounts/o8/id"
     else
       return openid_url
     end
@@ -660,7 +660,7 @@ class UserController < ApplicationController
   def failed_login(message)
     flash[:error] = message
 
-    redirect_to :action => 'login', :referer =>  session[:referer]
+    redirect_to :action => "login", :referer =>  session[:referer]
 
     session.delete(:remember_me)
     session.delete(:referer)
@@ -669,7 +669,7 @@ class UserController < ApplicationController
   ##
   #
   def unconfirmed_login(user)
-    redirect_to :action => 'confirm', :display_name => user.display_name
+    redirect_to :action => "confirm", :display_name => user.display_name
 
     session.delete(:remember_me)
     session.delete(:referer)
@@ -720,12 +720,12 @@ class UserController < ApplicationController
       set_locale
 
       if user.new_email.blank? || user.new_email == user.email
-        flash.now[:notice] = t 'user.account.flash update success'
+        flash.now[:notice] = t "user.account.flash update success"
       else
         user.email = user.new_email
 
         if user.valid?
-          flash.now[:notice] = t 'user.account.flash update success confirm needed'
+          flash.now[:notice] = t "user.account.flash update success confirm needed"
 
           begin
             Notifier.email_confirm(user, user.tokens.create).deliver_now
@@ -747,15 +747,15 @@ class UserController < ApplicationController
   # and return them to the user page.
   def require_administrator
     if @user && !@user.administrator?
-      flash[:error] = t('user.filter.not_an_administrator')
+      flash[:error] = t("user.filter.not_an_administrator")
 
       if params[:display_name]
-        redirect_to :controller => 'user', :action => 'view', :display_name => params[:display_name]
+        redirect_to :controller => "user", :action => "view", :display_name => params[:display_name]
       else
-        redirect_to :controller => 'user', :action => 'login', :referer => request.fullpath
+        redirect_to :controller => "user", :action => "login", :referer => request.fullpath
       end
     elsif !@user
-      redirect_to :controller => 'user', :action => 'login', :referer => request.fullpath
+      redirect_to :controller => "user", :action => "login", :referer => request.fullpath
     end
   end
 
@@ -778,7 +778,7 @@ class UserController < ApplicationController
   def lookup_user_by_name
     @this_user = User.find_by_display_name(params[:display_name])
   rescue ActiveRecord::RecordNotFound
-    redirect_to :controller => 'user', :action => 'view', :display_name => params[:display_name] unless @this_user
+    redirect_to :controller => "user", :action => "view", :display_name => params[:display_name] unless @this_user
   end
 
   ##
@@ -808,7 +808,7 @@ class UserController < ApplicationController
     if blocked = Acl.no_account_creation(request.remote_ip, domain)
       logger.info "Blocked signup from #{request.remote_ip} for #{email}"
 
-      render :action => 'blocked'
+      render :action => "blocked"
     end
 
     !blocked
index 6046396..78f310c 100644 (file)
@@ -13,7 +13,7 @@ class UserPreferenceController < ApplicationController
 
     prefs = @user.preferences
 
-    el1 = XML::Node.new 'preferences'
+    el1 = XML::Node.new "preferences"
 
     prefs.each do |pref|
       el1 <<  pref.to_xml_node
@@ -41,7 +41,7 @@ class UserPreferenceController < ApplicationController
 
     doc = XML::Parser.string(request.raw_post).parse
 
-    doc.find('//preferences/preference').each do |pt|
+    doc.find("//preferences/preference").each do |pt|
       if preference = old_preferences.delete(pt["k"])
         preference.v = pt["v"]
       elsif new_preferences.include?(pt["k"])
index 4316c5e..8b1c2e8 100644 (file)
@@ -1,5 +1,5 @@
 class UserRolesController < ApplicationController
-  layout 'site'
+  layout "site"
 
   before_filter :authorize_web
   before_filter :require_user
@@ -11,12 +11,12 @@ class UserRolesController < ApplicationController
 
   def grant
     @this_user.roles.create(:role => @role, :granter_id => @user.id)
-    redirect_to :controller => 'user', :action => 'view', :display_name => @this_user.display_name
+    redirect_to :controller => "user", :action => "view", :display_name => @this_user.display_name
   end
 
   def revoke
     UserRole.delete_all(:user_id => @this_user.id, :role => @role)
-    redirect_to :controller => 'user', :action => 'view', :display_name => @this_user.display_name
+    redirect_to :controller => "user", :action => "view", :display_name => @this_user.display_name
   end
 
   private
@@ -26,8 +26,8 @@ class UserRolesController < ApplicationController
   # and return them to theuser page.
   def require_administrator
     unless @user.administrator?
-      flash[:error] = t 'user_role.filter.not_an_administrator'
-      redirect_to :controller => 'user', :action => 'view', :display_name => @this_user.display_name
+      flash[:error] = t "user_role.filter.not_an_administrator"
+      redirect_to :controller => "user", :action => "view", :display_name => @this_user.display_name
     end
   end
 
@@ -37,8 +37,8 @@ class UserRolesController < ApplicationController
   def require_valid_role
     @role = params[:role]
     unless UserRole::ALL_ROLES.include?(@role)
-      flash[:error] = t('user_role.filter.not_a_role', :role => @role)
-      redirect_to :controller => 'user', :action => 'view', :display_name => @this_user.display_name
+      flash[:error] = t("user_role.filter.not_a_role", :role => @role)
+      redirect_to :controller => "user", :action => "view", :display_name => @this_user.display_name
     end
   end
 
@@ -46,8 +46,8 @@ class UserRolesController < ApplicationController
   # checks that the user doesn't already have this role
   def not_in_role
     if @this_user.has_role? @role
-      flash[:error] = t('user_role.filter.already_has_role', :role => @role)
-      redirect_to :controller => 'user', :action => 'view', :display_name => @this_user.display_name
+      flash[:error] = t("user_role.filter.already_has_role", :role => @role)
+      redirect_to :controller => "user", :action => "view", :display_name => @this_user.display_name
     end
   end
 
@@ -55,8 +55,8 @@ class UserRolesController < ApplicationController
   # checks that the user already has this role
   def in_role
     unless @this_user.has_role? @role
-      flash[:error] = t('user_role.filter.doesnt_have_role', :role => @role)
-      redirect_to :controller => 'user', :action => 'view', :display_name => @this_user.display_name
+      flash[:error] = t("user_role.filter.doesnt_have_role", :role => @role)
+      redirect_to :controller => "user", :action => "view", :display_name => @this_user.display_name
     end
   end
 end
index 0c83b5b..b13c91b 100644 (file)
@@ -1,5 +1,5 @@
 class WayController < ApplicationController
-  require 'xml/libxml'
+  require "xml/libxml"
 
   skip_before_filter :verify_authenticity_token
   before_filter :authorize, :only => [:create, :update, :delete]
@@ -84,11 +84,11 @@ class WayController < ApplicationController
   end
 
   def ways
-    unless params['ways']
+    unless params["ways"]
       fail OSM::APIBadUserInput.new("The parameter ways is required, and must be of the form ways=id[,id[,id...]]")
     end
 
-    ids = params['ways'].split(',').collect(&:to_i)
+    ids = params["ways"].split(",").collect(&:to_i)
 
     if ids.length == 0
       fail OSM::APIBadUserInput.new("No ways were given to search for")
index b4a0ad1..329aa25 100644 (file)
@@ -1,5 +1,5 @@
 module ApplicationHelper
-  require 'rexml/document'
+  require "rexml/document"
 
   def linkify(text)
     if text.html_safe?
index e9aa6e4..4027ddb 100644 (file)
@@ -5,9 +5,9 @@ module BrowseHelper
     else
       id = object.id
     end
-    name = t 'printable_name.with_id', :id => id.to_s
+    name = t "printable_name.with_id", :id => id.to_s
     if version
-      name = t 'printable_name.with_version', :id => name, :version => object.version.to_s
+      name = t "printable_name.with_version", :id => name, :version => object.version.to_s
     end
 
     # don't look at object tags if redacted, so as to avoid giving
@@ -20,9 +20,9 @@ module BrowseHelper
       end
 
       if object.tags.include? "name:#{locale}"
-        name = t 'printable_name.with_name_html', :name => content_tag(:bdi, object.tags["name:#{locale}"].to_s), :id => content_tag(:bdi, name)
-      elsif object.tags.include? 'name'
-        name = t 'printable_name.with_name_html', :name => content_tag(:bdi, object.tags['name'].to_s), :id => content_tag(:bdi, name)
+        name = t "printable_name.with_name_html", :name => content_tag(:bdi, object.tags["name:#{locale}"].to_s), :id => content_tag(:bdi, name)
+      elsif object.tags.include? "name"
+        name = t "printable_name.with_name_html", :name => content_tag(:bdi, object.tags["name"].to_s), :id => content_tag(:bdi, name)
       end
     end
 
@@ -46,13 +46,13 @@ module BrowseHelper
     if object.redacted?
       ""
     else
-      h(icon_tags(object).map { |k, v| k + '=' + v }.to_sentence)
+      h(icon_tags(object).map { |k, v| k + "=" + v }.to_sentence)
     end
   end
 
   def format_key(key)
     if url = wiki_link("key", key)
-      link_to h(key), url, :title => t('browse.tag_details.wiki_link.key', :key => key)
+      link_to h(key), url, :title => t("browse.tag_details.wiki_link.key", :key => key)
     else
       h(key)
     end
@@ -60,13 +60,13 @@ module BrowseHelper
 
   def format_value(key, value)
     if wp = wikipedia_link(key, value)
-      link_to h(wp[:title]), wp[:url], :title => t('browse.tag_details.wikipedia_link', :page => wp[:title])
+      link_to h(wp[:title]), wp[:url], :title => t("browse.tag_details.wikipedia_link", :page => wp[:title])
     elsif wdt = wikidata_link(key, value)
-      link_to h(wdt[:title]), wdt[:url], :title => t('browse.tag_details.wikidata_link', :page => wdt[:title])
+      link_to h(wdt[:title]), wdt[:url], :title => t("browse.tag_details.wikidata_link", :page => wdt[:title])
     elsif url = wiki_link("tag", "#{key}=#{value}")
-      link_to h(value), url, :title => t('browse.tag_details.wiki_link.tag', :key => key, :value => value)
+      link_to h(value), url, :title => t("browse.tag_details.wiki_link.tag", :key => key, :value => value)
     elsif url = telephone_link(key, value)
-      link_to h(value), url, :title => t('browse.tag_details.telephone_link', :phone_number => value)
+      link_to h(value), url, :title => t("browse.tag_details.telephone_link", :phone_number => value)
     else
       linkify h(value)
     end
@@ -123,7 +123,7 @@ module BrowseHelper
         lang  = $1
       else
         # Value is <title> so default to English Wikipedia
-        lang = 'en'
+        lang = "en"
       end
     elsif key =~ /^wikipedia:(\S+)$/
       # Language is in the key, so assume value is the title
@@ -164,7 +164,7 @@ module BrowseHelper
 
     # remove all whitespace instead of encoding it http://tools.ietf.org/html/rfc3966#section-5.1.1
     # "+1 (234) 567-8901 " -> "+1(234)567-8901"
-    value_no_whitespace = value.gsub(/\s+/, '')
+    value_no_whitespace = value.gsub(/\s+/, "")
 
     "tel:#{value_no_whitespace}"
   end
index cae1335..c314129 100644 (file)
@@ -3,7 +3,7 @@ module ChangesetHelper
     if changeset.user.data_public?
       link_to(changeset.user.display_name, user_path(changeset.user.display_name))
     else
-      t('browse.anonymous')
+      t("browse.anonymous")
     end
   end
 
index f066310..d8dc8c5 100644 (file)
@@ -11,7 +11,7 @@ module GeocoderHelper
     end
 
     result.each do |key, value|
-      html_options[:data][key.to_s.tr('_', '-')] = value
+      html_options[:data][key.to_s.tr("_", "-")] = value
     end
 
     html = ""
index a1a2125..b446282 100644 (file)
@@ -1,4 +1,4 @@
-require 'htmlentities'
+require "htmlentities"
 
 module TitleHelper
   @@coder = HTMLEntities.new
@@ -6,10 +6,10 @@ module TitleHelper
   def set_title(title = false)
     if title
       @title = @@coder.decode(title.gsub("<bdi>", "\u202a").gsub("</bdi>", "\u202c"))
-      response.headers["X-Page-Title"] = t('layouts.project_name.title') + ' | ' + @title
+      response.headers["X-Page-Title"] = t("layouts.project_name.title") + " | " + @title
     else
       @title = title
-      response.headers["X-Page-Title"] = t('layouts.project_name.title')
+      response.headers["X-Page-Title"] = t("layouts.project_name.title")
     end
   end
 end
index f645d36..b6d4a9a 100644 (file)
@@ -5,16 +5,16 @@ module UserBlocksHelper
   def block_status(block)
     if block.active?
       if block.needs_view?
-        I18n.t('user_block.helper.until_login')
+        I18n.t("user_block.helper.until_login")
       else
-        I18n.t('user_block.helper.time_future', :time => distance_of_time_in_words_to_now(block.ends_at))
+        I18n.t("user_block.helper.time_future", :time => distance_of_time_in_words_to_now(block.ends_at))
       end
     else
       # the max of the last update time or the ends_at time is when this block finished
       # either because the user viewed the block (updated_at) or it expired or was
       # revoked (ends_at)
       last_time = [block.ends_at, block.updated_at].max
-      I18n.t('user_block.helper.time_past', :time => distance_of_time_in_words_to_now(last_time))
+      I18n.t("user_block.helper.time_past", :time => distance_of_time_in_words_to_now(last_time))
     end
   end
 end
index 5197830..a3d5980 100644 (file)
@@ -45,7 +45,7 @@ module UserHelper
   # OpenID support
 
   def openid_logo
-    image_tag "openid_small.png", :alt => t('user.login.openid_logo_alt'), :class => "openid_logo"
+    image_tag "openid_small.png", :alt => t("user.login.openid_logo_alt"), :class => "openid_logo"
   end
 
   def openid_button(name, url)
index 89aaa26..11a0981 100644 (file)
@@ -1,5 +1,5 @@
 class Changeset < ActiveRecord::Base
-  require 'xml/libxml'
+  require "xml/libxml"
 
   belongs_to :user, :counter_cache => true
 
@@ -13,7 +13,7 @@ class Changeset < ActiveRecord::Base
   has_many :old_relations
 
   has_many :comments, -> { where(:visible => true).order(:created_at) }, :class_name => "ChangesetComment"
-  has_and_belongs_to_many :subscribers, :class_name => 'User', :join_table => 'changesets_subscribers', :association_foreign_key => 'subscriber_id'
+  has_and_belongs_to_many :subscribers, :class_name => "User", :join_table => "changesets_subscribers", :association_foreign_key => "subscriber_id"
 
   validates_presence_of :id, :on => :update
   validates_presence_of :user_id, :created_at, :closed_at, :num_changes
@@ -57,7 +57,7 @@ class Changeset < ActiveRecord::Base
     p = XML::Parser.string(xml, :options => XML::Parser::Options::NOERROR)
     doc = p.parse
 
-    doc.find('//osm/changeset').each do |pt|
+    doc.find("//osm/changeset").each do |pt|
       return Changeset.from_xml_node(pt, create)
     end
     fail OSM::APIBadXMLError.new("changeset", xml, "XML doesn't contain an osm/changeset element.")
@@ -76,10 +76,10 @@ class Changeset < ActiveRecord::Base
       cs.num_changes = 0
     end
 
-    pt.find('tag').each do |tag|
-      fail OSM::APIBadXMLError.new("changeset", pt, "tag is missing key") if tag['k'].nil?
-      fail OSM::APIBadXMLError.new("changeset", pt, "tag is missing value") if tag['v'].nil?
-      cs.add_tag_keyval(tag['k'], tag['v'])
+    pt.find("tag").each do |tag|
+      fail OSM::APIBadXMLError.new("changeset", pt, "tag is missing key") if tag["k"].nil?
+      fail OSM::APIBadXMLError.new("changeset", pt, "tag is missing value") if tag["v"].nil?
+      cs.add_tag_keyval(tag["k"], tag["v"])
     end
 
     cs
@@ -183,8 +183,8 @@ class Changeset < ActiveRecord::Base
   end
 
   def to_xml_node(user_display_name_cache = nil, include_discussion = false)
-    el1 = XML::Node.new 'changeset'
-    el1['id'] = id.to_s
+    el1 = XML::Node.new "changeset"
+    el1["id"] = id.to_s
 
     user_display_name_cache = {} if user_display_name_cache.nil?
 
@@ -196,32 +196,32 @@ class Changeset < ActiveRecord::Base
       user_display_name_cache[user_id] = nil
     end
 
-    el1['user'] = user_display_name_cache[user_id] unless user_display_name_cache[user_id].nil?
-    el1['uid'] = user_id.to_s if user.data_public?
+    el1["user"] = user_display_name_cache[user_id] unless user_display_name_cache[user_id].nil?
+    el1["uid"] = user_id.to_s if user.data_public?
 
     tags.each do |k, v|
-      el2 = XML::Node.new('tag')
-      el2['k'] = k.to_s
-      el2['v'] = v.to_s
+      el2 = XML::Node.new("tag")
+      el2["k"] = k.to_s
+      el2["v"] = v.to_s
       el1 << el2
     end
 
-    el1['created_at'] = created_at.xmlschema
-    el1['closed_at'] = closed_at.xmlschema unless is_open?
-    el1['open'] = is_open?.to_s
+    el1["created_at"] = created_at.xmlschema
+    el1["closed_at"] = closed_at.xmlschema unless is_open?
+    el1["open"] = is_open?.to_s
 
-    bbox.to_unscaled.add_bounds_to(el1, '_') if bbox.complete?
+    bbox.to_unscaled.add_bounds_to(el1, "_") if bbox.complete?
 
-    el1['comments_count'] = comments.count.to_s
+    el1["comments_count"] = comments.count.to_s
 
     if include_discussion
-      el2 = XML::Node.new('discussion')
+      el2 = XML::Node.new("discussion")
       comments.includes(:author).each do |comment|
-        el3 = XML::Node.new('comment')
-        el3['date'] = comment.created_at.xmlschema
-        el3['uid'] = comment.author.id.to_s if comment.author.data_public?
-        el3['user'] = comment.author.display_name.to_s if comment.author.data_public?
-        el4 = XML::Node.new('text')
+        el3 = XML::Node.new("comment")
+        el3["date"] = comment.created_at.xmlschema
+        el3["uid"] = comment.author.id.to_s if comment.author.data_public?
+        el3["user"] = comment.author.display_name.to_s if comment.author.data_public?
+        el4 = XML::Node.new("text")
         el4.content = comment.body.to_s
         el3 << el4
         el2 << el3
index 34856f8..84f5b97 100644 (file)
@@ -1,4 +1,4 @@
-require 'oauth'
+require "oauth"
 
 class ClientApplication < ActiveRecord::Base
   belongs_to :user
index a66eb59..fa3c4c8 100644 (file)
@@ -1,6 +1,6 @@
 class DiaryEntry < ActiveRecord::Base
   belongs_to :user, :counter_cache => true
-  belongs_to :language, :foreign_key => 'language_code'
+  belongs_to :language, :foreign_key => "language_code"
 
   has_many :comments, -> { order(:id).preload(:user) }, :class_name => "DiaryComment"
   has_many :visible_comments, -> { joins(:user).where(:visible => true, :users => { :status => %w(active confirmed) }).order(:id) }, :class_name => "DiaryComment"
index 8ccb00a..bb31c82 100644 (file)
@@ -1,7 +1,7 @@
 class Language < ActiveRecord::Base
   self.primary_key = "code"
 
-  has_many :diary_entries, :foreign_key => 'language'
+  has_many :diary_entries, :foreign_key => "language"
 
   def self.load(file)
     Language.transaction do
index 65c2d29..10b6bda 100644 (file)
@@ -1,4 +1,4 @@
-require 'validators'
+require "validators"
 
 class Message < ActiveRecord::Base
   belongs_to :sender, :class_name => "User", :foreign_key => :from_user_id
index 19210b8..1b81cc8 100644 (file)
@@ -1,5 +1,5 @@
 class Node < ActiveRecord::Base
-  require 'xml/libxml'
+  require "xml/libxml"
 
   include GeoRecord
   include ConsistencyValidations
@@ -45,7 +45,7 @@ class Node < ActiveRecord::Base
     p = XML::Parser.string(xml)
     doc = p.parse
 
-    doc.find('//osm/node').each do |pt|
+    doc.find("//osm/node").each do |pt|
       return Node.from_xml_node(pt, create)
     end
     fail OSM::APIBadXMLError.new("node", xml, "XML doesn't contain an osm/node element.")
@@ -56,22 +56,22 @@ class Node < ActiveRecord::Base
   def self.from_xml_node(pt, create = false)
     node = Node.new
 
-    fail OSM::APIBadXMLError.new("node", pt, "lat missing") if pt['lat'].nil?
-    fail OSM::APIBadXMLError.new("node", pt, "lon missing") if pt['lon'].nil?
-    node.lat = OSM.parse_float(pt['lat'], OSM::APIBadXMLError, "node", pt, "lat not a number")
-    node.lon = OSM.parse_float(pt['lon'], OSM::APIBadXMLError, "node", pt, "lon not a number")
-    fail OSM::APIBadXMLError.new("node", pt, "Changeset id is missing") if pt['changeset'].nil?
-    node.changeset_id = pt['changeset'].to_i
+    fail OSM::APIBadXMLError.new("node", pt, "lat missing") if pt["lat"].nil?
+    fail OSM::APIBadXMLError.new("node", pt, "lon missing") if pt["lon"].nil?
+    node.lat = OSM.parse_float(pt["lat"], OSM::APIBadXMLError, "node", pt, "lat not a number")
+    node.lon = OSM.parse_float(pt["lon"], OSM::APIBadXMLError, "node", pt, "lon not a number")
+    fail OSM::APIBadXMLError.new("node", pt, "Changeset id is missing") if pt["changeset"].nil?
+    node.changeset_id = pt["changeset"].to_i
 
     fail OSM::APIBadUserInput.new("The node is outside this world") unless node.in_world?
 
     # version must be present unless creating
-    fail OSM::APIBadXMLError.new("node", pt, "Version is required when updating") unless create || !pt['version'].nil?
-    node.version = create ? 0 : pt['version'].to_i
+    fail OSM::APIBadXMLError.new("node", pt, "Version is required when updating") unless create || !pt["version"].nil?
+    node.version = create ? 0 : pt["version"].to_i
 
     unless create
-      fail OSM::APIBadXMLError.new("node", pt, "ID is required when updating.") if pt['id'].nil?
-      node.id = pt['id'].to_i
+      fail OSM::APIBadXMLError.new("node", pt, "ID is required when updating.") if pt["id"].nil?
+      node.id = pt["id"].to_i
       # .to_i will return 0 if there is no number that can be parsed.
       # We want to make sure that there is no id with zero anyway
       fail OSM::APIBadUserInput.new("ID of node cannot be zero when updating.") if node.id == 0
@@ -86,10 +86,10 @@ class Node < ActiveRecord::Base
     node.tags = {}
 
     # Add in any tags from the XML
-    pt.find('tag').each do |tag|
-      fail OSM::APIBadXMLError.new("node", pt, "tag is missing key") if tag['k'].nil?
-      fail OSM::APIBadXMLError.new("node", pt, "tag is missing value") if tag['v'].nil?
-      node.add_tag_key_val(tag['k'], tag['v'])
+    pt.find("tag").each do |tag|
+      fail OSM::APIBadXMLError.new("node", pt, "tag is missing key") if tag["k"].nil?
+      fail OSM::APIBadXMLError.new("node", pt, "tag is missing value") if tag["v"].nil?
+      node.add_tag_key_val(tag["k"], tag["v"])
     end
 
     node
@@ -172,14 +172,14 @@ class Node < ActiveRecord::Base
   end
 
   def to_xml_node(changeset_cache = {}, user_display_name_cache = {})
-    el = XML::Node.new 'node'
-    el['id'] = id.to_s
+    el = XML::Node.new "node"
+    el["id"] = id.to_s
 
     add_metadata_to_xml_node(el, self, changeset_cache, user_display_name_cache)
 
     if self.visible?
-      el['lat'] = lat.to_s
-      el['lon'] = lon.to_s
+      el["lat"] = lat.to_s
+      el["lon"] = lon.to_s
     end
 
     add_tags_to_xml_node(el, node_tags)
index be7b8d1..bc018cb 100644 (file)
@@ -12,7 +12,7 @@ class Notifier < ActionMailer::Base
                      :confirm_string => token.token)
 
       mail :to => user.email,
-           :subject => I18n.t('notifier.signup_confirm.subject')
+           :subject => I18n.t("notifier.signup_confirm.subject")
     end
   end
 
@@ -24,7 +24,7 @@ class Notifier < ActionMailer::Base
                      :confirm_string => token.token)
 
       mail :to => user.new_email,
-           :subject => I18n.t('notifier.email_confirm.subject')
+           :subject => I18n.t("notifier.email_confirm.subject")
     end
   end
 
@@ -35,7 +35,7 @@ class Notifier < ActionMailer::Base
                      :token => token.token)
 
       mail :to => user.email,
-           :subject => I18n.t('notifier.lost_password.subject')
+           :subject => I18n.t("notifier.lost_password.subject")
     end
   end
 
@@ -48,7 +48,7 @@ class Notifier < ActionMailer::Base
       @possible_points = possible_points
 
       mail :to => trace.user.email,
-           :subject => I18n.t('notifier.gpx_notification.success.subject')
+           :subject => I18n.t("notifier.gpx_notification.success.subject")
     end
   end
 
@@ -60,7 +60,7 @@ class Notifier < ActionMailer::Base
       @error = error
 
       mail :to => trace.user.email,
-           :subject => I18n.t('notifier.gpx_notification.failure.subject')
+           :subject => I18n.t("notifier.gpx_notification.failure.subject")
     end
   end
 
@@ -79,7 +79,7 @@ class Notifier < ActionMailer::Base
 
       mail :from => from_address(message.sender.display_name, "m", message.id, message.digest),
            :to => message.recipient.email,
-           :subject => I18n.t('notifier.message_notification.subject_header', :subject => message.title)
+           :subject => I18n.t("notifier.message_notification.subject_header", :subject => message.title)
     end
   end
 
@@ -109,7 +109,7 @@ class Notifier < ActionMailer::Base
 
       mail :from => from_address(comment.user.display_name, "c", comment.id, comment.digest),
            :to =>  comment.diary_entry.user.email,
-           :subject => I18n.t('notifier.diary_comment_notification.subject', :user => comment.user.display_name)
+           :subject => I18n.t("notifier.diary_comment_notification.subject", :user => comment.user.display_name)
     end
   end
 
@@ -118,7 +118,7 @@ class Notifier < ActionMailer::Base
       @friend = friend
 
       mail :to => friend.befriendee.email,
-           :subject => I18n.t('notifier.friend_notification.subject', :user => friend.befriender.display_name)
+           :subject => I18n.t("notifier.friend_notification.subject", :user => friend.befriender.display_name)
     end
   end
 
@@ -152,7 +152,7 @@ class Notifier < ActionMailer::Base
       @comment = comment.body
       @owner = recipient == comment.changeset.user
       @commenter = comment.author.display_name
-      @changeset_comment = comment.changeset.tags['comment'].presence
+      @changeset_comment = comment.changeset.tags["comment"].presence
       @time = comment.created_at
       @changeset_author = comment.changeset.user.display_name
 
index 6dd421a..1e67194 100644 (file)
@@ -2,7 +2,7 @@ class Oauth2Token < AccessToken
   attr_accessor :state
 
   def as_json(_options = {})
-    d = { :access_token => token, :token_type => 'bearer' }
+    d = { :access_token => token, :token_type => "bearer" }
     d[:expires_in] = expires_in if expires_at
     d
   end
index 00f46db..5b5739f 100644 (file)
@@ -20,7 +20,7 @@ class OldNode < ActiveRecord::Base
   belongs_to :redaction
   belongs_to :current_node, :class_name => "Node", :foreign_key => "node_id"
 
-  has_many :old_tags, :class_name => 'OldNodeTag', :foreign_key => [:node_id, :version]
+  has_many :old_tags, :class_name => "OldNodeTag", :foreign_key => [:node_id, :version]
 
   def validate_position
     errors.add(:base, "Node is not in the world") unless in_world?
@@ -46,14 +46,14 @@ class OldNode < ActiveRecord::Base
   end
 
   def to_xml_node(changeset_cache = {}, user_display_name_cache = {})
-    el = XML::Node.new 'node'
-    el['id'] = node_id.to_s
+    el = XML::Node.new "node"
+    el["id"] = node_id.to_s
 
     add_metadata_to_xml_node(el, self, changeset_cache, user_display_name_cache)
 
     if self.visible?
-      el['lat'] = lat.to_s
-      el['lon'] = lon.to_s
+      el["lat"] = lat.to_s
+      el["lon"] = lon.to_s
     end
 
     add_tags_to_xml_node(el, old_tags)
index 8e07277..deba6ec 100644 (file)
@@ -13,8 +13,8 @@ class OldRelation < ActiveRecord::Base
   belongs_to :redaction
   belongs_to :current_relation, :class_name => "Relation", :foreign_key => "relation_id"
 
-  has_many :old_members, -> { order(:sequence_id) }, :class_name => 'OldRelationMember', :foreign_key => [:relation_id, :version]
-  has_many :old_tags, :class_name => 'OldRelationTag', :foreign_key => [:relation_id, :version]
+  has_many :old_members, -> { order(:sequence_id) }, :class_name => "OldRelationMember", :foreign_key => [:relation_id, :version]
+  has_many :old_tags, :class_name => "OldRelationTag", :foreign_key => [:relation_id, :version]
 
   validates_associated :changeset
 
@@ -73,16 +73,16 @@ class OldRelation < ActiveRecord::Base
   end
 
   def to_xml_node(changeset_cache = {}, user_display_name_cache = {})
-    el = XML::Node.new 'relation'
-    el['id'] = relation_id.to_s
+    el = XML::Node.new "relation"
+    el["id"] = relation_id.to_s
 
     add_metadata_to_xml_node(el, self, changeset_cache, user_display_name_cache)
 
     old_members.each do |member|
-      member_el = XML::Node.new 'member'
-      member_el['type'] = member.member_type.to_s.downcase
-      member_el['ref'] = member.member_id.to_s # "id" is considered uncool here as it should be unique in XML
-      member_el['role'] = member.member_role.to_s
+      member_el = XML::Node.new "member"
+      member_el["type"] = member.member_type.to_s.downcase
+      member_el["ref"] = member.member_id.to_s # "id" is considered uncool here as it should be unique in XML
+      member_el["role"] = member.member_role.to_s
       el << member_el
     end
 
index 3447cf6..92fe19f 100644 (file)
@@ -13,8 +13,8 @@ class OldWay < ActiveRecord::Base
   belongs_to :redaction
   belongs_to :current_way, :class_name => "Way", :foreign_key => "way_id"
 
-  has_many :old_nodes, :class_name => 'OldWayNode', :foreign_key => [:way_id, :version]
-  has_many :old_tags, :class_name => 'OldWayTag', :foreign_key => [:way_id, :version]
+  has_many :old_nodes, :class_name => "OldWayNode", :foreign_key => [:way_id, :version]
+  has_many :old_tags, :class_name => "OldWayTag", :foreign_key => [:way_id, :version]
 
   validates_associated :changeset
 
@@ -65,14 +65,14 @@ class OldWay < ActiveRecord::Base
   attr_writer :tags
 
   def to_xml_node(changeset_cache = {}, user_display_name_cache = {})
-    el = XML::Node.new 'way'
-    el['id'] = way_id.to_s
+    el = XML::Node.new "way"
+    el["id"] = way_id.to_s
 
     add_metadata_to_xml_node(el, self, changeset_cache, user_display_name_cache)
 
     old_nodes.each do |nd| # FIXME need to make sure they come back in the right order
-      node_el = XML::Node.new 'nd'
-      node_el['ref'] = nd.node_id.to_s
+      node_el = XML::Node.new "nd"
+      node_el["ref"] = nd.node_id.to_s
       el << node_el
     end
 
@@ -98,7 +98,7 @@ class OldWay < ActiveRecord::Base
   def get_nodes_revert(timestamp)
     points = []
     nds.each do |n|
-      oldnode = OldNode.where('node_id = ? AND timestamp <= ?', n, timestamp).unredacted.order("timestamp DESC").first
+      oldnode = OldNode.where("node_id = ? AND timestamp <= ?", n, timestamp).unredacted.order("timestamp DESC").first
       curnode = Node.find(n)
       id = n
       reuse = curnode.visible
index 39c1ad8..120fe47 100644 (file)
@@ -1,5 +1,5 @@
 class Relation < ActiveRecord::Base
-  require 'xml/libxml'
+  require "xml/libxml"
 
   include ConsistencyValidations
   include NotRedactable
@@ -37,7 +37,7 @@ class Relation < ActiveRecord::Base
     p = XML::Parser.string(xml)
     doc = p.parse
 
-    doc.find('//osm/relation').each do |pt|
+    doc.find("//osm/relation").each do |pt|
       return Relation.from_xml_node(pt, create)
     end
     fail OSM::APIBadXMLError.new("node", xml, "XML doesn't contain an osm/relation element.")
@@ -48,14 +48,14 @@ class Relation < ActiveRecord::Base
   def self.from_xml_node(pt, create = false)
     relation = Relation.new
 
-    fail OSM::APIBadXMLError.new("relation", pt, "Version is required when updating") unless create || !pt['version'].nil?
-    relation.version = pt['version']
-    fail OSM::APIBadXMLError.new("relation", pt, "Changeset id is missing") if pt['changeset'].nil?
-    relation.changeset_id = pt['changeset']
+    fail OSM::APIBadXMLError.new("relation", pt, "Version is required when updating") unless create || !pt["version"].nil?
+    relation.version = pt["version"]
+    fail OSM::APIBadXMLError.new("relation", pt, "Changeset id is missing") if pt["changeset"].nil?
+    relation.changeset_id = pt["changeset"]
 
     unless create
-      fail OSM::APIBadXMLError.new("relation", pt, "ID is required when updating") if pt['id'].nil?
-      relation.id = pt['id'].to_i
+      fail OSM::APIBadXMLError.new("relation", pt, "ID is required when updating") if pt["id"].nil?
+      relation.id = pt["id"].to_i
       # .to_i will return 0 if there is no number that can be parsed.
       # We want to make sure that there is no id with zero anyway
       fail OSM::APIBadUserInput.new("ID of relation cannot be zero when updating.") if relation.id == 0
@@ -70,10 +70,10 @@ class Relation < ActiveRecord::Base
     relation.tags = {}
 
     # Add in any tags from the XML
-    pt.find('tag').each do |tag|
-      fail OSM::APIBadXMLError.new("relation", pt, "tag is missing key") if tag['k'].nil?
-      fail OSM::APIBadXMLError.new("relation", pt, "tag is missing value") if tag['v'].nil?
-      relation.add_tag_keyval(tag['k'], tag['v'])
+    pt.find("tag").each do |tag|
+      fail OSM::APIBadXMLError.new("relation", pt, "tag is missing key") if tag["k"].nil?
+      fail OSM::APIBadXMLError.new("relation", pt, "tag is missing value") if tag["v"].nil?
+      relation.add_tag_keyval(tag["k"], tag["v"])
     end
 
     # need to initialise the relation members array explicitly, as if this
@@ -82,16 +82,16 @@ class Relation < ActiveRecord::Base
     # empty, as intended.
     relation.members = []
 
-    pt.find('member').each do |member|
+    pt.find("member").each do |member|
       # member_type =
       logger.debug "each member"
-      fail OSM::APIBadXMLError.new("relation", pt, "The #{member['type']} is not allowed only, #{TYPES.inspect} allowed") unless TYPES.include? member['type']
+      fail OSM::APIBadXMLError.new("relation", pt, "The #{member['type']} is not allowed only, #{TYPES.inspect} allowed") unless TYPES.include? member["type"]
       logger.debug "after raise"
       # member_ref = member['ref']
       # member_role
-      member['role'] ||= "" # Allow  the upload to not include this, in which case we default to an empty string.
-      logger.debug member['role']
-      relation.add_member(member['type'].classify, member['ref'], member['role'])
+      member["role"] ||= "" # Allow  the upload to not include this, in which case we default to an empty string.
+      logger.debug member["role"]
+      relation.add_member(member["type"].classify, member["ref"], member["role"])
     end
     fail OSM::APIBadUserInput.new("Some bad xml in relation") if relation.nil?
 
@@ -105,8 +105,8 @@ class Relation < ActiveRecord::Base
   end
 
   def to_xml_node(visible_members = nil, changeset_cache = {}, user_display_name_cache = {})
-    el = XML::Node.new 'relation'
-    el['id'] = id.to_s
+    el = XML::Node.new "relation"
+    el["id"] = id.to_s
 
     add_metadata_to_xml_node(el, self, changeset_cache, user_display_name_cache)
 
@@ -123,10 +123,10 @@ class Relation < ActiveRecord::Base
 
       next unless p
 
-      member_el = XML::Node.new 'member'
-      member_el['type'] = member.member_type.downcase
-      member_el['ref'] = member.member_id.to_s
-      member_el['role'] = member.member_role
+      member_el = XML::Node.new "member"
+      member_el["type"] = member.member_type.downcase
+      member_el["ref"] = member.member_id.to_s
+      member_el["role"] = member.member_role
       el << member_el
     end
 
index 0d55375..02f1683 100644 (file)
@@ -35,7 +35,7 @@ class RequestToken < OauthToken
   end
 
   def oob?
-    callback_url.nil? || callback_url.downcase == 'oob'
+    callback_url.nil? || callback_url.downcase == "oob"
   end
 
   def oauth10?
index d8cc604..1a93529 100644 (file)
@@ -2,8 +2,8 @@ class Trace < ActiveRecord::Base
   self.table_name = "gpx_files"
 
   belongs_to :user, :counter_cache => true
-  has_many :tags, :class_name => 'Tracetag', :foreign_key => 'gpx_id', :dependent => :delete_all
-  has_many :points, :class_name => 'Tracepoint', :foreign_key => 'gpx_id', :dependent => :delete_all
+  has_many :tags, :class_name => "Tracetag", :foreign_key => "gpx_id", :dependent => :delete_all
+  has_many :points, :class_name => "Tracepoint", :foreign_key => "gpx_id", :dependent => :delete_all
 
   scope :visible, -> { where(:visible => true) }
   scope :visible_to, ->(u) { visible.where("visibility IN ('public', 'identifiable') OR user_id = ?", u) }
@@ -30,7 +30,7 @@ class Trace < ActiveRecord::Base
   end
 
   def tagstring=(s)
-    if s.include? ','
+    if s.include? ","
       self.tags = s.split(/\s*,\s*/).select { |tag| tag !~ /^\s*$/ }.collect {|tag|
         tt = Tracetag.new
         tt.tag = tag
@@ -151,22 +151,22 @@ class Trace < ActiveRecord::Base
   end
 
   def to_xml_node
-    el1 = XML::Node.new 'gpx_file'
-    el1['id'] = id.to_s
-    el1['name'] = name.to_s
-    el1['lat'] = latitude.to_s if inserted
-    el1['lon'] = longitude.to_s if inserted
-    el1['user'] = user.display_name
-    el1['visibility'] = visibility
-    el1['pending'] = (!inserted).to_s
-    el1['timestamp'] = timestamp.xmlschema
-
-    el2 = XML::Node.new 'description'
+    el1 = XML::Node.new "gpx_file"
+    el1["id"] = id.to_s
+    el1["name"] = name.to_s
+    el1["lat"] = latitude.to_s if inserted
+    el1["lon"] = longitude.to_s if inserted
+    el1["user"] = user.display_name
+    el1["visibility"] = visibility
+    el1["pending"] = (!inserted).to_s
+    el1["timestamp"] = timestamp.xmlschema
+
+    el2 = XML::Node.new "description"
     el2 << description
     el1 << el2
 
     tags.each do |tag|
-      el2 = XML::Node.new('tag')
+      el2 = XML::Node.new("tag")
       el2 << tag.tag
       el1 << el2
     end
@@ -179,7 +179,7 @@ class Trace < ActiveRecord::Base
     p = XML::Parser.string(xml)
     doc = p.parse
 
-    doc.find('//osm/gpx_file').each do |pt|
+    doc.find("//osm/gpx_file").each do |pt|
       return Trace.from_xml_node(pt, create)
     end
 
@@ -191,12 +191,12 @@ class Trace < ActiveRecord::Base
   def self.from_xml_node(pt, create = false)
     trace = Trace.new
 
-    fail OSM::APIBadXMLError.new("trace", pt, "visibility missing") if pt['visibility'].nil?
-    trace.visibility = pt['visibility']
+    fail OSM::APIBadXMLError.new("trace", pt, "visibility missing") if pt["visibility"].nil?
+    trace.visibility = pt["visibility"]
 
     unless create
-      fail OSM::APIBadXMLError.new("trace", pt, "ID is required when updating.") if pt['id'].nil?
-      trace.id = pt['id'].to_i
+      fail OSM::APIBadXMLError.new("trace", pt, "ID is required when updating.") if pt["id"].nil?
+      trace.id = pt["id"].to_i
       # .to_i will return 0 if there is no number that can be parsed.
       # We want to make sure that there is no id with zero anyway
       fail OSM::APIBadUserInput.new("ID of trace cannot be zero when updating.") if trace.id == 0
@@ -207,11 +207,11 @@ class Trace < ActiveRecord::Base
     # and set manually before the actual delete
     trace.visible = true
 
-    description = pt.find('description').first
+    description = pt.find("description").first
     fail OSM::APIBadXMLError.new("trace", pt, "description missing") if description.nil?
     trace.description = description.content
 
-    pt.find('tag').each do |tag|
+    pt.find("tag").each do |tag|
       trace.tags.build(:tag => tag.content)
     end
 
index 8797028..398a849 100644 (file)
@@ -9,12 +9,12 @@ class Tracepoint < ActiveRecord::Base
   validates_associated :trace
   validates_presence_of :timestamp
 
-  belongs_to :trace, :foreign_key => 'gpx_id'
+  belongs_to :trace, :foreign_key => "gpx_id"
 
   def to_xml_node(print_timestamp = false)
-    el1 = XML::Node.new 'trkpt'
-    el1['lat'] = lat.to_s
-    el1['lon'] = lon.to_s
+    el1 = XML::Node.new "trkpt"
+    el1["lat"] = lat.to_s
+    el1["lon"] = lon.to_s
     el1 << (XML::Node.new("time") << timestamp.xmlschema) if print_timestamp
     el1
   end
index 00f195e..2614e59 100644 (file)
@@ -4,5 +4,5 @@ class Tracetag < ActiveRecord::Base
   validates_format_of :tag, :with => /\A[^\/;.,?]*\z/
   validates_length_of :tag, :within => 1..255
 
-  belongs_to :trace, :foreign_key => 'gpx_id'
+  belongs_to :trace, :foreign_key => "gpx_id"
 end
index 132f0de..e6a11b6 100644 (file)
@@ -1,5 +1,5 @@
 class User < ActiveRecord::Base
-  require 'xml/libxml'
+  require "xml/libxml"
 
   has_many :traces, -> { where(:visible => true) }
   has_many :diary_entries, -> { order(:created_at => :desc) }
@@ -13,7 +13,7 @@ class User < ActiveRecord::Base
   has_many :preferences, :class_name => "UserPreference"
   has_many :changesets, -> { order(:created_at => :desc) }
   has_many :changeset_comments, :foreign_key =>  :author_id
-  has_and_belongs_to_many :changeset_subscriptions, :class_name => 'Changeset', :join_table => 'changesets_subscribers', :foreign_key => 'subscriber_id'
+  has_and_belongs_to_many :changeset_subscriptions, :class_name => "Changeset", :join_table => "changesets_subscribers", :foreign_key => "subscriber_id"
   has_many :note_comments, :foreign_key => :author_id
   has_many :notes, :through => :note_comments
 
@@ -100,14 +100,14 @@ class User < ActiveRecord::Base
   end
 
   def to_xml_node
-    el1 = XML::Node.new 'user'
-    el1['display_name'] = display_name.to_s
-    el1['account_created'] = creation_time.xmlschema
+    el1 = XML::Node.new "user"
+    el1["display_name"] = display_name.to_s
+    el1["account_created"] = creation_time.xmlschema
     if home_lat && home_lon
-      home = XML::Node.new 'home'
-      home['lat'] = home_lat.to_s
-      home['lon'] = home_lon.to_s
-      home['zoom'] = home_zoom.to_s
+      home = XML::Node.new "home"
+      home["lat"] = home_lat.to_s
+      home["lon"] = home_lon.to_s
+      home["zoom"] = home_zoom.to_s
       el1 << home
     end
     el1
@@ -167,13 +167,13 @@ class User < ActiveRecord::Base
   ##
   # returns true if the user has the moderator role, false otherwise
   def moderator?
-    has_role? 'moderator'
+    has_role? "moderator"
   end
 
   ##
   # returns true if the user has the administrator role, false otherwise
   def administrator?
-    has_role? 'administrator'
+    has_role? "administrator"
   end
 
   ##
index 6ebdeee..3759afd 100644 (file)
@@ -44,7 +44,7 @@ class UserBlock < ActiveRecord::Base
   # block. this should be caught and dealt with in the controller,
   # but i've also included it here just in case.
   def moderator_permissions
-    errors.add(:base, I18n.t('user_block.model.non_moderator_update')) if creator_id_changed? && !creator.moderator?
-    errors.add(:base, I18n.t('user_block.model.non_moderator_revoke')) unless revoker_id.nil? || revoker.moderator?
+    errors.add(:base, I18n.t("user_block.model.non_moderator_update")) if creator_id_changed? && !creator.moderator?
+    errors.add(:base, I18n.t("user_block.model.non_moderator_revoke")) unless revoker_id.nil? || revoker.moderator?
   end
 end
index 969a368..0533cca 100644 (file)
@@ -8,9 +8,9 @@ class UserPreference < ActiveRecord::Base
 
   # Turn this Node in to an XML Node without the <osm> wrapper.
   def to_xml_node
-    el1 = XML::Node.new 'preference'
-    el1['k'] = k
-    el1['v'] = v
+    el1 = XML::Node.new "preference"
+    el1["k"] = k
+    el1["v"] = v
 
     el1
   end
index 2d42705..9b1765d 100644 (file)
@@ -1,5 +1,5 @@
 class Way < ActiveRecord::Base
-  require 'xml/libxml'
+  require "xml/libxml"
 
   include ConsistencyValidations
   include NotRedactable
@@ -35,7 +35,7 @@ class Way < ActiveRecord::Base
     p = XML::Parser.string(xml)
     doc = p.parse
 
-    doc.find('//osm/way').each do |pt|
+    doc.find("//osm/way").each do |pt|
       return Way.from_xml_node(pt, create)
     end
     fail OSM::APIBadXMLError.new("node", xml, "XML doesn't contain an osm/way element.")
@@ -46,14 +46,14 @@ class Way < ActiveRecord::Base
   def self.from_xml_node(pt, create = false)
     way = Way.new
 
-    fail OSM::APIBadXMLError.new("way", pt, "Version is required when updating") unless create || !pt['version'].nil?
-    way.version = pt['version']
-    fail OSM::APIBadXMLError.new("way", pt, "Changeset id is missing") if pt['changeset'].nil?
-    way.changeset_id = pt['changeset']
+    fail OSM::APIBadXMLError.new("way", pt, "Version is required when updating") unless create || !pt["version"].nil?
+    way.version = pt["version"]
+    fail OSM::APIBadXMLError.new("way", pt, "Changeset id is missing") if pt["changeset"].nil?
+    way.changeset_id = pt["changeset"]
 
     unless create
-      fail OSM::APIBadXMLError.new("way", pt, "ID is required when updating") if pt['id'].nil?
-      way.id = pt['id'].to_i
+      fail OSM::APIBadXMLError.new("way", pt, "ID is required when updating") if pt["id"].nil?
+      way.id = pt["id"].to_i
       # .to_i will return 0 if there is no number that can be parsed.
       # We want to make sure that there is no id with zero anyway
       fail OSM::APIBadUserInput.new("ID of way cannot be zero when updating.") if way.id == 0
@@ -68,14 +68,14 @@ class Way < ActiveRecord::Base
     way.tags = {}
 
     # Add in any tags from the XML
-    pt.find('tag').each do |tag|
-      fail OSM::APIBadXMLError.new("way", pt, "tag is missing key") if tag['k'].nil?
-      fail OSM::APIBadXMLError.new("way", pt, "tag is missing value") if tag['v'].nil?
-      way.add_tag_keyval(tag['k'], tag['v'])
+    pt.find("tag").each do |tag|
+      fail OSM::APIBadXMLError.new("way", pt, "tag is missing key") if tag["k"].nil?
+      fail OSM::APIBadXMLError.new("way", pt, "tag is missing value") if tag["v"].nil?
+      way.add_tag_keyval(tag["k"], tag["v"])
     end
 
-    pt.find('nd').each do |nd|
-      way.add_nd_num(nd['ref'])
+    pt.find("nd").each do |nd|
+      way.add_nd_num(nd["ref"])
     end
 
     way
@@ -99,8 +99,8 @@ class Way < ActiveRecord::Base
   end
 
   def to_xml_node(visible_nodes = nil, changeset_cache = {}, user_display_name_cache = {})
-    el = XML::Node.new 'way'
-    el['id'] = id.to_s
+    el = XML::Node.new "way"
+    el["id"] = id.to_s
 
     add_metadata_to_xml_node(el, self, changeset_cache, user_display_name_cache)
 
@@ -121,10 +121,10 @@ class Way < ActiveRecord::Base
     end
 
     ordered_nodes.each do |nd_id|
-      next unless nd_id && nd_id != '0'
+      next unless nd_id && nd_id != "0"
 
-      node_el = XML::Node.new 'nd'
-      node_el['ref'] = nd_id
+      node_el = XML::Node.new "nd"
+      node_el["ref"] = nd_id
       el << node_el
     end
 
index 12d777c..8ba628c 100644 (file)
@@ -1,6 +1,6 @@
-require File.expand_path('../boot', __FILE__)
+require File.expand_path("../boot", __FILE__)
 
-require File.expand_path('../preinitializer', __FILE__)
+require File.expand_path("../preinitializer", __FILE__)
 
 if STATUS == :database_offline
   require "action_controller/railtie"
@@ -9,7 +9,7 @@ if STATUS == :database_offline
   require "sprockets/railtie"
   require "rails/test_unit/railtie"
 else
-  require 'rails/all'
+  require "rails/all"
 end
 
 # Require the gems listed in Gemfile, including any gems
index 6b750f0..fb24cf2 100644 (file)
@@ -1,3 +1,3 @@
-ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
+ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile", __FILE__)
 
-require 'bundler/setup' # Set up gems listed in the Gemfile.
+require "bundler/setup" # Set up gems listed in the Gemfile.
index ee8d90d..1711985 100644 (file)
@@ -1,5 +1,5 @@
 # Load the Rails application.
-require File.expand_path('../application', __FILE__)
+require File.expand_path("../application", __FILE__)
 
 # Initialize the Rails application.
 Rails.application.initialize!
index 3c6c21c..707202c 100644 (file)
@@ -22,7 +22,7 @@ OpenStreetMap::Application.configure do
 
   # Disable serving static files from the `/public` folder by default since
   # Apache or NGINX already handles this.
-  config.serve_static_files = ENV['RAILS_SERVE_STATIC_FILES'].present?
+  config.serve_static_files = ENV["RAILS_SERVE_STATIC_FILES"].present?
 
   # Compress JavaScripts and CSS.
   config.assets.js_compressor = :uglifier
index 3c8b554..06bda18 100644 (file)
@@ -14,7 +14,7 @@ OpenStreetMap::Application.configure do
 
   # Configure static file server for tests with Cache-Control for performance.
   config.serve_static_files   = true
-  config.static_cache_control = 'public, max-age=3600'
+  config.static_cache_control = "public, max-age=3600"
 
   # Show full error reports and disable caching.
   config.consider_all_requests_local       = true
index 6a42c6d..6b27bb6 100644 (file)
@@ -1,7 +1,7 @@
 # Configure ActionMailer SMTP settings
 ActionMailer::Base.smtp_settings = {
-  :address => 'localhost',
+  :address => "localhost",
   :port => 25,
-  :domain => 'localhost',
+  :domain => "localhost",
   :enable_starttls_auto => false
 }
index 21d9312..ffc2839 100644 (file)
@@ -1,7 +1,7 @@
 # Be sure to restart your server when you modify this file.
 
 # Version of your assets, change this if you want to expire all your assets.
-Rails.application.config.assets.version = '1.0'
+Rails.application.config.assets.version = "1.0"
 
 # Add additional assets to the asset load path
 # Rails.application.config.assets.paths << Emoji.images_path
index 96e7f64..d87993a 100644 (file)
@@ -21,8 +21,8 @@
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #++
 
-require 'classic_pagination/pagination'
-require 'classic_pagination/pagination_helper'
+require "classic_pagination/pagination"
+require "classic_pagination/pagination_helper"
 
 ActionController::Base.class_eval do
   include ActionController::Pagination
index 1a8ce10..320c1db 100644 (file)
@@ -7,8 +7,8 @@ module OpenStreetMap
   class Cors < Rack::Cors
     def call(env)
       status, headers, body = super env
-      if headers['Access-Control-Allow-Origin']
-        headers['Cache-Control'] = 'no-cache'
+      if headers["Access-Control-Allow-Origin"]
+        headers["Cache-Control"] = "no-cache"
       end
       [status, headers, body]
     end
index 6ddacda..3ccd1d3 100644 (file)
@@ -2,7 +2,7 @@ ActionView::Base.field_error_proc = proc do |html_tag, _instance|
   class_attr_index = html_tag.index 'class="'
 
   if class_attr_index
-    html_tag.insert class_attr_index + 7, 'field_with_errors '
+    html_tag.insert class_attr_index + 7, "field_with_errors "
   else
     html_tag.insert html_tag.index(/\/?>/), ' class="field_with_errors"'
   end
index 2924efa..f97b19a 100644 (file)
@@ -1,5 +1,5 @@
 Konacha.configure do |config|
-  require 'capybara/poltergeist'
+  require "capybara/poltergeist"
   config.spec_dir = "test/javascripts"
   config.driver   = :poltergeist
 end if defined?(Konacha)
index fa9685d..437a00c 100644 (file)
@@ -1,4 +1,4 @@
-require 'oauth/rack/oauth_filter'
+require "oauth/rack/oauth_filter"
 
 Rails.configuration.middleware.use OAuth::Rack::OAuthFilter
 
index 5a42e2a..ab24631 100644 (file)
@@ -1 +1 @@
-require 'output_compression/output_compression'
+require "output_compression/output_compression"
index 1140412..bad88e1 100644 (file)
@@ -1,5 +1,5 @@
 class R2Template < Tilt::Template
-  self.default_mime_type = 'text/css'
+  self.default_mime_type = "text/css"
 
   def self.engine_initialized?
     defined? ::R2
index 7ae94fe..c7be138 100644 (file)
@@ -1,5 +1,5 @@
 Sanitize::Config::OSM = Sanitize::Config::RELAXED.dup
 
 Sanitize::Config::OSM[:elements] -= %w(div style)
-Sanitize::Config::OSM[:add_attributes] = { 'a' => { 'rel' => 'nofollow' } }
+Sanitize::Config::OSM[:add_attributes] = { "a" => { "rel" => "nofollow" } }
 Sanitize::Config::OSM[:remove_contents] = %w(script style)
index 97886ab..0f9e899 100644 (file)
@@ -3,5 +3,5 @@
 if defined?(MEMCACHE_SERVERS)
   Rails.application.config.session_store :mem_cache_store, :memcache_server => MEMCACHE_SERVERS, :namespace => "rails:session", :key => "_osm_session"
 else
-  Rails.application.config.session_store :cache_store, :key => '_osm_session'
+  Rails.application.config.session_store :cache_store, :key => "_osm_session"
 end
index 34a9a38..de8367e 100644 (file)
@@ -1,9 +1,9 @@
-require 'yaml'
+require "yaml"
 
 if defined?(Rake.application) && Rake.application.top_level_tasks.grep(/^(default$|test(:|$))/).any?
   env = "test"
 else
-  env = ENV['RAILS_ENV'] || 'development'
+  env = ENV["RAILS_ENV"] || "development"
 end
 
 config = YAML.load_file(File.expand_path(env == "test" ? "../example.application.yml" : "../application.yml", __FILE__))
index dc24e30..c9563f8 100644 (file)
 OpenStreetMap::Application.routes.draw do
   # API
-  match 'api/capabilities' => 'api#capabilities', :via => :get
-  match 'api/0.6/capabilities' => 'api#capabilities', :via => :get
-  match 'api/0.6/permissions' => 'api#permissions', :via => :get
-
-  match 'api/0.6/changeset/create' => 'changeset#create', :via => :put
-  match 'api/0.6/changeset/:id/upload' => 'changeset#upload', :via => :post, :id => /\d+/
-  match 'api/0.6/changeset/:id/download' => 'changeset#download', :via => :get, :as => :changeset_download, :id => /\d+/
-  match 'api/0.6/changeset/:id/expand_bbox' => 'changeset#expand_bbox', :via => :post, :id => /\d+/
-  match 'api/0.6/changeset/:id' => 'changeset#read', :via => :get, :as => :changeset_read, :id => /\d+/
-  match 'api/0.6/changeset/:id/subscribe' => 'changeset#subscribe', :via => :post, :as => :changeset_subscribe, :id => /\d+/
-  match 'api/0.6/changeset/:id/unsubscribe' => 'changeset#unsubscribe', :via => :post, :as => :changeset_unsubscribe, :id => /\d+/
-  match 'api/0.6/changeset/:id' => 'changeset#update', :via => :put, :id => /\d+/
-  match 'api/0.6/changeset/:id/close' => 'changeset#close', :via => :put, :id => /\d+/
-  match 'api/0.6/changesets' => 'changeset#query', :via => :get
-  post 'api/0.6/changeset/:id/comment' => 'changeset#comment', :as => :changeset_comment, :id => /\d+/
-  post 'api/0.6/changeset/comment/:id/hide' => 'changeset#hide_comment', :as => :changeset_comment_hide, :id => /\d+/
-  post 'api/0.6/changeset/comment/:id/unhide' => 'changeset#unhide_comment', :as => :changeset_comment_unhide, :id => /\d+/
-
-  match 'api/0.6/node/create' => 'node#create', :via => :put
-  match 'api/0.6/node/:id/ways' => 'way#ways_for_node', :via => :get, :id => /\d+/
-  match 'api/0.6/node/:id/relations' => 'relation#relations_for_node', :via => :get, :id => /\d+/
-  match 'api/0.6/node/:id/history' => 'old_node#history', :via => :get, :id => /\d+/
-  match 'api/0.6/node/:id/:version/redact' => 'old_node#redact', :via => :post, :version => /\d+/, :id => /\d+/
-  match 'api/0.6/node/:id/:version' => 'old_node#version', :via => :get, :id => /\d+/, :version => /\d+/
-  match 'api/0.6/node/:id' => 'node#read', :via => :get, :id => /\d+/
-  match 'api/0.6/node/:id' => 'node#update', :via => :put, :id => /\d+/
-  match 'api/0.6/node/:id' => 'node#delete', :via => :delete, :id => /\d+/
-  match 'api/0.6/nodes' => 'node#nodes', :via => :get
-
-  match 'api/0.6/way/create' => 'way#create', :via => :put
-  match 'api/0.6/way/:id/history' => 'old_way#history', :via => :get, :id => /\d+/
-  match 'api/0.6/way/:id/full' => 'way#full', :via => :get, :id => /\d+/
-  match 'api/0.6/way/:id/relations' => 'relation#relations_for_way', :via => :get, :id => /\d+/
-  match 'api/0.6/way/:id/:version/redact' => 'old_way#redact', :via => :post, :version => /\d+/, :id => /\d+/
-  match 'api/0.6/way/:id/:version' => 'old_way#version', :via => :get, :id => /\d+/, :version => /\d+/
-  match 'api/0.6/way/:id' => 'way#read', :via => :get, :id => /\d+/
-  match 'api/0.6/way/:id' => 'way#update', :via => :put, :id => /\d+/
-  match 'api/0.6/way/:id' => 'way#delete', :via => :delete, :id => /\d+/
-  match 'api/0.6/ways' => 'way#ways', :via => :get
-
-  match 'api/0.6/relation/create' => 'relation#create', :via => :put
-  match 'api/0.6/relation/:id/relations' => 'relation#relations_for_relation', :via => :get, :id => /\d+/
-  match 'api/0.6/relation/:id/history' => 'old_relation#history', :via => :get, :id => /\d+/
-  match 'api/0.6/relation/:id/full' => 'relation#full', :via => :get, :id => /\d+/
-  match 'api/0.6/relation/:id/:version/redact' => 'old_relation#redact', :via => :post, :version => /\d+/, :id => /\d+/
-  match 'api/0.6/relation/:id/:version' => 'old_relation#version', :via => :get, :id => /\d+/, :version => /\d+/
-  match 'api/0.6/relation/:id' => 'relation#read', :via => :get, :id => /\d+/
-  match 'api/0.6/relation/:id' => 'relation#update', :via => :put, :id => /\d+/
-  match 'api/0.6/relation/:id' => 'relation#delete', :via => :delete, :id => /\d+/
-  match 'api/0.6/relations' => 'relation#relations', :via => :get
-
-  match 'api/0.6/map' => 'api#map', :via => :get
-
-  match 'api/0.6/trackpoints' => 'api#trackpoints', :via => :get
-
-  match 'api/0.6/changes' => 'api#changes', :via => :get
-
-  match 'api/0.6/search' => 'search#search_all', :via => :get
-  match 'api/0.6/ways/search' => 'search#search_ways', :via => :get
-  match 'api/0.6/relations/search' => 'search#search_relations', :via => :get
-  match 'api/0.6/nodes/search' => 'search#search_nodes', :via => :get
-
-  match 'api/0.6/user/:id' => 'user#api_read', :via => :get, :id => /\d+/
-  match 'api/0.6/user/details' => 'user#api_details', :via => :get
-  match 'api/0.6/user/gpx_files' => 'user#api_gpx_files', :via => :get
-
-  match 'api/0.6/user/preferences' => 'user_preference#read', :via => :get
-  match 'api/0.6/user/preferences/:preference_key' => 'user_preference#read_one', :via => :get
-  match 'api/0.6/user/preferences' => 'user_preference#update', :via => :put
-  match 'api/0.6/user/preferences/:preference_key' => 'user_preference#update_one', :via => :put
-  match 'api/0.6/user/preferences/:preference_key' => 'user_preference#delete_one', :via => :delete
-
-  match 'api/0.6/gpx/create' => 'trace#api_create', :via => :post
-  match 'api/0.6/gpx/:id' => 'trace#api_read', :via => :get, :id => /\d+/
-  match 'api/0.6/gpx/:id' => 'trace#api_update', :via => :put, :id => /\d+/
-  match 'api/0.6/gpx/:id' => 'trace#api_delete', :via => :delete, :id => /\d+/
-  match 'api/0.6/gpx/:id/details' => 'trace#api_read', :via => :get, :id => /\d+/
-  match 'api/0.6/gpx/:id/data' => 'trace#api_data', :via => :get
+  match "api/capabilities" => "api#capabilities", :via => :get
+  match "api/0.6/capabilities" => "api#capabilities", :via => :get
+  match "api/0.6/permissions" => "api#permissions", :via => :get
+
+  match "api/0.6/changeset/create" => "changeset#create", :via => :put
+  match "api/0.6/changeset/:id/upload" => "changeset#upload", :via => :post, :id => /\d+/
+  match "api/0.6/changeset/:id/download" => "changeset#download", :via => :get, :as => :changeset_download, :id => /\d+/
+  match "api/0.6/changeset/:id/expand_bbox" => "changeset#expand_bbox", :via => :post, :id => /\d+/
+  match "api/0.6/changeset/:id" => "changeset#read", :via => :get, :as => :changeset_read, :id => /\d+/
+  match "api/0.6/changeset/:id/subscribe" => "changeset#subscribe", :via => :post, :as => :changeset_subscribe, :id => /\d+/
+  match "api/0.6/changeset/:id/unsubscribe" => "changeset#unsubscribe", :via => :post, :as => :changeset_unsubscribe, :id => /\d+/
+  match "api/0.6/changeset/:id" => "changeset#update", :via => :put, :id => /\d+/
+  match "api/0.6/changeset/:id/close" => "changeset#close", :via => :put, :id => /\d+/
+  match "api/0.6/changesets" => "changeset#query", :via => :get
+  post "api/0.6/changeset/:id/comment" => "changeset#comment", :as => :changeset_comment, :id => /\d+/
+  post "api/0.6/changeset/comment/:id/hide" => "changeset#hide_comment", :as => :changeset_comment_hide, :id => /\d+/
+  post "api/0.6/changeset/comment/:id/unhide" => "changeset#unhide_comment", :as => :changeset_comment_unhide, :id => /\d+/
+
+  match "api/0.6/node/create" => "node#create", :via => :put
+  match "api/0.6/node/:id/ways" => "way#ways_for_node", :via => :get, :id => /\d+/
+  match "api/0.6/node/:id/relations" => "relation#relations_for_node", :via => :get, :id => /\d+/
+  match "api/0.6/node/:id/history" => "old_node#history", :via => :get, :id => /\d+/
+  match "api/0.6/node/:id/:version/redact" => "old_node#redact", :via => :post, :version => /\d+/, :id => /\d+/
+  match "api/0.6/node/:id/:version" => "old_node#version", :via => :get, :id => /\d+/, :version => /\d+/
+  match "api/0.6/node/:id" => "node#read", :via => :get, :id => /\d+/
+  match "api/0.6/node/:id" => "node#update", :via => :put, :id => /\d+/
+  match "api/0.6/node/:id" => "node#delete", :via => :delete, :id => /\d+/
+  match "api/0.6/nodes" => "node#nodes", :via => :get
+
+  match "api/0.6/way/create" => "way#create", :via => :put
+  match "api/0.6/way/:id/history" => "old_way#history", :via => :get, :id => /\d+/
+  match "api/0.6/way/:id/full" => "way#full", :via => :get, :id => /\d+/
+  match "api/0.6/way/:id/relations" => "relation#relations_for_way", :via => :get, :id => /\d+/
+  match "api/0.6/way/:id/:version/redact" => "old_way#redact", :via => :post, :version => /\d+/, :id => /\d+/
+  match "api/0.6/way/:id/:version" => "old_way#version", :via => :get, :id => /\d+/, :version => /\d+/
+  match "api/0.6/way/:id" => "way#read", :via => :get, :id => /\d+/
+  match "api/0.6/way/:id" => "way#update", :via => :put, :id => /\d+/
+  match "api/0.6/way/:id" => "way#delete", :via => :delete, :id => /\d+/
+  match "api/0.6/ways" => "way#ways", :via => :get
+
+  match "api/0.6/relation/create" => "relation#create", :via => :put
+  match "api/0.6/relation/:id/relations" => "relation#relations_for_relation", :via => :get, :id => /\d+/
+  match "api/0.6/relation/:id/history" => "old_relation#history", :via => :get, :id => /\d+/
+  match "api/0.6/relation/:id/full" => "relation#full", :via => :get, :id => /\d+/
+  match "api/0.6/relation/:id/:version/redact" => "old_relation#redact", :via => :post, :version => /\d+/, :id => /\d+/
+  match "api/0.6/relation/:id/:version" => "old_relation#version", :via => :get, :id => /\d+/, :version => /\d+/
+  match "api/0.6/relation/:id" => "relation#read", :via => :get, :id => /\d+/
+  match "api/0.6/relation/:id" => "relation#update", :via => :put, :id => /\d+/
+  match "api/0.6/relation/:id" => "relation#delete", :via => :delete, :id => /\d+/
+  match "api/0.6/relations" => "relation#relations", :via => :get
+
+  match "api/0.6/map" => "api#map", :via => :get
+
+  match "api/0.6/trackpoints" => "api#trackpoints", :via => :get
+
+  match "api/0.6/changes" => "api#changes", :via => :get
+
+  match "api/0.6/search" => "search#search_all", :via => :get
+  match "api/0.6/ways/search" => "search#search_ways", :via => :get
+  match "api/0.6/relations/search" => "search#search_relations", :via => :get
+  match "api/0.6/nodes/search" => "search#search_nodes", :via => :get
+
+  match "api/0.6/user/:id" => "user#api_read", :via => :get, :id => /\d+/
+  match "api/0.6/user/details" => "user#api_details", :via => :get
+  match "api/0.6/user/gpx_files" => "user#api_gpx_files", :via => :get
+
+  match "api/0.6/user/preferences" => "user_preference#read", :via => :get
+  match "api/0.6/user/preferences/:preference_key" => "user_preference#read_one", :via => :get
+  match "api/0.6/user/preferences" => "user_preference#update", :via => :put
+  match "api/0.6/user/preferences/:preference_key" => "user_preference#update_one", :via => :put
+  match "api/0.6/user/preferences/:preference_key" => "user_preference#delete_one", :via => :delete
+
+  match "api/0.6/gpx/create" => "trace#api_create", :via => :post
+  match "api/0.6/gpx/:id" => "trace#api_read", :via => :get, :id => /\d+/
+  match "api/0.6/gpx/:id" => "trace#api_update", :via => :put, :id => /\d+/
+  match "api/0.6/gpx/:id" => "trace#api_delete", :via => :delete, :id => /\d+/
+  match "api/0.6/gpx/:id/details" => "trace#api_read", :via => :get, :id => /\d+/
+  match "api/0.6/gpx/:id/data" => "trace#api_data", :via => :get
 
   # AMF (ActionScript) API
-  match 'api/0.6/amf/read' => 'amf#amf_read', :via => :post
-  match 'api/0.6/amf/write' => 'amf#amf_write', :via => :post
-  match 'api/0.6/swf/trackpoints' => 'swf#trackpoints', :via => :get
+  match "api/0.6/amf/read" => "amf#amf_read", :via => :post
+  match "api/0.6/amf/write" => "amf#amf_write", :via => :post
+  match "api/0.6/swf/trackpoints" => "swf#trackpoints", :via => :get
 
   # Map notes API
   scope "api/0.6" do
     resources :notes, :except => [:new, :edit, :update], :constraints => { :id => /\d+/ }, :defaults => { :format => "xml" } do
       collection do
-        get 'search'
-        get 'feed', :defaults => { :format => "rss" }
+        get "search"
+        get "feed", :defaults => { :format => "rss" }
       end
 
       member do
-        post 'comment'
-        post 'close'
-        post 'reopen'
+        post "comment"
+        post "close"
+        post "reopen"
       end
     end
 
-    match 'notes/addPOIexec' => 'notes#create', :via => :post
-    match 'notes/closePOIexec' => 'notes#close', :via => :post
-    match 'notes/editPOIexec' => 'notes#comment', :via => :post
-    match 'notes/getGPX' => 'notes#index', :via => :get, :format => "gpx"
-    match 'notes/getRSSfeed' => 'notes#feed', :via => :get, :format => "rss"
+    match "notes/addPOIexec" => "notes#create", :via => :post
+    match "notes/closePOIexec" => "notes#close", :via => :post
+    match "notes/editPOIexec" => "notes#comment", :via => :post
+    match "notes/getGPX" => "notes#index", :via => :get, :format => "gpx"
+    match "notes/getRSSfeed" => "notes#feed", :via => :get, :format => "rss"
   end
 
   # Data browsing
-  match '/way/:id' => 'browse#way', :via => :get, :id => /\d+/, :as => :way
-  match '/way/:id/history' => 'browse#way_history', :via => :get, :id => /\d+/
-  match '/node/:id' => 'browse#node', :via => :get, :id => /\d+/, :as => :node
-  match '/node/:id/history' => 'browse#node_history', :via => :get, :id => /\d+/
-  match '/relation/:id' => 'browse#relation', :via => :get, :id => /\d+/, :as => :relation
-  match '/relation/:id/history' => 'browse#relation_history', :via => :get, :id => /\d+/
-  match '/changeset/:id' => 'browse#changeset', :via => :get, :as => :changeset, :id => /\d+/
-  match '/changeset/:id/comments/feed' => 'changeset#comments_feed', :via => :get, :as => :changeset_comments_feed, :id => /\d*/, :defaults => { :format => 'rss' }
-  match '/note/:id' => 'browse#note', :via => :get, :id => /\d+/, :as => "browse_note"
-  match '/note/new' => 'browse#new_note', :via => :get
-  match '/user/:display_name/history' => 'changeset#list', :via => :get
-  match '/user/:display_name/history/feed' => 'changeset#feed', :via => :get, :defaults => { :format => :atom }
-  match '/user/:display_name/notes' => 'notes#mine', :via => :get
-  match '/history/friends' => 'changeset#list', :via => :get, :friends => true, :as => "friend_changesets"
-  match '/history/nearby' => 'changeset#list', :via => :get, :nearby => true, :as => "nearby_changesets"
-
-  get '/browse/way/:id',                :to => redirect(:path => '/way/%{id}')
-  get '/browse/way/:id/history',        :to => redirect(:path => '/way/%{id}/history')
-  get '/browse/node/:id',               :to => redirect(:path => '/node/%{id}')
-  get '/browse/node/:id/history',       :to => redirect(:path => '/node/%{id}/history')
-  get '/browse/relation/:id',           :to => redirect(:path => '/relation/%{id}')
-  get '/browse/relation/:id/history',   :to => redirect(:path => '/relation/%{id}/history')
-  get '/browse/changeset/:id',          :to => redirect(:path => '/changeset/%{id}')
-  get '/browse/note/:id',               :to => redirect(:path => '/note/%{id}')
-  get '/user/:display_name/edits',      :to => redirect(:path => '/user/%{display_name}/history')
-  get '/user/:display_name/edits/feed', :to => redirect(:path => '/user/%{display_name}/history/feed')
-  get '/browse/friends',                :to => redirect(:path => '/history/friends')
-  get '/browse/nearby',                 :to => redirect(:path => '/history/nearby')
-  get '/browse/changesets/feed',        :to => redirect(:path => '/history/feed')
-  get '/browse/changesets',             :to => redirect(:path => '/history')
-  get '/browse',                        :to => redirect(:path => '/history')
+  match "/way/:id" => "browse#way", :via => :get, :id => /\d+/, :as => :way
+  match "/way/:id/history" => "browse#way_history", :via => :get, :id => /\d+/
+  match "/node/:id" => "browse#node", :via => :get, :id => /\d+/, :as => :node
+  match "/node/:id/history" => "browse#node_history", :via => :get, :id => /\d+/
+  match "/relation/:id" => "browse#relation", :via => :get, :id => /\d+/, :as => :relation
+  match "/relation/:id/history" => "browse#relation_history", :via => :get, :id => /\d+/
+  match "/changeset/:id" => "browse#changeset", :via => :get, :as => :changeset, :id => /\d+/
+  match "/changeset/:id/comments/feed" => "changeset#comments_feed", :via => :get, :as => :changeset_comments_feed, :id => /\d*/, :defaults => { :format => "rss" }
+  match "/note/:id" => "browse#note", :via => :get, :id => /\d+/, :as => "browse_note"
+  match "/note/new" => "browse#new_note", :via => :get
+  match "/user/:display_name/history" => "changeset#list", :via => :get
+  match "/user/:display_name/history/feed" => "changeset#feed", :via => :get, :defaults => { :format => :atom }
+  match "/user/:display_name/notes" => "notes#mine", :via => :get
+  match "/history/friends" => "changeset#list", :via => :get, :friends => true, :as => "friend_changesets"
+  match "/history/nearby" => "changeset#list", :via => :get, :nearby => true, :as => "nearby_changesets"
+
+  get "/browse/way/:id",                :to => redirect(:path => "/way/%{id}")
+  get "/browse/way/:id/history",        :to => redirect(:path => "/way/%{id}/history")
+  get "/browse/node/:id",               :to => redirect(:path => "/node/%{id}")
+  get "/browse/node/:id/history",       :to => redirect(:path => "/node/%{id}/history")
+  get "/browse/relation/:id",           :to => redirect(:path => "/relation/%{id}")
+  get "/browse/relation/:id/history",   :to => redirect(:path => "/relation/%{id}/history")
+  get "/browse/changeset/:id",          :to => redirect(:path => "/changeset/%{id}")
+  get "/browse/note/:id",               :to => redirect(:path => "/note/%{id}")
+  get "/user/:display_name/edits",      :to => redirect(:path => "/user/%{display_name}/history")
+  get "/user/:display_name/edits/feed", :to => redirect(:path => "/user/%{display_name}/history/feed")
+  get "/browse/friends",                :to => redirect(:path => "/history/friends")
+  get "/browse/nearby",                 :to => redirect(:path => "/history/nearby")
+  get "/browse/changesets/feed",        :to => redirect(:path => "/history/feed")
+  get "/browse/changesets",             :to => redirect(:path => "/history")
+  get "/browse",                        :to => redirect(:path => "/history")
 
   # web site
-  root :to => 'site#index', :via => [:get, :post]
-  match '/edit' => 'site#edit', :via => :get, :as => :edit
-  match '/copyright/:copyright_locale' => 'site#copyright', :via => :get
-  match '/copyright' => 'site#copyright', :via => :get
-  match '/welcome' => 'site#welcome', :via => :get, :as => :welcome
-  match '/fixthemap' => 'site#fixthemap', :via => :get, :as => :fixthemap
-  match '/help' => 'site#help', :via => :get, :as => :help
-  match '/about' => 'site#about', :via => :get, :as => :about
-  match '/history' => 'changeset#list', :via => :get
-  match '/history/feed' => 'changeset#feed', :via => :get, :defaults => { :format => :atom }
-  match '/history/comments/feed' => 'changeset#comments_feed', :via => :get, :as => :changesets_comments_feed, :defaults => { :format => 'rss' }
-  match '/export' => 'site#export', :via => :get
-  match '/login' => 'user#login', :via => [:get, :post]
-  match '/logout' => 'user#logout', :via => [:get, :post]
-  match '/offline' => 'site#offline', :via => :get
-  match '/key' => 'site#key', :via => :get
-  match '/id' => 'site#id', :via => :get
-  match '/query' => 'browse#query', :via => :get
-  match '/user/new' => 'user#new', :via => :get
-  match '/user/new' => 'user#create', :via => :post
-  match '/user/terms' => 'user#terms', :via => :get
-  match '/user/save' => 'user#save', :via => :post
-  match '/user/:display_name/confirm/resend' => 'user#confirm_resend', :via => :get
-  match '/user/:display_name/confirm' => 'user#confirm', :via => [:get, :post]
-  match '/user/confirm' => 'user#confirm', :via => [:get, :post]
-  match '/user/confirm-email' => 'user#confirm_email', :via => [:get, :post]
-  match '/user/go_public' => 'user#go_public', :via => :post
-  match '/user/reset-password' => 'user#reset_password', :via => [:get, :post]
-  match '/user/forgot-password' => 'user#lost_password', :via => [:get, :post]
-  match '/user/suspended' => 'user#suspended', :via => :get
-
-  get '/index.html', :to => redirect(:path => "/")
-  get '/create-account.html', :to => redirect(:path => "/user/new")
-  get '/forgot-password.html', :to => redirect(:path => "/user/forgot-password")
+  root :to => "site#index", :via => [:get, :post]
+  match "/edit" => "site#edit", :via => :get, :as => :edit
+  match "/copyright/:copyright_locale" => "site#copyright", :via => :get
+  match "/copyright" => "site#copyright", :via => :get
+  match "/welcome" => "site#welcome", :via => :get, :as => :welcome
+  match "/fixthemap" => "site#fixthemap", :via => :get, :as => :fixthemap
+  match "/help" => "site#help", :via => :get, :as => :help
+  match "/about" => "site#about", :via => :get, :as => :about
+  match "/history" => "changeset#list", :via => :get
+  match "/history/feed" => "changeset#feed", :via => :get, :defaults => { :format => :atom }
+  match "/history/comments/feed" => "changeset#comments_feed", :via => :get, :as => :changesets_comments_feed, :defaults => { :format => "rss" }
+  match "/export" => "site#export", :via => :get
+  match "/login" => "user#login", :via => [:get, :post]
+  match "/logout" => "user#logout", :via => [:get, :post]
+  match "/offline" => "site#offline", :via => :get
+  match "/key" => "site#key", :via => :get
+  match "/id" => "site#id", :via => :get
+  match "/query" => "browse#query", :via => :get
+  match "/user/new" => "user#new", :via => :get
+  match "/user/new" => "user#create", :via => :post
+  match "/user/terms" => "user#terms", :via => :get
+  match "/user/save" => "user#save", :via => :post
+  match "/user/:display_name/confirm/resend" => "user#confirm_resend", :via => :get
+  match "/user/:display_name/confirm" => "user#confirm", :via => [:get, :post]
+  match "/user/confirm" => "user#confirm", :via => [:get, :post]
+  match "/user/confirm-email" => "user#confirm_email", :via => [:get, :post]
+  match "/user/go_public" => "user#go_public", :via => :post
+  match "/user/reset-password" => "user#reset_password", :via => [:get, :post]
+  match "/user/forgot-password" => "user#lost_password", :via => [:get, :post]
+  match "/user/suspended" => "user#suspended", :via => :get
+
+  get "/index.html", :to => redirect(:path => "/")
+  get "/create-account.html", :to => redirect(:path => "/user/new")
+  get "/forgot-password.html", :to => redirect(:path => "/user/forgot-password")
 
   # permalink
-  match '/go/:code' => 'site#permalink', :via => :get, :code => /[a-zA-Z0-9_@~]+[=-]*/
+  match "/go/:code" => "site#permalink", :via => :get, :code => /[a-zA-Z0-9_@~]+[=-]*/
 
   # rich text preview
-  match '/preview/:format' => 'site#preview', :via => :post, :as => :preview
+  match "/preview/:format" => "site#preview", :via => :post, :as => :preview
 
   # traces
-  match '/user/:display_name/traces/tag/:tag/page/:page' => 'trace#list', :via => :get
-  match '/user/:display_name/traces/tag/:tag' => 'trace#list', :via => :get
-  match '/user/:display_name/traces/page/:page' => 'trace#list', :via => :get
-  match '/user/:display_name/traces' => 'trace#list', :via => :get
-  match '/user/:display_name/traces/tag/:tag/rss' => 'trace#georss', :via => :get, :defaults => { :format => :rss }
-  match '/user/:display_name/traces/rss' => 'trace#georss', :via => :get, :defaults => { :format => :rss }
-  match '/user/:display_name/traces/:id' => 'trace#view', :via => :get
-  match '/user/:display_name/traces/:id/picture' => 'trace#picture', :via => :get
-  match '/user/:display_name/traces/:id/icon' => 'trace#icon', :via => :get
-  match '/traces/tag/:tag/page/:page' => 'trace#list', :via => :get
-  match '/traces/tag/:tag' => 'trace#list', :via => :get
-  match '/traces/page/:page' => 'trace#list', :via => :get
-  match '/traces' => 'trace#list', :via => :get
-  match '/traces/tag/:tag/rss' => 'trace#georss', :via => :get, :defaults => { :format => :rss }
-  match '/traces/rss' => 'trace#georss', :via => :get, :defaults => { :format => :rss }
-  match '/traces/mine/tag/:tag/page/:page' => 'trace#mine', :via => :get
-  match '/traces/mine/tag/:tag' => 'trace#mine', :via => :get
-  match '/traces/mine/page/:page' => 'trace#mine', :via => :get
-  match '/traces/mine' => 'trace#mine', :via => :get
-  match '/trace/create' => 'trace#create', :via => [:get, :post]
-  match '/trace/:id/data' => 'trace#data', :via => :get, :id => /\d+/, :as => "trace_data"
-  match '/trace/:id/edit' => 'trace#edit', :via => [:get, :post, :patch], :id => /\d+/, :as => "trace_edit"
-  match '/trace/:id/delete' => 'trace#delete', :via => :post, :id => /\d+/
+  match "/user/:display_name/traces/tag/:tag/page/:page" => "trace#list", :via => :get
+  match "/user/:display_name/traces/tag/:tag" => "trace#list", :via => :get
+  match "/user/:display_name/traces/page/:page" => "trace#list", :via => :get
+  match "/user/:display_name/traces" => "trace#list", :via => :get
+  match "/user/:display_name/traces/tag/:tag/rss" => "trace#georss", :via => :get, :defaults => { :format => :rss }
+  match "/user/:display_name/traces/rss" => "trace#georss", :via => :get, :defaults => { :format => :rss }
+  match "/user/:display_name/traces/:id" => "trace#view", :via => :get
+  match "/user/:display_name/traces/:id/picture" => "trace#picture", :via => :get
+  match "/user/:display_name/traces/:id/icon" => "trace#icon", :via => :get
+  match "/traces/tag/:tag/page/:page" => "trace#list", :via => :get
+  match "/traces/tag/:tag" => "trace#list", :via => :get
+  match "/traces/page/:page" => "trace#list", :via => :get
+  match "/traces" => "trace#list", :via => :get
+  match "/traces/tag/:tag/rss" => "trace#georss", :via => :get, :defaults => { :format => :rss }
+  match "/traces/rss" => "trace#georss", :via => :get, :defaults => { :format => :rss }
+  match "/traces/mine/tag/:tag/page/:page" => "trace#mine", :via => :get
+  match "/traces/mine/tag/:tag" => "trace#mine", :via => :get
+  match "/traces/mine/page/:page" => "trace#mine", :via => :get
+  match "/traces/mine" => "trace#mine", :via => :get
+  match "/trace/create" => "trace#create", :via => [:get, :post]
+  match "/trace/:id/data" => "trace#data", :via => :get, :id => /\d+/, :as => "trace_data"
+  match "/trace/:id/edit" => "trace#edit", :via => [:get, :post, :patch], :id => /\d+/, :as => "trace_edit"
+  match "/trace/:id/delete" => "trace#delete", :via => :post, :id => /\d+/
 
   # diary pages
-  match '/diary/new' => 'diary_entry#new', :via => [:get, :post]
-  match '/diary/friends' => 'diary_entry#list', :friends => true, :via => :get, :as => "friend_diaries"
-  match '/diary/nearby' => 'diary_entry#list', :nearby => true, :via => :get, :as => "nearby_diaries"
-  match '/user/:display_name/diary/rss' => 'diary_entry#rss', :via => :get, :defaults => { :format => :rss }
-  match '/diary/:language/rss' => 'diary_entry#rss', :via => :get, :defaults => { :format => :rss }
-  match '/diary/rss' => 'diary_entry#rss', :via => :get, :defaults => { :format => :rss }
-  match '/user/:display_name/diary/comments/:page' => 'diary_entry#comments', :via => :get, :page => /\d+/
-  match '/user/:display_name/diary/comments/' => 'diary_entry#comments', :via => :get
-  match '/user/:display_name/diary' => 'diary_entry#list', :via => :get
-  match '/diary/:language' => 'diary_entry#list', :via => :get
-  match '/diary' => 'diary_entry#list', :via => :get
-  match '/user/:display_name/diary/:id' => 'diary_entry#view', :via => :get, :id => /\d+/
-  match '/user/:display_name/diary/:id/newcomment' => 'diary_entry#comment', :via => :post, :id => /\d+/
-  match '/user/:display_name/diary/:id/edit' => 'diary_entry#edit', :via => [:get, :post], :id => /\d+/
-  match '/user/:display_name/diary/:id/hide' => 'diary_entry#hide', :via => :post, :id => /\d+/, :as => :hide_diary_entry
-  match '/user/:display_name/diary/:id/hidecomment/:comment' => 'diary_entry#hidecomment', :via => :post, :id => /\d+/, :comment => /\d+/, :as => :hide_diary_comment
+  match "/diary/new" => "diary_entry#new", :via => [:get, :post]
+  match "/diary/friends" => "diary_entry#list", :friends => true, :via => :get, :as => "friend_diaries"
+  match "/diary/nearby" => "diary_entry#list", :nearby => true, :via => :get, :as => "nearby_diaries"
+  match "/user/:display_name/diary/rss" => "diary_entry#rss", :via => :get, :defaults => { :format => :rss }
+  match "/diary/:language/rss" => "diary_entry#rss", :via => :get, :defaults => { :format => :rss }
+  match "/diary/rss" => "diary_entry#rss", :via => :get, :defaults => { :format => :rss }
+  match "/user/:display_name/diary/comments/:page" => "diary_entry#comments", :via => :get, :page => /\d+/
+  match "/user/:display_name/diary/comments/" => "diary_entry#comments", :via => :get
+  match "/user/:display_name/diary" => "diary_entry#list", :via => :get
+  match "/diary/:language" => "diary_entry#list", :via => :get
+  match "/diary" => "diary_entry#list", :via => :get
+  match "/user/:display_name/diary/:id" => "diary_entry#view", :via => :get, :id => /\d+/
+  match "/user/:display_name/diary/:id/newcomment" => "diary_entry#comment", :via => :post, :id => /\d+/
+  match "/user/:display_name/diary/:id/edit" => "diary_entry#edit", :via => [:get, :post], :id => /\d+/
+  match "/user/:display_name/diary/:id/hide" => "diary_entry#hide", :via => :post, :id => /\d+/, :as => :hide_diary_entry
+  match "/user/:display_name/diary/:id/hidecomment/:comment" => "diary_entry#hidecomment", :via => :post, :id => /\d+/, :comment => /\d+/, :as => :hide_diary_comment
 
   # user pages
-  match '/user/:display_name' => 'user#view', :via => :get, :as => "user"
-  match '/user/:display_name/make_friend' => 'user#make_friend', :via => [:get, :post], :as => "make_friend"
-  match '/user/:display_name/remove_friend' => 'user#remove_friend', :via => [:get, :post], :as => "remove_friend"
-  match '/user/:display_name/account' => 'user#account', :via => [:get, :post]
-  match '/user/:display_name/set_status' => 'user#set_status', :via => :get, :as => :set_status_user
-  match '/user/:display_name/delete' => 'user#delete', :via => :get, :as => :delete_user
+  match "/user/:display_name" => "user#view", :via => :get, :as => "user"
+  match "/user/:display_name/make_friend" => "user#make_friend", :via => [:get, :post], :as => "make_friend"
+  match "/user/:display_name/remove_friend" => "user#remove_friend", :via => [:get, :post], :as => "remove_friend"
+  match "/user/:display_name/account" => "user#account", :via => [:get, :post]
+  match "/user/:display_name/set_status" => "user#set_status", :via => :get, :as => :set_status_user
+  match "/user/:display_name/delete" => "user#delete", :via => :get, :as => :delete_user
 
   # user lists
-  match '/users' => 'user#list', :via => [:get, :post]
-  match '/users/:status' => 'user#list', :via => [:get, :post]
+  match "/users" => "user#list", :via => [:get, :post]
+  match "/users/:status" => "user#list", :via => [:get, :post]
 
   # geocoder
-  match '/search' => 'geocoder#search', :via => :get, :as => :search
-  match '/geocoder/search_latlon' => 'geocoder#search_latlon', :via => :get
-  match '/geocoder/search_us_postcode' => 'geocoder#search_us_postcode', :via => :get
-  match '/geocoder/search_uk_postcode' => 'geocoder#search_uk_postcode', :via => :get
-  match '/geocoder/search_ca_postcode' => 'geocoder#search_ca_postcode', :via => :get
-  match '/geocoder/search_osm_nominatim' => 'geocoder#search_osm_nominatim', :via => :get
-  match '/geocoder/search_geonames' => 'geocoder#search_geonames', :via => :get
-  match '/geocoder/search_osm_nominatim_reverse' => 'geocoder#search_osm_nominatim_reverse', :via => :get
-  match '/geocoder/search_geonames_reverse' => 'geocoder#search_geonames_reverse', :via => :get
+  match "/search" => "geocoder#search", :via => :get, :as => :search
+  match "/geocoder/search_latlon" => "geocoder#search_latlon", :via => :get
+  match "/geocoder/search_us_postcode" => "geocoder#search_us_postcode", :via => :get
+  match "/geocoder/search_uk_postcode" => "geocoder#search_uk_postcode", :via => :get
+  match "/geocoder/search_ca_postcode" => "geocoder#search_ca_postcode", :via => :get
+  match "/geocoder/search_osm_nominatim" => "geocoder#search_osm_nominatim", :via => :get
+  match "/geocoder/search_geonames" => "geocoder#search_geonames", :via => :get
+  match "/geocoder/search_osm_nominatim_reverse" => "geocoder#search_osm_nominatim_reverse", :via => :get
+  match "/geocoder/search_geonames_reverse" => "geocoder#search_geonames_reverse", :via => :get
 
   # directions
-  match '/directions' => 'directions#search', :via => :get, :as => :directions
+  match "/directions" => "directions#search", :via => :get, :as => :directions
 
   # export
-  match '/export/finish' => 'export#finish', :via => :post
-  match '/export/embed' => 'export#embed', :via => :get
+  match "/export/finish" => "export#finish", :via => :post
+  match "/export/embed" => "export#embed", :via => :get
 
   # messages
-  match '/user/:display_name/inbox' => 'message#inbox', :via => :get, :as => "inbox"
-  match '/user/:display_name/outbox' => 'message#outbox', :via => :get, :as => "outbox"
-  match '/message/new/:display_name' => 'message#new', :via => [:get, :post], :as => "new_message"
-  match '/message/read/:message_id' => 'message#read', :via => :get, :as => "read_message"
-  match '/message/mark/:message_id' => 'message#mark', :via => :post, :as => "mark_message"
-  match '/message/reply/:message_id' => 'message#reply', :via => [:get, :post], :as => "reply_message"
-  match '/message/delete/:message_id' => 'message#delete', :via => :post, :as => "delete_message"
+  match "/user/:display_name/inbox" => "message#inbox", :via => :get, :as => "inbox"
+  match "/user/:display_name/outbox" => "message#outbox", :via => :get, :as => "outbox"
+  match "/message/new/:display_name" => "message#new", :via => [:get, :post], :as => "new_message"
+  match "/message/read/:message_id" => "message#read", :via => :get, :as => "read_message"
+  match "/message/mark/:message_id" => "message#mark", :via => :post, :as => "mark_message"
+  match "/message/reply/:message_id" => "message#reply", :via => [:get, :post], :as => "reply_message"
+  match "/message/delete/:message_id" => "message#delete", :via => :post, :as => "delete_message"
 
   # oauth admin pages (i.e: for setting up new clients, etc...)
   scope "/user/:display_name" do
     resources :oauth_clients
   end
-  match '/oauth/revoke' => 'oauth#revoke', :via => [:get, :post]
-  match '/oauth/authorize' => 'oauth#authorize', :via => [:get, :post], :as => :authorize
-  match '/oauth/token' => 'oauth#token', :via => :get, :as => :token
-  match '/oauth/request_token' => 'oauth#request_token', :via => [:get, :post], :as => :request_token
-  match '/oauth/access_token' => 'oauth#access_token', :via => [:get, :post], :as => :access_token
-  match '/oauth/test_request' => 'oauth#test_request', :via => :get, :as => :test_request
+  match "/oauth/revoke" => "oauth#revoke", :via => [:get, :post]
+  match "/oauth/authorize" => "oauth#authorize", :via => [:get, :post], :as => :authorize
+  match "/oauth/token" => "oauth#token", :via => :get, :as => :token
+  match "/oauth/request_token" => "oauth#request_token", :via => [:get, :post], :as => :request_token
+  match "/oauth/access_token" => "oauth#access_token", :via => [:get, :post], :as => :access_token
+  match "/oauth/test_request" => "oauth#test_request", :via => :get, :as => :test_request
 
   # roles and banning pages
-  match '/user/:display_name/role/:role/grant' => 'user_roles#grant', :via => :post, :as => "grant_role"
-  match '/user/:display_name/role/:role/revoke' => 'user_roles#revoke', :via => :post, :as => "revoke_role"
-  match '/user/:display_name/blocks' => 'user_blocks#blocks_on', :via => :get
-  match '/user/:display_name/blocks_by' => 'user_blocks#blocks_by', :via => :get
-  match '/blocks/new/:display_name' => 'user_blocks#new', :via => :get, :as => "new_user_block"
+  match "/user/:display_name/role/:role/grant" => "user_roles#grant", :via => :post, :as => "grant_role"
+  match "/user/:display_name/role/:role/revoke" => "user_roles#revoke", :via => :post, :as => "revoke_role"
+  match "/user/:display_name/blocks" => "user_blocks#blocks_on", :via => :get
+  match "/user/:display_name/blocks_by" => "user_blocks#blocks_by", :via => :get
+  match "/blocks/new/:display_name" => "user_blocks#new", :via => :get, :as => "new_user_block"
   resources :user_blocks
-  match '/blocks/:id/revoke' => 'user_blocks#revoke', :via => [:get, :post], :as => "revoke_user_block"
+  match "/blocks/:id/revoke" => "user_blocks#revoke", :via => [:get, :post], :as => "revoke_user_block"
 
   # redactions
   resources :redactions
index 34cf27b..985997a 100644 (file)
@@ -1,4 +1,4 @@
-require 'migrate'
+require "migrate"
 
 class CreateOsmDb < ActiveRecord::Migration
   def self.up
index 2f6af1c..866b1ae 100644 (file)
@@ -1,4 +1,4 @@
-require 'migrate'
+require "migrate"
 
 class CleanupOsmDb < ActiveRecord::Migration
   def self.up
index 69ad969..9531ccc 100644 (file)
@@ -1,4 +1,4 @@
-require 'migrate'
+require "migrate"
 
 class SqlSessionStoreSetup < ActiveRecord::Migration
   def self.up
index 92f9962..4d53d03 100644 (file)
@@ -1,4 +1,4 @@
-require 'migrate'
+require "migrate"
 
 class UserEnhancements < ActiveRecord::Migration
   def self.up
index f260f23..f77d349 100644 (file)
@@ -1,4 +1,4 @@
-require 'migrate'
+require "migrate"
 
 class TileTracepoints < ActiveRecord::Migration
   def self.up
index 016ba04..fd9dbfb 100644 (file)
@@ -1,4 +1,4 @@
-require 'migrate'
+require "migrate"
 
 class TileNodes < ActiveRecord::Migration
   def self.upgrade_table(from_table, to_table, model)
index 064fd05..78270f1 100644 (file)
@@ -1,4 +1,4 @@
-require 'migrate'
+require "migrate"
 
 class AddRelations < ActiveRecord::Migration
   def self.up
index 2820f82..241a144 100644 (file)
@@ -1,4 +1,4 @@
-require 'migrate'
+require "migrate"
 
 class RemoveSegments < ActiveRecord::Migration
   def self.up
@@ -10,7 +10,7 @@ class RemoveSegments < ActiveRecord::Migration
       cmd = "db/migrate/008_remove_segments_helper"
       src = "#{cmd}.cc"
       if !File.exist?(cmd) || File.mtime(cmd) < File.mtime(src)
-        system('c++ -O3 -Wall `mysql_config --cflags --libs` ' +
+        system("c++ -O3 -Wall `mysql_config --cflags --libs` " +
           "#{src} -o #{cmd}") || fail
       end
 
index 2473bcb..4e95b19 100644 (file)
@@ -1,4 +1,4 @@
-require 'migrate'
+require "migrate"
 
 class DiaryComments < ActiveRecord::Migration
   def self.up
index 0db06f3..e5a524d 100644 (file)
@@ -1,4 +1,4 @@
-require 'migrate'
+require "migrate"
 
 class CreateAcls < ActiveRecord::Migration
   def self.up
index 6aa0bc4..d12ede3 100644 (file)
@@ -1,4 +1,4 @@
-require 'migrate'
+require "migrate"
 
 class PopulateNodeTagsAndRemove < ActiveRecord::Migration
   def self.up
@@ -10,7 +10,7 @@ class PopulateNodeTagsAndRemove < ActiveRecord::Migration
       cmd = "db/migrate/020_populate_node_tags_and_remove_helper"
       src = "#{cmd}.c"
       if !File.exist?(cmd) || File.mtime(cmd) < File.mtime(src)
-        system('cc -O3 -Wall `mysql_config --cflags --libs` ' +
+        system("cc -O3 -Wall `mysql_config --cflags --libs` " +
           "#{src} -o #{cmd}") || fail
       end
 
index 72a4607..57a69b5 100644 (file)
@@ -1,4 +1,4 @@
-require 'migrate'
+require "migrate"
 
 class MoveToInnodb < ActiveRecord::Migration
   @@conv_tables = %w(nodes ways way_tags way_nodes current_way_tags relation_members relations relation_tags current_relation_tags)
index 79706bc..aa4c496 100644 (file)
@@ -1,4 +1,4 @@
-require 'migrate'
+require "migrate"
 
 class KeyConstraints < ActiveRecord::Migration
   def self.up
index b544947..8bd9a93 100644 (file)
@@ -1,4 +1,4 @@
-require 'migrate'
+require "migrate"
 
 class AddChangesets < ActiveRecord::Migration
   @@conv_user_tables = %w(current_nodes current_relations current_ways nodes relations ways)
index 4914a8a..fbb276d 100644 (file)
@@ -1,4 +1,4 @@
-require 'migrate'
+require "migrate"
 
 class OrderRelationMembers < ActiveRecord::Migration
   def self.up
index 129315a..4255c6f 100644 (file)
@@ -1,4 +1,4 @@
-require 'migrate'
+require "migrate"
 
 class AddEndTimeToChangesets < ActiveRecord::Migration
   def self.up
index b7b1be9..b64c9ca 100644 (file)
@@ -1,4 +1,4 @@
-require 'migrate'
+require "migrate"
 
 class AddMoreChangesetIndexes < ActiveRecord::Migration
   def self.up
index 5d3532c..224d589 100644 (file)
@@ -1,4 +1,4 @@
-require 'migrate'
+require "migrate"
 
 class AddUserForeignKeys < ActiveRecord::Migration
   def change
index 2a68d42..54820aa 100644 (file)
@@ -1,4 +1,4 @@
-require 'migrate'
+require "migrate"
 
 class AddForeignKeys < ActiveRecord::Migration
   def self.up
index c0b4fb6..b146cba 100644 (file)
@@ -1,5 +1,5 @@
-require 'migrate'
-require 'rexml/document'
+require "migrate"
+require "rexml/document"
 
 class CreateCountries < ActiveRecord::Migration
   def self.up
index 8f5244f..05a70e7 100644 (file)
@@ -1,4 +1,4 @@
-require 'migrate'
+require "migrate"
 
 class CreateLanguages < ActiveRecord::Migration
   def change
index 117e1cd..cfdb657 100644 (file)
@@ -1,4 +1,4 @@
-require 'migrate'
+require "migrate"
 
 class ChangeUserLocale < ActiveRecord::Migration
   def self.up
index 5382324..c1e20ff 100644 (file)
@@ -1,4 +1,4 @@
-require 'migrate'
+require "migrate"
 
 class AddMoreControlsToGpxFiles < ActiveRecord::Migration
   def self.up
index abc4e9c..f8e3671 100644 (file)
@@ -1,4 +1,4 @@
-require 'migrate'
+require "migrate"
 
 class AddForeignKeysToOauthTables < ActiveRecord::Migration
   def change
index bd7ac41..b5e4394 100644 (file)
@@ -1,4 +1,4 @@
-require 'migrate'
+require "migrate"
 
 class CreateUserRoles < ActiveRecord::Migration
   def self.up
index e97822a..cdb36cd 100644 (file)
@@ -1,4 +1,4 @@
-require 'migrate'
+require "migrate"
 
 class CreateUserBlocks < ActiveRecord::Migration
   def change
index 864f0db..5957b13 100644 (file)
@@ -1,4 +1,4 @@
-require 'migrate'
+require "migrate"
 
 class AlterUserRolesAndBlocks < ActiveRecord::Migration
   def self.up
index dc8d581..f98cfd1 100644 (file)
@@ -1,4 +1,4 @@
-require 'migrate'
+require "migrate"
 
 class AddStatusToUser < ActiveRecord::Migration
   def self.up
index 54c23fd..52d1904 100644 (file)
@@ -1,4 +1,4 @@
-require 'migrate'
+require "migrate"
 
 class AddMapBugTables < ActiveRecord::Migration
   def self.up
index 588f654..70ed81e 100644 (file)
@@ -1,4 +1,4 @@
-require 'migrate'
+require "migrate"
 
 class RefactorMapBugTables < ActiveRecord::Migration
   def self.up
index 3518610..4f979da 100644 (file)
@@ -1,4 +1,4 @@
-require 'migrate'
+require "migrate"
 
 class ChangeMapBugCommentType < ActiveRecord::Migration
   def self.up
index 39a6385..50aeb6c 100644 (file)
@@ -1,4 +1,4 @@
-require 'migrate'
+require "migrate"
 
 class AddDateClosed < ActiveRecord::Migration
   def self.up
index 98e6459..d5e77f4 100644 (file)
@@ -1,4 +1,4 @@
-require 'migrate'
+require "migrate"
 
 class AddMapBugCommentEvent < ActiveRecord::Migration
   def self.up
index 5b9933e..44ca1f4 100644 (file)
@@ -1,4 +1,4 @@
-require 'migrate'
+require "migrate"
 
 class RenameBugsToNotes < ActiveRecord::Migration
   def self.up
index 69e7ed2..f251755 100644 (file)
@@ -1,4 +1,4 @@
-require 'migrate'
+require "migrate"
 
 class AddLowercaseUserIndexes < ActiveRecord::Migration
   def up
index 0b0ca50..3f82c32 100644 (file)
@@ -1,4 +1,4 @@
-require 'migrate'
+require "migrate"
 
 class AddTextFormat < ActiveRecord::Migration
   def up
index 15cc1e1..bb9786d 100644 (file)
@@ -1,4 +1,4 @@
-require 'migrate'
+require "migrate"
 
 class CreateRedactions < ActiveRecord::Migration
   def change
index 627db6d..0ffcb89 100644 (file)
@@ -1,4 +1,4 @@
-require 'migrate'
+require "migrate"
 
 class DropSessionTable < ActiveRecord::Migration
   def up
index e0d2230..fe91340 100644 (file)
@@ -1,4 +1,4 @@
-require 'migrate'
+require "migrate"
 
 class AddTextIndexToNoteComments < ActiveRecord::Migration
   def up
index cfc4995..26c257c 100644 (file)
@@ -1,4 +1,4 @@
-require 'migrate'
+require "migrate"
 
 class CreateChangesetComments < ActiveRecord::Migration
   def change
index a8ae1d9..6fa133e 100644 (file)
@@ -16,12 +16,12 @@ class BoundingBox
   end
 
   def self.from_s(s)
-    BoundingBox.new(*s.split(/,/)) if s.count(',') == 3
+    BoundingBox.new(*s.split(/,/)) if s.count(",") == 3
   end
 
   def self.from_bbox_params(params)
-    if params[:bbox] && params[:bbox].count(',') == 3
-      bbox_array = params[:bbox].split(',')
+    if params[:bbox] && params[:bbox].count(",") == 3
+      bbox_array = params[:bbox].split(",")
     end
     from_bbox_array(bbox_array)
   end
index 3fa1109..990a53d 100644 (file)
@@ -77,7 +77,7 @@ module ActionController
         :include    => nil,
         :select     => nil,
         :group      => nil,
-        :parameter  => 'page'
+        :parameter  => "page"
       }
     end
 
@@ -226,7 +226,7 @@ module ActionController
       # than or equal to zero). The page CGI parameter for links defaults to
       # "page" and can be overridden with +page_parameter+.
       def initialize(controller, item_count, items_per_page, current_page = 1)
-        fail ArgumentError, 'must have at least one item per page' if
+        fail ArgumentError, "must have at least one item per page" if
           items_per_page <= 0
 
         @controller = controller
@@ -243,7 +243,7 @@ module ActionController
       # not belong to this Paginator, an ArgumentError is raised.
       def current_page=(page)
         if page.is_a? Page
-          fail ArgumentError, 'Page/Paginator mismatch' unless
+          fail ArgumentError, "Page/Paginator mismatch" unless
             page.paginator == self
         end
         page = page.to_i
index cb7ef9d..da1bcbe 100644 (file)
@@ -60,8 +60,8 @@ module ActionView
         name = options[:name] || DEFAULT_OPTIONS[:name]
         params = (options[:params] || DEFAULT_OPTIONS[:params]).clone
 
-        prefix = options[:prefix] || ''
-        suffix = options[:suffix] || ''
+        prefix = options[:prefix] || ""
+        suffix = options[:suffix] || ""
 
         pagination_links_each(paginator, options, prefix, suffix) do |n|
           params[name] = n
@@ -101,14 +101,14 @@ module ActionView
 
         first, last = paginator.first, paginator.last
 
-        html = ''
+        html = ""
 
         html << prefix if prefix
 
         if always_show_anchors && !(wp_first = window_pages[0]).first?
           html << yield(first.number)
-          html << ' ... ' if wp_first.number - first.number > 1
-          html << ' '
+          html << " ... " if wp_first.number - first.number > 1
+          html << " "
         end
 
         window_pages.each do |page|
@@ -117,11 +117,11 @@ module ActionView
           else
             html << yield(page.number)
           end
-          html << ' '
+          html << " "
         end
 
         if always_show_anchors && !(wp_last = window_pages[-1]).last?
-          html << ' ... ' if last.number - wp_last.number > 1
+          html << " ... " if last.number - wp_last.number > 1
           html << yield(last.number)
         end
 
index 3679aa4..4445d1e 100755 (executable)
@@ -23,7 +23,7 @@ loop do
       if gpx.actual_points > 0
         Notifier.gpx_success(trace, gpx.actual_points).deliver
       else
-        Notifier.gpx_failure(trace, '0 points parsed ok. Do they all have lat,lng,alt,timestamp?').deliver
+        Notifier.gpx_failure(trace, "0 points parsed ok. Do they all have lat,lng,alt,timestamp?").deliver
         trace.destroy
       end
     rescue StandardError => ex
index fc81e75..43fb48c 100755 (executable)
@@ -1,8 +1,8 @@
 #!/usr/bin/env ruby
-require 'rubygems'
+require "rubygems"
 require "daemons"
-require 'yaml'
-require 'erb'
+require "yaml"
+require "erb"
 
 class Hash
   def with_symbols!
@@ -18,4 +18,4 @@ options = YAML.load(
     )).result).with_symbols!
 options[:dir_mode] = options[:dir_mode].to_sym
 
-Daemons.run File.dirname(__FILE__) + '/gpx_import.rb', options
+Daemons.run File.dirname(__FILE__) + "/gpx_import.rb", options
index be6fee7..3ec4f14 100644 (file)
@@ -129,14 +129,14 @@ class DiffReader
 
     # take the first element and check that it is an osmChange element
     @reader.read
-    fail OSM::APIBadUserInput.new("Document element should be 'osmChange'.") if @reader.name != 'osmChange'
+    fail OSM::APIBadUserInput.new("Document element should be 'osmChange'.") if @reader.name != "osmChange"
 
     result = OSM::API.new.get_xml_doc
     result.root.name = "diffResult"
 
     # loop at the top level, within the <osmChange> element
     with_element do |action_name, action_attributes|
-      if action_name == 'create'
+      if action_name == "create"
         # create a new element. this code is agnostic of the element type
         # because all the elements support the methods that we're using.
         with_model do |model, xml|
@@ -145,7 +145,7 @@ class DiffReader
 
           # when this element is saved it will get a new ID, so we save it
           # to produce the mapping which is sent to other elements.
-          placeholder_id = xml['id'].to_i
+          placeholder_id = xml["id"].to_i
           fail OSM::APIBadXMLError.new(model, xml) if placeholder_id.nil?
 
           # check if the placeholder ID has been given before and throw
@@ -171,7 +171,7 @@ class DiffReader
           result.root << xml_result
         end
 
-      elsif action_name == 'modify'
+      elsif action_name == "modify"
         # modify an existing element. again, this code doesn't directly deal
         # with types, but uses duck typing to handle them transparently.
         with_model do |model, xml|
@@ -203,13 +203,13 @@ class DiffReader
           result.root << xml_result
         end
 
-      elsif action_name == 'delete'
+      elsif action_name == "delete"
         # delete action. this takes a payload in API 0.6, so we need to do
         # most of the same checks that are done for the modify.
         with_model do |model, xml|
           # delete doesn't have to contain a full payload, according to
           # the wiki docs, so we just extract the things we need.
-          new_id = xml['id'].to_i
+          new_id = xml["id"].to_i
           fail OSM::APIBadXMLError.new(model, xml, "ID attribute is required") if new_id.nil?
 
           # if the ID is a placeholder then map it to the real ID
@@ -219,8 +219,8 @@ class DiffReader
 
           # build the "new" element by modifying the existing one
           new = model.find(id)
-          new.changeset_id = xml['changeset'].to_i
-          new.version = xml['version'].to_i
+          new.changeset_id = xml["changeset"].to_i
+          new.version = xml["version"].to_i
           check(model, xml, new)
 
           # fetch the matching old element from the DB
index 5a61b34..9b93f07 100644 (file)
@@ -52,21 +52,21 @@ module GPX
       proj = OSM::Mercator.new(min_lat, min_lon, max_lat, max_lon, width, height)
 
       linegc = Magick::Draw.new
-      linegc.stroke_linejoin('miter')
+      linegc.stroke_linejoin("miter")
       linegc.stroke_width(1)
-      linegc.stroke('#BBBBBB')
-      linegc.fill('#BBBBBB')
+      linegc.stroke("#BBBBBB")
+      linegc.fill("#BBBBBB")
 
       highlightgc = Magick::Draw.new
-      highlightgc.stroke_linejoin('miter')
+      highlightgc.stroke_linejoin("miter")
       highlightgc.stroke_width(3)
-      highlightgc.stroke('#000000')
-      highlightgc.fill('#000000')
+      highlightgc.stroke("#000000")
+      highlightgc.fill("#000000")
 
       images = frames.times.collect do
         Magick::Image.new(width, height) do |image|
-          image.background_color = 'white'
-          image.format = 'GIF'
+          image.background_color = "white"
+          image.format = "GIF"
         end
       end
 
@@ -107,7 +107,7 @@ module GPX
       end
 
       il.delay = 50
-      il.format = 'GIF'
+      il.format = "GIF"
 
       il.to_blob
     end
@@ -118,14 +118,14 @@ module GPX
       proj = OSM::Mercator.new(min_lat, min_lon, max_lat, max_lon, width, height)
 
       gc = Magick::Draw.new
-      gc.stroke_linejoin('miter')
+      gc.stroke_linejoin("miter")
       gc.stroke_width(1)
-      gc.stroke('#000000')
-      gc.fill('#000000')
+      gc.stroke("#000000")
+      gc.fill("#000000")
 
       image = Magick::Image.new(width, height) do |i|
-        i.background_color = 'white'
-        i.format = 'GIF'
+        i.background_color = "white"
+        i.format = "GIF"
       end
 
       oldpx = 0.0
index 7321944..15f918e 100644 (file)
--- a/lib/id.rb
+++ b/lib/id.rb
@@ -1,3 +1,3 @@
 module ID
-  LOCALES = Rails.root.join('vendor/assets/iD/iD/locales').entries.map { |p| p.basename.to_s[/(.*).json/] && $1 }.compact
+  LOCALES = Rails.root.join("vendor/assets/iD/iD/locales").entries.map { |p| p.basename.to_s[/(.*).json/] && $1 }.compact
 end
index c5d60ce..97d158c 100644 (file)
@@ -3,7 +3,7 @@ module Nominatim
 
   def self.describe_location(lat, lon, zoom = nil, language = nil)
     zoom ||= 14
-    language ||= http_accept_language.user_preferred_languages.join(',')
+    language ||= http_accept_language.user_preferred_languages.join(",")
 
     Rails.cache.fetch "/nominatim/location/#{lat}/#{lon}/#{zoom}/#{language}" do
       url = "http://nominatim.openstreetmap.org/reverse?lat=#{lat}&lon=#{lon}&zoom=#{zoom}&accept-language=#{language}"
index 75ff331..fb94561 100644 (file)
@@ -1,4 +1,4 @@
-require 'osm'
+require "osm"
 
 module NotRedactable
   def redacted?
index 4243c64..c765df5 100644 (file)
@@ -1,10 +1,10 @@
 module ObjectMetadata
   def add_metadata_to_xml_node(el, osm, changeset_cache, user_display_name_cache)
-    el['changeset'] = osm.changeset_id.to_s
-    el['redacted'] = osm.redaction.id.to_s if osm.redacted?
-    el['timestamp'] = osm.timestamp.xmlschema
-    el['version'] = osm.version.to_s
-    el['visible'] = osm.visible.to_s
+    el["changeset"] = osm.changeset_id.to_s
+    el["redacted"] = osm.redaction.id.to_s if osm.redacted?
+    el["timestamp"] = osm.timestamp.xmlschema
+    el["version"] = osm.version.to_s
+    el["visible"] = osm.visible.to_s
 
     if changeset_cache.key?(osm.changeset_id)
       # use the cache if available
@@ -23,17 +23,17 @@ module ObjectMetadata
     end
 
     unless user_display_name_cache[user_id].nil?
-      el['user'] = user_display_name_cache[user_id]
-      el['uid'] = user_id.to_s
+      el["user"] = user_display_name_cache[user_id]
+      el["uid"] = user_id.to_s
     end
   end
 
   def add_tags_to_xml_node(el, tags)
     tags.each do |tag|
-      tag_el = XML::Node.new('tag')
+      tag_el = XML::Node.new("tag")
 
-      tag_el['k'] = tag.k
-      tag_el['v'] = tag.v
+      tag_el["k"] = tag.k
+      tag_el["v"] = tag.v
 
       el << tag_el
     end
index 8933376..3a0becc 100644 (file)
@@ -1,14 +1,14 @@
 # The OSM module provides support functions for OSM.
 module OSM
-  require 'time'
-  require 'rexml/parsers/sax2parser'
-  require 'rexml/text'
-  require 'xml/libxml'
+  require "time"
+  require "rexml/parsers/sax2parser"
+  require "rexml/text"
+  require "xml/libxml"
 
   if defined?(SystemTimer)
     Timer = SystemTimer
   else
-    require 'timeout'
+    require "timeout"
     Timer = Timeout
   end
 
@@ -482,12 +482,12 @@ module OSM
     def get_xml_doc
       doc = XML::Document.new
       doc.encoding = XML::Encoding::UTF_8
-      root = XML::Node.new 'osm'
-      root['version'] = API_VERSION.to_s
-      root['generator'] = GENERATOR
-      root['copyright'] = COPYRIGHT_OWNER
-      root['attribution'] = ATTRIBUTION_URL
-      root['license'] =  LICENSE_URL
+      root = XML::Node.new "osm"
+      root["version"] = API_VERSION.to_s
+      root["generator"] = GENERATOR
+      root["copyright"] = COPYRIGHT_OWNER
+      root["attribution"] = ATTRIBUTION_URL
+      root["license"] =  LICENSE_URL
       doc.root = root
       doc
     end
@@ -500,7 +500,7 @@ module OSM
       if ipinfo.status == Quova::SUCCESS
         country = ipinfo.country_code
       else
-        Net::HTTP.start('api.hostip.info') do |http|
+        Net::HTTP.start("api.hostip.info") do |http|
           country = http.get("/country.php?ip=#{ip_address}").body
           country = "GB" if country == "UK"
         end
@@ -533,8 +533,8 @@ module OSM
 
   # Construct a random token of a given length
   def self.make_token(length = 30)
-    chars = 'abcdefghijklmnopqrtuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
-    token = ''
+    chars = "abcdefghijklmnopqrtuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
+    token = ""
 
     length.times do
       token += chars[(rand * chars.length).to_i].chr
index df8e55c..fc80d68 100644 (file)
@@ -13,8 +13,8 @@
 # end
 
 begin
-  require 'zlib'
-  require 'stringio'
+  require "zlib"
+  require "stringio"
   GZIP_SUPPORTED = true
 rescue
   GZIP_SUPPORTED = false
@@ -34,13 +34,13 @@ module CompressionSystem
     if output.length < response.body.length
       @old_response_body = response.body
       response.body = output.string
-      response.headers['Content-encoding'] = @compression_encoding
+      response.headers["Content-encoding"] = @compression_encoding
     end
   end
 
   def accepts_gzip?
     return false unless GZIP_SUPPORTED
-    accepts = request.env['HTTP_ACCEPT_ENCODING']
+    accepts = request.env["HTTP_ACCEPT_ENCODING"]
     return false unless accepts && accepts =~ /(x-gzip|gzip)/
     @compression_encoding = $1
     true
@@ -49,15 +49,15 @@ module CompressionSystem
   def strip_whitespace
     response.body.gsub!(/()|(.*?<\/script>)|()|()|\s+/m) do |m|
       if m =~ /^()(.*?)<\/script>$/m
-        $1 + $2.strip.gsub(/\s+/, ' ').gsub('', "\n-->") + ''
+        $1 + $2.strip.gsub(/\s+/, " ").gsub("", "\n-->") + ""
       elsif m =~ /^$/m
-        ''
+        ""
       elsif m =~ /^<(textarea|pre)/
         m
-      else ' '
+      else " "
       end
     end
-    response.body.gsub! /\s+\s+/, '>'
+    response.body.gsub! /\s+\s+/, ">"
   end
 end
 
index 879972e..2030f55 100644 (file)
@@ -1,4 +1,4 @@
-require 'stringio'
+require "stringio"
 
 # The Potlatch module provides helper functions for potlatch and its communication with the server
 module Potlatch
@@ -24,7 +24,7 @@ module Potlatch
 
     # Return eight-byte double-precision float
     def self.getdouble(s)
-      a = s.read(8).unpack('G')                        # G big-endian, E little-endian
+      a = s.read(8).unpack("G")                        # G big-endian, E little-endian
       a[0]
     end
 
@@ -39,7 +39,7 @@ module Potlatch
     def self.getobject(s)
       arr = {}
       while (key = getstring(s))
-        break if key == ''
+        break if key == ""
         arr[key] = getvalue(s)
       end
       s.getbyte                # skip the 9 'end of object' value
@@ -74,27 +74,27 @@ module Potlatch
     # Pack variables as AMF
     def self.encodevalue(n)
       case n.class.to_s
-      when 'Array'
+      when "Array"
         a = 10.chr + encodelong(n.length)
         n.each do |b|
           a += encodevalue(b)
         end
         a
-      when 'Hash'
+      when "Hash"
         a = 3.chr
         n.each do |k, v|
           a += encodestring(k.to_s) + encodevalue(v)
         end
         a + 0.chr + 0.chr + 9.chr
-      when 'String'
+      when "String"
         2.chr + encodestring(n)
-      when 'Bignum', 'Fixnum', 'Float'
+      when "Bignum", "Fixnum", "Float"
         0.chr + encodedouble(n)
-      when 'NilClass'
+      when "NilClass"
         5.chr
-      when 'TrueClass'
+      when "TrueClass"
         0.chr + encodedouble(1)
-      when 'FalseClass'
+      when "FalseClass"
         0.chr + encodedouble(0)
       else
         Rails.logger.error("Unexpected Ruby type for AMF conversion: " + n.class.to_s)
@@ -110,12 +110,12 @@ module Potlatch
 
     # Encode number as eight-byte double precision float
     def self.encodedouble(n)
-      [n].pack('G')
+      [n].pack("G")
     end
 
     # Encode number as four-byte long
     def self.encodelong(n)
-      [n].pack('N')
+      [n].pack("N")
     end
   end
 
@@ -175,10 +175,10 @@ module Potlatch
 
       # Read preset menus
       presets = {}
-      presetmenus = { 'point' => [], 'way' => [], 'POI' => [] }
-      presetnames = { 'point' => {}, 'way' => {}, 'POI' => {} }
-      presettype = ''
-      presetcategory = ''
+      presetmenus = { "point" => [], "way" => [], "POI" => [] }
+      presetnames = { "point" => {}, "way" => {}, "POI" => {} }
+      presettype = ""
+      presetcategory = ""
       #        StringIO.open(txt) do |file|
       File.open("#{Rails.root}/config/potlatch/presets.txt") do |file|
         file.each_line do|line|
@@ -193,7 +193,7 @@ module Potlatch
             kv = $2
             presetnames[presettype][presetcategory].push(pre)
             presets[pre] = {}
-            kv.split(',').each do|a|
+            kv.split(",").each do|a|
               presets[pre][$1] = $2 if a =~ /^(.+)=(.*)$/
             end
           end
@@ -209,9 +209,9 @@ module Potlatch
           next unless line.chomp =~ /(\w+)\s+([^\s]+)\s+([^\s]+)\s+([^\s]+)/
 
           tag = $1
-          colours[tag] = $2.hex if $2 != '-'
-          casing[tag] = $3.hex if $3 != '-'
-          areas[tag] = $4.hex if $4 != '-'
+          colours[tag] = $2.hex if $2 != "-"
+          casing[tag] = $3.hex if $3 != "-"
+          areas[tag] = $4.hex if $4 != "-"
         end
       end
 
@@ -224,9 +224,9 @@ module Potlatch
           next unless line.chomp =~ /(\w+)\s+([^\s]+)\s+([^\s]+)\s+([^\s]+)/
 
           tag = $1
-          relcolours[tag] = $2.hex if $2 != '-'
-          relalphas[tag] = $3.to_i if $3 != '-'
-          relwidths[tag] = $4.to_i if $4 != '-'
+          relcolours[tag] = $2.hex if $2 != "-"
+          relalphas[tag] = $3.to_i if $3 != "-"
+          relwidths[tag] = $4.to_i if $4 != "-"
         end
       end
 
@@ -243,7 +243,7 @@ module Potlatch
       icon_list.reverse!
 
       # Read auto-complete
-      autotags = { 'point' => {}, 'way' => {}, 'POI' => {} }
+      autotags = { "point" => {}, "way" => {}, "POI" => {} }
       File.open("#{Rails.root}/config/potlatch/autocomplete.txt") do |file|
         file.each_line do|line|
           next unless line.chomp =~ /^([\w:]+)\/(\w+)\s+(.+)$/
@@ -251,10 +251,10 @@ module Potlatch
           tag = $1
           type = $2
           values = $3
-          if values == '-'
+          if values == "-"
             autotags[type][tag] = []
           else
-            autotags[type][tag] = values.split(',').sort.reverse
+            autotags[type][tag] = values.split(",").sort.reverse
           end
         end
       end
index a59f432..6cfc2ff 100644 (file)
@@ -1,6 +1,6 @@
 ##
 # Load required libraries
-require 'soap/wsdlDriver'
+require "soap/wsdlDriver"
 
 ##
 # Monkey patch WSDL parser to stop it moaning
index c46b327..a42164e 100644 (file)
@@ -1,4 +1,4 @@
-require 'osm'
+require "osm"
 
 module Redactable
   def self.included(base)
diff --git