Cleanup trailing whitespace
authorTom Hughes <tom@compton.nu>
Mon, 16 Feb 2015 18:52:25 +0000 (18:52 +0000)
committerTom Hughes <tom@compton.nu>
Fri, 20 Feb 2015 08:56:16 +0000 (08:56 +0000)
129 files changed:
.rubocop_todo.yml
Vagrantfile
app/controllers/amf_controller.rb
app/controllers/api_controller.rb
app/controllers/application_controller.rb
app/controllers/browse_controller.rb
app/controllers/diary_entry_controller.rb
app/controllers/node_controller.rb
app/controllers/notes_controller.rb
app/controllers/old_controller.rb
app/controllers/old_node_controller.rb
app/controllers/old_relation_controller.rb
app/controllers/old_way_controller.rb
app/controllers/redactions_controller.rb
app/controllers/relation_controller.rb
app/controllers/swf_controller.rb
app/controllers/user_blocks_controller.rb
app/controllers/user_preference_controller.rb
app/controllers/user_roles_controller.rb
app/controllers/way_controller.rb
app/helpers/user_blocks_helper.rb
app/helpers/user_roles_helper.rb
app/models/access_token.rb
app/models/changeset.rb
app/models/changeset_comment.rb
app/models/client_application.rb
app/models/language.rb
app/models/node.rb
app/models/node_tag.rb
app/models/oauth_token.rb
app/models/old_node.rb
app/models/old_relation.rb
app/models/old_relation_tag.rb
app/models/old_way.rb
app/models/redaction.rb
app/models/relation.rb
app/models/trace.rb
app/models/user_preference.rb
app/models/way.rb
app/models/way_tag.rb
config/initializers/abstract_adapter.rb
config/initializers/action_mailer.rb
config/initializers/memory_limits.rb
config/initializers/r2.rb
config/routes.rb
db/migrate/001_create_osm_db.rb
db/migrate/002_cleanup_osm_db.rb
db/migrate/006_tile_nodes.rb
db/migrate/008_remove_segments.rb
db/migrate/020_populate_node_tags_and_remove.rb
db/migrate/021_move_to_innodb.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/040_create_oauth_tables.rb
db/migrate/053_add_map_bug_tables.rb
db/migrate/054_refactor_map_bug_tables.rb
db/migrate/056_add_date_closed.rb
db/migrate/20100516124737_add_open_id.rb
db/migrate/20110322001319_add_terms_seen_to_user.rb
lib/classic_pagination/pagination.rb
lib/classic_pagination/pagination_helper.rb
lib/consistency_validations.rb
lib/daemons/gpx_import.rb
lib/diff_reader.rb
lib/editors.rb
lib/geo_record.rb
lib/output_compression/output_compression.rb
lib/potlatch.rb
lib/quova.rb
lib/redactable.rb
lib/rich_text.rb
lib/session_persistence.rb
lib/short_link.rb
lib/tasks/add_version_to_nodes.rake
lib/tasks/testing.rake
lib/validators.rb
script/daemons
script/locale/po2yaml
script/statistics
test/controllers/amf_controller_test.rb
test/controllers/api_controller_test.rb
test/controllers/changeset_controller_test.rb
test/controllers/diary_entry_controller_test.rb
test/controllers/export_controller_test.rb
test/controllers/node_controller_test.rb
test/controllers/notes_controller_test.rb
test/controllers/oauth_clients_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/relation_controller_test.rb
test/controllers/trace_controller_test.rb
test/controllers/user_controller_test.rb
test/controllers/user_preference_controller_test.rb
test/controllers/way_controller_test.rb
test/helpers/application_helper_test.rb
test/integration/oauth_test.rb
test/integration/user_changeset_comments_test.rb
test/integration/user_diaries_test.rb
test/integration/user_terms_seen_test.rb
test/lib/short_link_test.rb
test/models/changeset_comment_test.rb
test/models/changeset_tag_test.rb
test/models/diary_comment_test.rb
test/models/diary_entry_test.rb
test/models/friend_test.rb
test/models/message_test.rb
test/models/node_tag_test.rb
test/models/node_test.rb
test/models/oauth_nonce_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/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_tag_test.rb
test/models/way_test.rb
test/test_helper.rb

index ac10d78..0c09cb1 100644 (file)
@@ -626,23 +626,12 @@ Style/SymbolProc:
 Style/Tab:
   Enabled: false
 
 Style/Tab:
   Enabled: false
 
-# Offense count: 6
-# Cop supports --auto-correct.
-# Configuration parameters: EnforcedStyle, SupportedStyles.
-Style/TrailingBlankLines:
-  Enabled: false
-
 # Offense count: 4
 # Cop supports --auto-correct.
 # Configuration parameters: EnforcedStyleForMultiline, SupportedStyles.
 Style/TrailingComma:
   Enabled: false
 
 # Offense count: 4
 # Cop supports --auto-correct.
 # Configuration parameters: EnforcedStyleForMultiline, SupportedStyles.
 Style/TrailingComma:
   Enabled: false
 
-# Offense count: 1052
-# Cop supports --auto-correct.
-Style/TrailingWhitespace:
-  Enabled: false
-
 # Offense count: 13
 # Cop supports --auto-correct.
 # Configuration parameters: ExactNameMatch, AllowPredicates, AllowDSLWriters, Whitelist.
 # Offense count: 13
 # Cop supports --auto-correct.
 # Configuration parameters: ExactNameMatch, AllowPredicates, AllowDSLWriters, Whitelist.
index 5489192..69ec525 100644 (file)
@@ -4,7 +4,7 @@
 Vagrant.configure("2") do |config|
   config.vm.box = "precise64"
   config.vm.box_url = "http://files.vagrantup.com/precise64.box"
 Vagrant.configure("2") do |config|
   config.vm.box = "precise64"
   config.vm.box_url = "http://files.vagrantup.com/precise64.box"
-  
+
   # port forward for webrick on 3000
   config.vm.network :forwarded_port, guest: 3000, host: 3000
 
   # port forward for webrick on 3000
   config.vm.network :forwarded_port, guest: 3000, host: 3000
 
index 9dd0e90..19b7d5d 100644 (file)
@@ -1,6 +1,6 @@
-# amf_controller is a semi-standalone API for Flash clients, particularly 
-# Potlatch. All interaction between Potlatch (as a .SWF application) and the 
-# OSM database takes place using this controller. Messages are 
+# amf_controller is a semi-standalone API for Flash clients, particularly
+# Potlatch. All interaction between Potlatch (as a .SWF application) and the
+# OSM database takes place using this controller. Messages are
 # encoded in the Actionscript Message Format (AMF).
 #
 # Helper functions are in /lib/potlatch.rb
 # encoded in the Actionscript Message Format (AMF).
 #
 # Helper functions are in /lib/potlatch.rb
 # == General structure
 #
 # Apart from the amf_read and amf_write methods (which distribute the requests
 # == General structure
 #
 # Apart from the amf_read and amf_write methods (which distribute the requests
-# from the AMF message), each method generally takes arguments in the order 
-# they were sent by the Potlatch SWF. Do not assume typing has been preserved. 
+# from the AMF message), each method generally takes arguments in the order
+# they were sent by the Potlatch SWF. Do not assume typing has been preserved.
 # Methods all return an array to the SWF.
 #
 # == API 0.6
 #
 # Note that this requires a patched version of composite_primary_keys 1.1.0
 # Methods all return an array to the SWF.
 #
 # == API 0.6
 #
 # Note that this requires a patched version of composite_primary_keys 1.1.0
-# (see http://groups.google.com/group/compositekeys/t/a00e7562b677e193) 
+# (see http://groups.google.com/group/compositekeys/t/a00e7562b677e193)
 # if you are to run with POTLATCH_USE_SQL=false .
 # if you are to run with POTLATCH_USE_SQL=false .
-# 
+#
 # == Debugging
 # == Debugging
-# 
+#
 # Any method that returns a status code (0 for ok) can also send:
 # return(-1,"message")        <-- just puts up a dialogue
 # return(-2,"message")        <-- also asks the user to e-mail me
 # return(-3,["type",v],id)    <-- version conflict
 # return(-4,"type",id)        <-- object not found
 # -5 indicates the method wasn't called (due to a previous error)
 # Any method that returns a status code (0 for ok) can also send:
 # return(-1,"message")        <-- just puts up a dialogue
 # return(-2,"message")        <-- also asks the user to e-mail me
 # return(-3,["type",v],id)    <-- version conflict
 # return(-4,"type",id)        <-- object not found
 # -5 indicates the method wasn't called (due to a previous error)
-# 
+#
 # To write to the Rails log, use logger.info("message").
 
 # Remaining issues:
 # To write to the Rails log, use logger.info("message").
 
 # Remaining issues:
@@ -43,7 +43,7 @@ class AmfController < ApplicationController
 
   # Main AMF handlers: process the raw AMF string (using AMF library) and
   # calls each action (private method) accordingly.
 
   # Main AMF handlers: process the raw AMF string (using AMF library) and
   # calls each action (private method) accordingly.
-  
+
   def amf_read
     self.status = :ok
     self.content_type = Mime::AMF
   def amf_read
     self.status = :ok
     self.content_type = Mime::AMF
@@ -63,7 +63,7 @@ class AmfController < ApplicationController
         when 'findrelations';     result = findrelations(*args)
         when 'getpoi';            result = getpoi(*args)
       end
         when 'findrelations';     result = findrelations(*args)
         when 'getpoi';            result = getpoi(*args)
       end
-        
+
       result
     end
   end
       result
     end
   end
@@ -128,7 +128,7 @@ class AmfController < ApplicationController
 
   # Start new changeset
   # Returns success_code,success_message,changeset id
 
   # Start new changeset
   # Returns success_code,success_message,changeset id
-  
+
   def startchangeset(usertoken, cstags, closeid, closecomment, opennew)
     amf_handle_error("'startchangeset'",nil,nil) do
       user = getuser(usertoken)
   def startchangeset(usertoken, cstags, closeid, closecomment, opennew)
     amf_handle_error("'startchangeset'",nil,nil) do
       user = getuser(usertoken)
@@ -156,14 +156,14 @@ class AmfController < ApplicationController
           cs.save_with_tags!
         end
       end
           cs.save_with_tags!
         end
       end
-  
+
       # open a new changeset
       if opennew!=0
         cs = Changeset.new
         cs.tags = cstags
         cs.user_id = user.id
       # open a new changeset
       if opennew!=0
         cs = Changeset.new
         cs.tags = cstags
         cs.user_id = user.id
-        if !closecomment.empty? 
-          cs.tags['comment']=closecomment 
+        if !closecomment.empty?
+          cs.tags['comment']=closecomment
           # in case closecomment has chars not allowed in xml
           cs.tags = strip_non_xml_chars cs.tags
         end
           # in case closecomment has chars not allowed in xml
           cs.tags = strip_non_xml_chars cs.tags
         end
@@ -234,10 +234,10 @@ class AmfController < ApplicationController
 
   ##
   # Find all the ways, POI nodes (i.e. not part of ways), and relations
 
   ##
   # Find all the ways, POI nodes (i.e. not part of ways), and relations
-  # in a given bounding box. Nodes are returned in full; ways and relations 
-  # are IDs only. 
+  # in a given bounding box. Nodes are returned in full; ways and relations
+  # are IDs only.
   #
   #
-  # return is of the form: 
+  # return is of the form:
   # [success_code, success_message,
   #  [[way_id, way_version], ...],
   #  [[node_id, lat, lon, [tags, ...], node_version], ...],
   # [success_code, success_message,
   #  [[way_id, way_version], ...],
   #  [[node_id, lat, lon, [tags, ...], node_version], ...],
@@ -265,7 +265,7 @@ class AmfController < ApplicationController
       else
         # find the way ids in an area
         nodes_in_area = Node.bbox(bbox).visible.includes(:ways)
       else
         # find the way ids in an area
         nodes_in_area = Node.bbox(bbox).visible.includes(:ways)
-        ways = nodes_in_area.inject([]) { |sum, node| 
+        ways = nodes_in_area.inject([]) { |sum, node|
           visible_ways = node.ways.select { |w| w.visible? }
           sum + visible_ways.collect { |w| [w.id,w.version] }
         }.uniq
           visible_ways = node.ways.select { |w| w.visible? }
           sum + visible_ways.collect { |w| [w.id,w.version] }
         }.uniq
@@ -339,22 +339,22 @@ class AmfController < ApplicationController
       [0, '', wayid, points, tags, version, uid]
     end
   end
       [0, '', wayid, points, tags, version, uid]
     end
   end
-  
+
   # Get an old version of a way, and all constituent nodes.
   #
   # Get an old version of a way, and all constituent nodes.
   #
-  # For undelete (version<0), always uses the most recent version of each node, 
-  # even if it's moved.  For revert (version >= 0), uses the node in existence 
+  # For undelete (version<0), always uses the most recent version of each node,
+  # even if it's moved.  For revert (version >= 0), uses the node in existence
   # at the time, generating a new id if it's still visible and has been moved/
   # retagged.
   #
   # Returns:
   # at the time, generating a new id if it's still visible and has been moved/
   # retagged.
   #
   # Returns:
-  # 0. success code, 
-  # 1. id, 
-  # 2. array of points, 
-  # 3. hash of tags, 
-  # 4. version, 
+  # 0. success code,
+  # 1. id,
+  # 2. array of points,
+  # 3. hash of tags,
+  # 4. version,
   # 5. is this the current, visible version? (boolean)
   # 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 == ''
   def getway_old(id, timestamp) #:doc:
     amf_handle_error_with_timeout("'getway_old' #{id}, #{timestamp}", 'way',id) do
       if timestamp == ''
@@ -387,15 +387,15 @@ class AmfController < ApplicationController
       end
     end
   end
       end
     end
   end
-  
+
   # Find history of a way.
   # Returns 'way', id, and an array of previous versions:
   # - formerly [old_way.version, old_way.timestamp.strftime("%d %b %Y, %H:%M"), old_way.visible ? 1 : 0, user, uid]
   # - now [timestamp,user,uid]
   #
   # Find history of a way.
   # Returns 'way', id, and an array of previous versions:
   # - formerly [old_way.version, old_way.timestamp.strftime("%d %b %Y, %H:%M"), old_way.visible ? 1 : 0, user, uid]
   # - now [timestamp,user,uid]
   #
-  # Heuristic: Find all nodes that have ever been part of the way; 
+  # Heuristic: Find all nodes that have ever been part of the way;
   # get a list of their revision dates; add revision dates of the way;
   # get a list of their revision dates; add revision dates of the way;
-  # sort and collapse list (to within 2 seconds); trim all dates before the 
+  # sort and collapse list (to within 2 seconds); trim all dates before the
   # start date of the way.
 
   def getway_history(wayid) #:doc:
   # start date of the way.
 
   def getway_history(wayid) #:doc:
@@ -431,11 +431,11 @@ class AmfController < ApplicationController
       return ['way', wayid, []]
     end
   end
       return ['way', wayid, []]
     end
   end
-  
+
   # Find history of a node. Returns 'node', id, and an array of previous versions as above.
 
   def getnode_history(nodeid) #:doc:
   # Find history of a node. Returns 'node', id, and an array of previous versions as above.
 
   def getnode_history(nodeid) #:doc:
-    begin 
+    begin
       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
       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
@@ -454,7 +454,7 @@ class AmfController < ApplicationController
 
   # Find GPS traces with specified name/id.
   # Returns array listing GPXs, each one comprising id, name and description.
 
   # Find GPS traces with specified name/id.
   # Returns array listing GPXs, each one comprising id, name and description.
-  
+
   def findgpx(searchterm, usertoken)
     amf_handle_error_with_timeout("'findgpx'" ,nil,nil) do
       user = getuser(usertoken)
   def findgpx(searchterm, usertoken)
     amf_handle_error_with_timeout("'findgpx'" ,nil,nil) do
       user = getuser(usertoken)
@@ -482,7 +482,7 @@ class AmfController < ApplicationController
   # 3. hash of tags,
   # 4. list of members,
   # 5. version.
   # 3. hash of tags,
   # 4. list of members,
   # 5. version.
-  
+
   def getrelation(relid) #:doc:
     amf_handle_error("'getrelation' #{relid}" ,'relation',relid) do
       rel = Relation.where(:id => relid).first
   def getrelation(relid) #:doc:
     amf_handle_error("'getrelation' #{relid}" ,'relation',relid) do
       rel = Relation.where(:id => relid).first
@@ -494,7 +494,7 @@ class AmfController < ApplicationController
 
   # Find relations with specified name/id.
   # Returns array of relations, each in same form as getrelation.
 
   # Find relations with specified name/id.
   # Returns array of relations, each in same form as getrelation.
-  
+
   def findrelations(searchterm)
     rels = []
     if searchterm.to_i>0 then
   def findrelations(searchterm)
     rels = []
     if searchterm.to_i>0 then
@@ -575,7 +575,7 @@ class AmfController < ApplicationController
           relation.delete_with_history!(new_relation, user)
         end
       end # transaction
           relation.delete_with_history!(new_relation, user)
         end
       end # transaction
-      
+
       if relid <= 0
         return [0, '', relid, new_relation.id, new_relation.version]
       else
       if relid <= 0
         return [0, '', relid, new_relation.id, new_relation.version]
       else
@@ -586,7 +586,7 @@ class AmfController < ApplicationController
 
   # Save a way to the database, including all nodes. Any nodes in the previous
   # version and no longer used are deleted.
 
   # Save a way to the database, including all nodes. Any nodes in the previous
   # version and no longer used are deleted.
-  # 
+  #
   # Parameters:
   # 0. hash of renumbered nodes (added by amf_controller)
   # 1. current user token (for authentication)
   # Parameters:
   # 0. hash of renumbered nodes (added by amf_controller)
   # 1. current user token (for authentication)
@@ -597,7 +597,7 @@ class AmfController < ApplicationController
   # 6. hash of way tags
   # 7. array of nodes to change (each one is [lon,lat,id,version,tags]),
   # 8. hash of nodes to delete (id->version).
   # 6. hash of way tags
   # 7. array of nodes to change (each one is [lon,lat,id,version,tags]),
   # 8. hash of nodes to delete (id->version).
-  # 
+  #
   # Returns:
   # 0. '0' (code for success),
   # 1. message,
   # Returns:
   # 0. '0' (code for success),
   # 1. message,
@@ -610,7 +610,7 @@ class AmfController < ApplicationController
   def putway(renumberednodes, usertoken, changeset_id, wayversion, originalway, pointlist, attributes, nodes, deletednodes) #:doc:
     amf_handle_error("'putway' #{originalway}" ,'way',originalway) do
       # -- Initialise
   def putway(renumberednodes, usertoken, changeset_id, wayversion, originalway, pointlist, attributes, nodes, deletednodes) #:doc:
     amf_handle_error("'putway' #{originalway}" ,'way',originalway) do
       # -- Initialise
-  
+
       user = getuser(usertoken)
       if !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
       user = getuser(usertoken)
       if !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
@@ -748,7 +748,7 @@ class AmfController < ApplicationController
         new_node.lat = lat
         new_node.lon = lon
         new_node.tags = tags
         new_node.lat = lat
         new_node.lon = lon
         new_node.tags = tags
-        if id <= 0 
+        if id <= 0
           # We're creating the node
           new_node.create_with_history(user)
         elsif visible
           # We're creating the node
           new_node.create_with_history(user)
         elsif visible
@@ -767,7 +767,7 @@ class AmfController < ApplicationController
         return [0, '', id, new_node.id, new_node.version]
       else
         return [0, '', id, node.id, node.version]
         return [0, '', id, new_node.id, new_node.version]
       else
         return [0, '', id, node.id, node.version]
-      end 
+      end
     end
   end
 
     end
   end
 
@@ -799,7 +799,7 @@ class AmfController < ApplicationController
   # * the changeset id
   # * the id of the way to change
   # * the version of the way that was downloaded
   # * the changeset id
   # * the id of the way to change
   # * the version of the way that was downloaded
-  # * a hash of the id and versions of all the nodes that are in the way, if any 
+  # * a hash of the id and versions of all the nodes that are in the way, if any
   # of the nodes have been changed by someone else then, there is a problem!
   # Returns 0 (success), unchanged way id, new way version, new node versions.
 
   # of the nodes have been changed by someone else then, there is a problem!
   # Returns 0 (success), unchanged way id, new way version, new node versions.
 
@@ -809,7 +809,7 @@ class AmfController < ApplicationController
       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 REQUIRE_TERMS_AGREED and user.terms_agreed.nil? then return -1,"You must accept the contributor terms before you can edit." end
       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 REQUIRE_TERMS_AGREED and user.terms_agreed.nil? then return -1,"You must accept the contributor terms before you can edit." end
-      
+
       way_id = way_id.to_i
       nodeversions = {}
       old_way=nil # returned, so scope it outside the transaction
       way_id = way_id.to_i
       nodeversions = {}
       old_way=nil # returned, so scope it outside the transaction
@@ -853,7 +853,7 @@ class AmfController < ApplicationController
 
   # Authenticate token
   # (can also be of form user:pass)
 
   # Authenticate token
   # (can also be of form user:pass)
-  # When we are writing to the api, we need the actual user model, 
+  # When we are writing to the api, we need the actual user model,
   # not just the id, hence this abstraction
 
   def getuser(token) #:doc:
   # not just the id, hence this abstraction
 
   def getuser(token) #:doc:
@@ -868,7 +868,7 @@ class AmfController < ApplicationController
   def getlocales
     Dir.glob("#{Rails.root}/config/potlatch/locales/*").collect { |f| File.basename(f, ".yml") }
   end
   def getlocales
     Dir.glob("#{Rails.root}/config/potlatch/locales/*").collect { |f| File.basename(f, ".yml") }
   end
-  
+
   ##
   # check that all key-value pairs are valid UTF-8.
   def tags_ok(tags)
   ##
   # check that all key-value pairs are valid UTF-8.
   def tags_ok(tags)
@@ -903,19 +903,19 @@ class AmfController < ApplicationController
       FROM current_way_nodes
     INNER JOIN current_nodes ON current_nodes.id=current_way_nodes.node_id
     INNER JOIN current_ways  ON current_ways.id =current_way_nodes.id
       FROM current_way_nodes
     INNER JOIN current_nodes ON current_nodes.id=current_way_nodes.node_id
     INNER JOIN current_ways  ON current_ways.id =current_way_nodes.id
-       WHERE current_nodes.visible=TRUE 
-       AND current_ways.visible=TRUE 
+       WHERE current_nodes.visible=TRUE
+       AND current_ways.visible=TRUE
        AND #{OSM.sql_for_area(bbox, "current_nodes.")}
     EOF
     return ActiveRecord::Base.connection.select_all(sql).collect { |a| [a['wayid'].to_i,a['version'].to_i] }
   end
        AND #{OSM.sql_for_area(bbox, "current_nodes.")}
     EOF
     return ActiveRecord::Base.connection.select_all(sql).collect { |a| [a['wayid'].to_i,a['version'].to_i] }
   end
-  
+
   def sql_find_pois_in_area(bbox)
     pois=[]
     sql=<<-EOF
   def sql_find_pois_in_area(bbox)
     pois=[]
     sql=<<-EOF
-      SELECT current_nodes.id,current_nodes.latitude*0.0000001 AS lat,current_nodes.longitude*0.0000001 AS lon,current_nodes.version 
-      FROM current_nodes 
-       LEFT OUTER JOIN current_way_nodes cwn ON cwn.node_id=current_nodes.id 
+      SELECT current_nodes.id,current_nodes.latitude*0.0000001 AS lat,current_nodes.longitude*0.0000001 AS lon,current_nodes.version
+      FROM current_nodes
+       LEFT OUTER JOIN current_way_nodes cwn ON cwn.node_id=current_nodes.id
        WHERE current_nodes.visible=TRUE
        AND cwn.id IS NULL
        AND #{OSM.sql_for_area(bbox, "current_nodes.")}
        WHERE current_nodes.visible=TRUE
        AND cwn.id IS NULL
        AND #{OSM.sql_for_area(bbox, "current_nodes.")}
@@ -929,15 +929,15 @@ class AmfController < ApplicationController
     end
     pois
   end
     end
     pois
   end
-  
+
   def sql_find_relations_in_area_and_ways(bbox,way_ids)
     # ** It would be more Potlatchy to get relations for nodes within ways
     #    during 'getway', not here
     sql=<<-EOF
   def sql_find_relations_in_area_and_ways(bbox,way_ids)
     # ** It would be more Potlatchy to get relations for nodes within ways
     #    during 'getway', not here
     sql=<<-EOF
-      SELECT DISTINCT cr.id AS relid,cr.version AS version 
+      SELECT DISTINCT cr.id AS relid,cr.version AS version
       FROM current_relations cr
       FROM current_relations cr
-      INNER JOIN current_relation_members crm ON crm.id=cr.id 
-      INNER JOIN current_nodes cn ON crm.member_id=cn.id AND crm.member_type='Node' 
+      INNER JOIN current_relation_members crm ON crm.id=cr.id
+      INNER JOIN current_nodes cn ON crm.member_id=cn.id AND crm.member_type='Node'
        WHERE #{OSM.sql_for_area(bbox, "cn.")}
       EOF
     unless way_ids.empty?
        WHERE #{OSM.sql_for_area(bbox, "cn.")}
       EOF
     unless way_ids.empty?
@@ -946,20 +946,20 @@ class AmfController < ApplicationController
         SELECT DISTINCT cr.id AS relid,cr.version AS version
         FROM current_relations cr
         INNER JOIN current_relation_members crm ON crm.id=cr.id
         SELECT DISTINCT cr.id AS relid,cr.version AS version
         FROM current_relations cr
         INNER JOIN current_relation_members crm ON crm.id=cr.id
-         WHERE crm.member_type='Way' 
+         WHERE crm.member_type='Way'
          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] }
   end
          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] }
   end
-  
+
   def sql_get_nodes_in_way(wayid)
     points=[]
     sql=<<-EOF
   def sql_get_nodes_in_way(wayid)
     points=[]
     sql=<<-EOF
-      SELECT latitude*0.0000001 AS lat,longitude*0.0000001 AS lon,current_nodes.id,current_nodes.version 
-      FROM current_way_nodes,current_nodes 
-       WHERE current_way_nodes.id=#{wayid.to_i} 
-       AND current_way_nodes.node_id=current_nodes.id 
+      SELECT latitude*0.0000001 AS lat,longitude*0.0000001 AS lon,current_nodes.id,current_nodes.version
+      FROM current_way_nodes,current_nodes
+       WHERE current_way_nodes.id=#{wayid.to_i}
+       AND current_way_nodes.node_id=current_nodes.id
        AND current_nodes.visible=TRUE
       ORDER BY sequence_id
     EOF
        AND current_nodes.visible=TRUE
       ORDER BY sequence_id
     EOF
@@ -973,7 +973,7 @@ class AmfController < ApplicationController
     end
     points
   end
     end
     points
   end
-  
+
   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|
   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|
@@ -990,4 +990,3 @@ class AmfController < ApplicationController
     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
     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 2f630c6..36bb0bf 100644 (file)
@@ -40,7 +40,7 @@ class ApiController < ApplicationController
     root['version'] = '1.0'
     root['creator'] = 'OpenStreetMap.org'
     root['xmlns'] = "http://www.topografix.com/GPX/1/0"
     root['version'] = '1.0'
     root['creator'] = 'OpenStreetMap.org'
     root['xmlns'] = "http://www.topografix.com/GPX/1/0"
-    
+
     doc.root = root
 
     # initialise these variables outside of the loop so that they
     doc.root = root
 
     # initialise these variables outside of the loop so that they
@@ -75,21 +75,21 @@ class ApiController < ApplicationController
           # use the anonymous track segment if the user hasn't allowed
           # their GPX points to be tracked.
           timestamps = false
           # use the anonymous track segment if the user hasn't allowed
           # their GPX points to be tracked.
           timestamps = false
-          if anon_track.nil? 
+          if anon_track.nil?
             anon_track = XML::Node.new 'trk'
             doc.root << anon_track
           end
           track = anon_track
         end
       end
             anon_track = XML::Node.new 'trk'
             doc.root << anon_track
           end
           track = anon_track
         end
       end
-      
+
       if trackid != point.trackid
         if gpx_file.trackable?
           trkseg = XML::Node.new 'trkseg'
           track << trkseg
           trackid = point.trackid
         else
       if trackid != point.trackid
         if gpx_file.trackable?
           trkseg = XML::Node.new 'trkseg'
           track << trkseg
           trackid = point.trackid
         else
-          if anon_trkseg.nil? 
+          if anon_trkseg.nil?
             anon_trkseg = XML::Node.new 'trkseg'
             anon_track << anon_trkseg
           end
             anon_trkseg = XML::Node.new 'trkseg'
             anon_track << anon_trkseg
           end
@@ -105,14 +105,14 @@ class ApiController < ApplicationController
     render :text => doc.to_s, :content_type => "text/xml"
   end
 
     render :text => doc.to_s, :content_type => "text/xml"
   end
 
-  # This is probably the most common call of all. It is used for getting the 
+  # This is probably the most common call of all. It is used for getting the
   # OSM data for a specified bounding box, usually for editing. First the
   # OSM data for a specified bounding box, usually for editing. First the
-  # bounding box (bbox) is checked to make sure that it is sane. All nodes 
+  # bounding box (bbox) is checked to make sure that it is sane. All nodes
   # are searched, then all the ways that reference those nodes are found.
   # All Nodes that are referenced by those ways are fetched and added to the list
   # of nodes.
   # Then all the relations that reference the already found nodes and ways are
   # are searched, then all the ways that reference those nodes are found.
   # All Nodes that are referenced by those ways are fetched and added to the list
   # of nodes.
   # Then all the relations that reference the already found nodes and ways are
-  # fetched. All the nodes and ways that are referenced by those ways are then 
+  # fetched. All the nodes and ways that are referenced by those ways are then
   # fetched. Finally all the xml is returned.
   def map
     # Figure out the bbox
   # fetched. Finally all the xml is returned.
   def map
     # Figure out the bbox
@@ -185,15 +185,15 @@ class ApiController < ApplicationController
         doc.root << way.to_xml_node(visible_nodes, changeset_cache, user_display_name_cache)
         way_ids << way.id
       end
         doc.root << way.to_xml_node(visible_nodes, changeset_cache, user_display_name_cache)
         way_ids << way.id
       end
-    end 
+    end
 
     relations = Relation.nodes(visible_nodes.keys).visible +
                 Relation.ways(way_ids).visible
 
 
     relations = Relation.nodes(visible_nodes.keys).visible +
                 Relation.ways(way_ids).visible
 
-    # we do not normally return the "other" partners referenced by an relation, 
-    # e.g. if we return a way A that is referenced by relation X, and there's 
-    # another way B also referenced, that is not returned. But we do make 
-    # an exception for cases where an relation references another *relation*; 
+    # we do not normally return the "other" partners referenced by an relation,
+    # e.g. if we return a way A that is referenced by relation X, and there's
+    # another way B also referenced, that is not returned. But we do make
+    # an exception for cases where an relation references another *relation*;
     # in that case we return that as well (but we don't go recursive here)
     relations += Relation.relations(relations.collect { |r| r.id }).visible
 
     # in that case we return that as well (but we don't go recursive here)
     relations += Relation.relations(relations.collect { |r| r.id }).visible
 
@@ -254,8 +254,8 @@ class ApiController < ApplicationController
     end
   end
 
     end
   end
 
-  # External apps that use the api are able to query the api to find out some 
-  # parameters of the API. It currently returns: 
+  # External apps that use the api are able to query the api to find out some
+  # parameters of the API. It currently returns:
   # * minimum and maximum API versions that can be used.
   # * maximum area that can be requested in a bbox request in square degrees
   # * number of tracepoints that are returned in each tracepoints page
   # * minimum and maximum API versions that can be used.
   # * maximum area that can be requested in a bbox request in square degrees
   # * number of tracepoints that are returned in each tracepoints page
@@ -290,7 +290,7 @@ class ApiController < ApplicationController
     doc.root << api
     policy = XML::Node.new 'policy'
     blacklist = XML::Node.new 'imagery'
     doc.root << api
     policy = XML::Node.new 'policy'
     blacklist = XML::Node.new 'imagery'
-    IMAGERY_BLACKLIST.each do |url_regex| 
+    IMAGERY_BLACKLIST.each do |url_regex|
       xnd = XML::Node.new 'blacklist'
       xnd['regex'] = url_regex.to_s
       blacklist << xnd
       xnd = XML::Node.new 'blacklist'
       xnd['regex'] = url_regex.to_s
       blacklist << xnd
index bd4a629..c335dca 100644 (file)
@@ -51,8 +51,8 @@ class ApplicationController < ActionController::Base
   end
 
   ##
   end
 
   ##
-  # requires the user to be logged in by the token or HTTP methods, or have an 
-  # OAuth token with the right capability. this method is a bit of a pain to call 
+  # requires the user to be logged in by the token or HTTP methods, or have an
+  # OAuth token with the right capability. this method is a bit of a pain to call
   # directly, since it's cumbersome to call filters with arguments in rails. to
   # make it easier to read and write the code, there are some utility methods
   # below.
   # directly, since it's cumbersome to call filters with arguments in rails. to
   # make it easier to read and write the code, there are some utility methods
   # below.
@@ -161,18 +161,18 @@ class ApplicationController < ActionController::Base
     end
   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
 
     # handle authenticate pass/fail
     unless @user
       # no auth, the user does not exist or the password was wrong
     # make the @user object from any auth sources we have
     setup_user_auth
 
     # handle authenticate pass/fail
     unless @user
       # no auth, the user does not exist or the password was wrong
-      response.headers["WWW-Authenticate"] = "Basic realm=\"#{realm}\"" 
+      response.headers["WWW-Authenticate"] = "Basic realm=\"#{realm}\""
       render :text => errormessage, :status => :unauthorized
       return false
       render :text => errormessage, :status => :unauthorized
       return false
-    end 
-  end 
+    end
+  end
 
   ##
   # to be used as a before_filter *after* authorize. this checks that
 
   ##
   # to be used as a before_filter *after* authorize. this checks that
@@ -180,15 +180,15 @@ class ApplicationController < ActionController::Base
   #
   # NOTE: this isn't a very good way of doing it - it duplicates logic
   # from require_moderator - but what we really need to do is a fairly
   #
   # NOTE: this isn't a very good way of doing it - it duplicates logic
   # from require_moderator - but what we really need to do is a fairly
-  # drastic refactoring based on :format and respond_to? but not a 
+  # drastic refactoring based on :format and respond_to? but not a
   # good idea to do that in this branch.
   # good idea to do that in this branch.
-  def authorize_moderator(errormessage="Access restricted to moderators") 
+  def authorize_moderator(errormessage="Access restricted to moderators")
     # check user is a moderator
     unless @user.moderator?
       render :text => errormessage, :status => :forbidden
       return false
     # check user is a moderator
     unless @user.moderator?
       render :text => errormessage, :status => :forbidden
       return false
-    end 
-  end 
+    end
+  end
 
   def check_database_readable(need_api = false)
     if STATUS == :database_offline or (need_api and STATUS == :api_offline)
 
   def check_database_readable(need_api = false)
     if STATUS == :database_offline or (need_api and STATUS == :api_offline)
@@ -230,7 +230,7 @@ class ApplicationController < ActionController::Base
       :offline
     elsif STATUS == :database_readonly
       :readonly
       :offline
     elsif STATUS == :database_readonly
       :readonly
-    else 
+    else
       :online
     end
   end
       :online
     end
   end
@@ -264,7 +264,7 @@ class ApplicationController < ActionController::Base
 
   # Report and error to the user
   # (If anyone ever fixes Rails so it can set a http status "reason phrase",
 
   # Report and error to the user
   # (If anyone ever fixes Rails so it can set a http status "reason phrase",
-  #  rather than only a status code and having the web engine make up a 
+  #  rather than only a status code and having the web engine make up a
   #  phrase from that, we can also put the error message into the status
   #  message. For now, rails won't let us)
   def report_error(message, status = :bad_request)
   #  phrase from that, we can also put the error message into the status
   #  message. For now, rails won't let us)
   def report_error(message, status = :bad_request)
@@ -283,7 +283,7 @@ class ApplicationController < ActionController::Base
       render :text => message, :status => status, :content_type => "text/plain"
     end
   end
       render :text => message, :status => status, :content_type => "text/plain"
     end
   end
-  
+
   def set_locale
     response.header['Vary'] = 'Accept-Language'
 
   def set_locale
     response.header['Vary'] = 'Accept-Language'
 
@@ -448,23 +448,23 @@ class ApplicationController < ActionController::Base
 
   helper_method :preferred_editor
 
 
   helper_method :preferred_editor
 
-private 
+private
 
   # extract authorisation credentials from headers, returns user = nil if none
 
   # extract authorisation credentials from headers, returns user = nil if none
-  def get_auth_data 
-    if request.env.has_key? 'X-HTTP_AUTHORIZATION'          # where mod_rewrite might have put it 
-      authdata = request.env['X-HTTP_AUTHORIZATION'].to_s.split 
-    elsif request.env.has_key? 'REDIRECT_X_HTTP_AUTHORIZATION'          # mod_fcgi 
-      authdata = request.env['REDIRECT_X_HTTP_AUTHORIZATION'].to_s.split 
+  def get_auth_data
+    if request.env.has_key? 'X-HTTP_AUTHORIZATION'          # where mod_rewrite might have put it
+      authdata = request.env['X-HTTP_AUTHORIZATION'].to_s.split
+    elsif request.env.has_key? 'REDIRECT_X_HTTP_AUTHORIZATION'          # mod_fcgi
+      authdata = request.env['REDIRECT_X_HTTP_AUTHORIZATION'].to_s.split
     elsif request.env.has_key? 'HTTP_AUTHORIZATION'         # regular location
       authdata = request.env['HTTP_AUTHORIZATION'].to_s.split
     elsif request.env.has_key? 'HTTP_AUTHORIZATION'         # regular location
       authdata = request.env['HTTP_AUTHORIZATION'].to_s.split
-    end 
+    end
     # only basic authentication supported
     # only basic authentication supported
-    if authdata and authdata[0] == 'Basic' 
+    if authdata and authdata[0] == 'Basic'
       user, pass = Base64.decode64(authdata[1]).split(':',2)
       user, pass = Base64.decode64(authdata[1]).split(':',2)
-    end 
-    return [user, pass] 
-  end 
+    end
+    return [user, pass]
+  end
 
   # used by oauth plugin to get the current user
   def current_user
 
   # used by oauth plugin to get the current user
   def current_user
index f60957f..d3a474c 100644 (file)
@@ -1,8 +1,8 @@
 class BrowseController < ApplicationController
   layout :map_layout
 
 class BrowseController < ApplicationController
   layout :map_layout
 
-  before_filter :authorize_web  
-  before_filter :set_locale 
+  before_filter :authorize_web
+  before_filter :set_locale
   before_filter :except => [ :query ] { |c| c.check_database_readable(true) }
   before_filter :require_oauth
   around_filter :web_timeout
   before_filter :except => [ :query ] { |c| c.check_database_readable(true) }
   before_filter :require_oauth
   around_filter :web_timeout
index 741ff15..a611c19 100644 (file)
@@ -98,7 +98,7 @@ class DiaryEntryController < ApplicationController
       end
     else
       @entries = DiaryEntry.joins(:user).where(:users => { :status => ["active", "confirmed"] })
       end
     else
       @entries = DiaryEntry.joins(:user).where(:users => { :status => ["active", "confirmed"] })
-      
+
       if params[:language]
         @title = t 'diary_entry.list.in_language_title', :language => Language.find(params[:language]).english_name
         @entries = @entries.where(:language_code => params[:language])
       if params[:language]
         @title = t 'diary_entry.list.in_language_title', :language => Language.find(params[:language]).english_name
         @entries = @entries.where(:language_code => params[:language])
index 1e34bc1..597aa4a 100644 (file)
@@ -35,12 +35,12 @@ class NodeController < ApplicationController
       render :text => "", :status => :gone
     end
   end
       render :text => "", :status => :gone
     end
   end
-  
+
   # Update a node from given XML
   def update
     node = Node.find(params[:id])
     new_node = Node.from_xml(request.raw_post)
   # Update a node from given XML
   def update
     node = Node.find(params[:id])
     new_node = Node.from_xml(request.raw_post)
-       
+
     unless new_node and new_node.id == node.id
       raise OSM::APIBadUserInput.new("The id in the url (#{node.id}) is not the same as provided in the xml (#{new_node.id})")
     end
     unless new_node and new_node.id == node.id
       raise OSM::APIBadUserInput.new("The id in the url (#{node.id}) is not the same as provided in the xml (#{new_node.id})")
     end
@@ -48,13 +48,13 @@ class NodeController < ApplicationController
     render :text => node.version.to_s, :content_type => "text/plain"
   end
 
     render :text => node.version.to_s, :content_type => "text/plain"
   end
 
-  # Delete a node. Doesn't actually delete it, but retains its history 
+  # Delete a node. Doesn't actually delete it, but retains its history
   # in a wiki-like way. We therefore treat it like an update, so the delete
   # method returns the new version number.
   def delete
     node = Node.find(params[:id])
     new_node = Node.from_xml(request.raw_post)
   # in a wiki-like way. We therefore treat it like an update, so the delete
   # method returns the new version number.
   def delete
     node = Node.find(params[:id])
     new_node = Node.from_xml(request.raw_post)
-    
+
     unless new_node and new_node.id == node.id
       raise OSM::APIBadUserInput.new("The id in the url (#{node.id}) is not the same as provided in the xml (#{new_node.id})")
     end
     unless new_node and new_node.id == node.id
       raise OSM::APIBadUserInput.new("The id in the url (#{node.id}) is not the same as provided in the xml (#{new_node.id})")
     end
index 7584daf..e478244 100644 (file)
@@ -146,7 +146,7 @@ class NotesController < ApplicationController
       format.xml { render :action => :show }
       format.json { render :action => :show }
     end
       format.xml { render :action => :show }
       format.json { render :action => :show }
     end
-  end 
+  end
 
   ##
   # Reopen a note
 
   ##
   # Reopen a note
@@ -176,7 +176,7 @@ class NotesController < ApplicationController
       format.xml { render :action => :show }
       format.json { render :action => :show }
     end
       format.xml { render :action => :show }
       format.json { render :action => :show }
     end
-  end 
+  end
 
   ##
   # Get a feed of recent notes and comments
 
   ##
   # Get a feed of recent notes and comments
@@ -278,33 +278,33 @@ class NotesController < ApplicationController
   ##
   # Display a list of notes by a specified user
   def mine
   ##
   # Display a list of notes by a specified user
   def mine
-    if params[:display_name] 
+    if params[:display_name]
       if @this_user = User.active.find_by_display_name(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 
+        @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)
         @description = t 'note.mine.subheading', :user => render_to_string(:partial => "user", :object => @this_user)
-        @page = (params[:page] || 1).to_i 
+        @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
         @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' 
-        @not_found_user = params[:display_name] 
+        @title = t 'user.no_such_user.title'
+        @not_found_user = params[:display_name]
 
 
-        render :template => 'user/no_such_user', :status => :not_found 
-      end 
+        render :template => 'user/no_such_user', :status => :not_found
+      end
     end
   end
 
     end
   end
 
-private 
-  #------------------------------------------------------------ 
-  # utility functions below. 
-  #------------------------------------------------------------   
+private
+  #------------------------------------------------------------
+  # utility functions below.
+  #------------------------------------------------------------
+
   ##
   # Render an OK response
   def render_ok
     if params[:format] == "js"
   ##
   # Render an OK response
   def render_ok
     if params[:format] == "js"
-      render :text => "osbResponse();", :content_type => "text/javascript" 
+      render :text => "osbResponse();", :content_type => "text/javascript"
     else
       render :text => "ok " + @note.id.to_s + "\n", :content_type => "text/plain" if @note
       render :text => "ok\n", :content_type => "text/plain" unless @note
     else
       render :text => "ok " + @note.id.to_s + "\n", :content_type => "text/plain" if @note
       render :text => "ok\n", :content_type => "text/plain" unless @note
@@ -334,7 +334,7 @@ private
     else
       closed_since = 7
     end
     else
       closed_since = 7
     end
-       
+
     if closed_since < 0
       notes = notes.where("status != 'hidden'")
     elsif closed_since > 0
     if closed_since < 0
       notes = notes.where("status != 'hidden'")
     elsif closed_since > 0
@@ -351,9 +351,9 @@ private
   def add_comment(note, text, event, notify = true)
     attributes = { :visible => true, :event => event, :body => text }
 
   def add_comment(note, text, event, notify = true)
     attributes = { :visible => true, :event => event, :body => text }
 
-    if @user  
+    if @user
       attributes[:author_id] = @user.id
       attributes[:author_id] = @user.id
-    else  
+    else
       attributes[:author_ip] = request.remote_ip
     end
 
       attributes[:author_ip] = request.remote_ip
     end
 
index a542a9b..82669f5 100644 (file)
@@ -18,12 +18,12 @@ class OldController < ApplicationController
 
   def history
     # the .where() method used in the lookup_old_element_versions
 
   def history
     # the .where() method used in the lookup_old_element_versions
-    # call won't throw an error if no records are found, so we have 
+    # call won't throw an error if no records are found, so we have
     # to do that ourselves.
     raise OSM::APINotFoundError.new if @elements.empty?
 
     doc = OSM::API.new.get_xml_doc
     # to do that ourselves.
     raise OSM::APINotFoundError.new if @elements.empty?
 
     doc = OSM::API.new.get_xml_doc
-    
+
     visible_elements = if show_redactions?
                          @elements
                        else
     visible_elements = if show_redactions?
                          @elements
                        else
@@ -33,20 +33,20 @@ class OldController < ApplicationController
     visible_elements.each do |element|
       doc.root << element.to_xml_node
     end
     visible_elements.each do |element|
       doc.root << element.to_xml_node
     end
-    
+
     render :text => doc.to_s, :content_type => "text/xml"
   end
     render :text => doc.to_s, :content_type => "text/xml"
   end
-  
+
   def version
     if @old_element.redacted? and not show_redactions?
       render :text => "", :status => :forbidden
 
     else
       response.last_modified = @old_element.timestamp
   def version
     if @old_element.redacted? and not show_redactions?
       render :text => "", :status => :forbidden
 
     else
       response.last_modified = @old_element.timestamp
-      
+
       doc = OSM::API.new.get_xml_doc
       doc.root << @old_element.to_xml_node
       doc = OSM::API.new.get_xml_doc
       doc.root << @old_element.to_xml_node
-        
+
       render :text => doc.to_s, :content_type => "text/xml"
     end
   end
       render :text => doc.to_s, :content_type => "text/xml"
     end
   end
@@ -58,19 +58,19 @@ class OldController < ApplicationController
       # be redacted in that redaction.
       redaction = Redaction.find(redaction_id.to_i)
       @old_element.redact!(redaction)
       # be redacted in that redaction.
       redaction = Redaction.find(redaction_id.to_i)
       @old_element.redact!(redaction)
-      
+
     else
       # if no redaction ID was provided, then this is an unredact
       # operation.
       @old_element.redact!(nil)
     end
     else
       # if no redaction ID was provided, then this is an unredact
       # operation.
       @old_element.redact!(nil)
     end
-    
+
     # just return an empty 200 OK for success
     render :text => ""
   end
 
   private
     # just return an empty 200 OK for success
     render :text => ""
   end
 
   private
-  
+
   def show_redactions?
     @user and @user.moderator? and params[:show_redactions] == "true"
   end
   def show_redactions?
     @user and @user.moderator? and params[:show_redactions] == "true"
   end
index 16f3301..75be576 100644 (file)
@@ -1,7 +1,7 @@
 class OldNodeController < OldController
 
   private
 class OldNodeController < OldController
 
   private
-  
+
   def lookup_old_element
     @old_element = OldNode.find([params[:id], params[:version]])
   end
   def lookup_old_element
     @old_element = OldNode.find([params[:id], params[:version]])
   end
index 0cb3b27..abf3745 100644 (file)
@@ -1,7 +1,7 @@
 class OldRelationController < OldController
 
   private
 class OldRelationController < OldController
 
   private
-  
+
   def lookup_old_element
     @old_element = OldRelation.find([params[:id], params[:version]])
   end
   def lookup_old_element
     @old_element = OldRelation.find([params[:id], params[:version]])
   end
index f6f2823..64fe5b6 100644 (file)
@@ -1,7 +1,7 @@
 class OldWayController < OldController
 
   private
 class OldWayController < OldController
 
   private
-  
+
   def lookup_old_element
     @old_element = OldWay.find([params[:id], params[:version]])
   end
   def lookup_old_element
     @old_element = OldWay.find([params[:id], params[:version]])
   end
index d0f9027..6dbe539 100644 (file)
@@ -1,6 +1,6 @@
 class RedactionsController < ApplicationController
   layout 'site'
 class RedactionsController < ApplicationController
   layout 'site'
-  
+
   before_filter :authorize_web
   before_filter :set_locale
   before_filter :require_user, :only => [:new, :create, :edit, :update, :destroy]
   before_filter :authorize_web
   before_filter :set_locale
   before_filter :require_user, :only => [:new, :create, :edit, :update, :destroy]
@@ -16,7 +16,7 @@ class RedactionsController < ApplicationController
   def new
     @redaction = Redaction.new
   end
   def new
     @redaction = Redaction.new
   end
-     
+
   def create
     @redaction = Redaction.new
     @redaction.user = @user
   def create
     @redaction = Redaction.new
     @redaction.user = @user
@@ -31,13 +31,13 @@ class RedactionsController < ApplicationController
       render :action => 'new'
     end
   end
       render :action => 'new'
     end
   end
-     
+
   def show
   end
   def show
   end
-  
+
   def edit
   end
   def edit
   end
-     
+
   def update
     # note - don't update the user ID
     @redaction.title = params[:redaction][:title]
   def update
     # note - don't update the user ID
     @redaction.title = params[:redaction][:title]
@@ -50,7 +50,7 @@ class RedactionsController < ApplicationController
       render :action => 'edit'
     end
   end
       render :action => 'edit'
     end
   end
-     
+
   def destroy
     unless @redaction.old_nodes.empty? and
         @redaction.old_ways.empty? and
   def destroy
     unless @redaction.old_nodes.empty? and
         @redaction.old_ways.empty? and
index 9e7466a..454e0ef 100644 (file)
@@ -14,8 +14,8 @@ class RelationController < ApplicationController
     assert_method :put
 
     relation = Relation.from_xml(request.raw_post, true)
     assert_method :put
 
     relation = Relation.from_xml(request.raw_post, true)
-    
-    # We assume that an exception has been thrown if there was an error 
+
+    # We assume that an exception has been thrown if there was an error
     # generating the relation
     #if relation
     relation.create_with_history @user
     # generating the relation
     #if relation
     relation.create_with_history @user
@@ -40,7 +40,7 @@ class RelationController < ApplicationController
 
     relation = Relation.find(params[:id])
     new_relation = Relation.from_xml(request.raw_post)
 
     relation = Relation.find(params[:id])
     new_relation = Relation.from_xml(request.raw_post)
-    
+
     if new_relation and new_relation.id == relation.id
       relation.update_from new_relation, @user
       render :text => relation.version.to_s, :content_type => "text/plain"
     if new_relation and new_relation.id == relation.id
       relation.update_from new_relation, @user
       render :text => relation.version.to_s, :content_type => "text/plain"
@@ -62,7 +62,7 @@ class RelationController < ApplicationController
 
   # -----------------------------------------------------------------
   # full
 
   # -----------------------------------------------------------------
   # full
-  # 
+  #
   # input parameters: id
   #
   # returns XML representation of one relation object plus all its
   # input parameters: id
   #
   # returns XML representation of one relation object plus all its
@@ -70,37 +70,37 @@ class RelationController < ApplicationController
   # -----------------------------------------------------------------
   def full
     relation = Relation.find(params[:id])
   # -----------------------------------------------------------------
   def full
     relation = Relation.find(params[:id])
-    
+
     if relation.visible
     if relation.visible
-      
+
       # first find the ids of nodes, ways and relations referenced by this
       # relation - note that we exclude this relation just in case.
       # 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' and 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' and m[1] != relation.id }.map { |m| m[1] }
-      
+
       # next load the relations and the ways.
       # next load the relations and the ways.
-      
+
       relations = Relation.where(:id => relation_ids).includes(:relation_tags)
       ways = Way.where(:id => way_ids).includes(:way_nodes, :way_tags)
       relations = Relation.where(:id => relation_ids).includes(:relation_tags)
       ways = Way.where(:id => way_ids).includes(:way_nodes, :way_tags)
-      
-      # now additionally collect nodes referenced by ways. Note how we 
+
+      # now additionally collect nodes referenced by ways. Note how we
       # recursively evaluate ways but NOT relations.
       # recursively evaluate ways but NOT relations.
-      
+
       way_node_ids = ways.collect { |way|
         way.way_nodes.collect { |way_node| way_node.node_id }
       }
       node_ids += way_node_ids.flatten
       nodes = Node.where(:id => node_ids.uniq).includes(:node_tags)
       way_node_ids = ways.collect { |way|
         way.way_nodes.collect { |way_node| way_node.node_id }
       }
       node_ids += way_node_ids.flatten
       nodes = Node.where(:id => node_ids.uniq).includes(:node_tags)
-      
+
       # create XML.
       doc = OSM::API.new.get_xml_doc
       visible_nodes = {}
       visible_members = { "Node" => {}, "Way" => {}, "Relation" => {} }
       changeset_cache = {}
       user_display_name_cache = {}
       # create XML.
       doc = OSM::API.new.get_xml_doc
       visible_nodes = {}
       visible_members = { "Node" => {}, "Way" => {}, "Relation" => {} }
       changeset_cache = {}
       user_display_name_cache = {}
-      
+
       nodes.each do |node|
         if node.visible? # should be unnecessary if data is consistent.
           doc.root << node.to_xml_node(changeset_cache, user_display_name_cache)
       nodes.each do |node|
         if node.visible? # should be unnecessary if data is consistent.
           doc.root << node.to_xml_node(changeset_cache, user_display_name_cache)
@@ -123,7 +123,7 @@ class RelationController < ApplicationController
       # finally add self and output
       doc.root << relation.to_xml_node(visible_members, changeset_cache, user_display_name_cache)
       render :text => doc.to_s, :content_type => "text/xml"
       # finally add self and output
       doc.root << relation.to_xml_node(visible_members, changeset_cache, user_display_name_cache)
       render :text => doc.to_s, :content_type => "text/xml"
-      
+
     else
       render :text => "", :status => :gone
     end
     else
       render :text => "", :status => :gone
     end
index 5097aa8..02e43a8 100644 (file)
@@ -10,23 +10,23 @@ class SwfController < ApplicationController
 
        # ====================================================================
        # Public methods
 
        # ====================================================================
        # Public methods
-       
+
        # ---- trackpoints      compile SWF of trackpoints
 
        # ---- trackpoints      compile SWF of trackpoints
 
-       def trackpoints 
-       
+       def trackpoints
+
                # -     Initialise
                # -     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
                # -     Begin movie
-       
+
                bounds_left  =0
                bounds_right =320*20
                bounds_bottom=0
                bounds_left  =0
                bounds_right =320*20
                bounds_bottom=0
@@ -38,13 +38,13 @@ class SwfController < ApplicationController
                absy=0
                xl=yb= 9999999
                xr=yt=-9999999
                absy=0
                xl=yb= 9999999
                xr=yt=-9999999
-       
+
                # -     Send SQL for GPS tracks
                # -     Send SQL for GPS tracks
-       
+
                b=''
                lasttime=0
                lasttrack=lastfile='-1'
                b=''
                lasttime=0
                lasttrack=lastfile='-1'
-       
+
                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,"+
                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,"+
@@ -66,9 +66,9 @@ class SwfController < ApplicationController
                                 "LIMIT 10000 OFFSET #{start}"
                end
                gpslist=ActiveRecord::Base.connection.select_all sql
                                 "LIMIT 10000 OFFSET #{start}"
                end
                gpslist=ActiveRecord::Base.connection.select_all sql
-       
+
                # - Draw GPS trace lines
                # - Draw GPS trace lines
-       
+
                r=startShape()
                gpslist.each do |row|
                        xs=(long2coord(row['lon'].to_f,baselong,masterscale)*20).floor
                r=startShape()
                gpslist.each do |row|
                        xs=(long2coord(row['lon'].to_f,baselong,masterscale)*20).floor
@@ -88,24 +88,24 @@ class SwfController < ApplicationController
                                r+=[b.slice!(0...80)].pack("B*")
                        end
                end
                                r+=[b.slice!(0...80)].pack("B*")
                        end
                end
-               
+
                #   (Unwayed segments removed)
                #   (Unwayed segments removed)
-       
+
                # - Write shape
                # - Write shape
-       
+
                b+=endShape()
                r+=[b].pack("B*")
                m+=swfRecord(2,packUI16(1) + packRect(xl,xr,yb,yt) + r)
                m+=swfRecord(4,packUI16(1) + packUI16(1))
                b+=endShape()
                r+=[b].pack("B*")
                m+=swfRecord(2,packUI16(1) + packRect(xl,xr,yb,yt) + r)
                m+=swfRecord(4,packUI16(1) + packUI16(1))
-               
+
                # -     Create Flash header and write to browser
                # -     Create Flash header and write to browser
-       
+
                m+=swfRecord(1,'')                                                                      # Show frame
                m+=swfRecord(0,'')                                                                      # End
                m+=swfRecord(1,'')                                                                      # Show frame
                m+=swfRecord(0,'')                                                                      # End
-               
+
                m=packRect(bounds_left,bounds_right,bounds_bottom,bounds_top) + 0.chr + 12.chr + packUI16(1) + m
                m='FWS' + 6.chr + packUI32(m.length+8) + m
                m=packRect(bounds_left,bounds_right,bounds_bottom,bounds_top) + 0.chr + 12.chr + packUI16(1) + m
                m='FWS' + 6.chr + packUI32(m.length+8) + m
-       
+
                render :text => m, :content_type => "application/x-shockwave-flash"
        end
 
                render :text => m, :content_type => "application/x-shockwave-flash"
        end
 
@@ -113,7 +113,7 @@ class SwfController < ApplicationController
 
        # =======================================================================
        # SWF functions
 
        # =======================================================================
        # SWF functions
-       
+
        # -----------------------------------------------------------------------
        # Line-drawing
 
        # -----------------------------------------------------------------------
        # Line-drawing
 
@@ -125,18 +125,18 @@ class SwfController < ApplicationController
                s+=34.chr                                                                               # 2 fill, 2 line index bits
                s
        end
                s+=34.chr                                                                               # 2 fill, 2 line index bits
                s
        end
-       
+
        def endShape
                '000000'
        end
        def endShape
                '000000'
        end
-       
+
        def startAndMove(x,y,col)
                d='001001'                                                                              # Line style change, moveTo
                l =[lengthSB(x),lengthSB(y)].max
                d+=sprintf("%05b%0#{l}b%0#{l}b",l,x,y)
                d+=col                                                                                  # Select line style
        end
        def startAndMove(x,y,col)
                d='001001'                                                                              # Line style change, moveTo
                l =[lengthSB(x),lengthSB(y)].max
                d+=sprintf("%05b%0#{l}b%0#{l}b",l,x,y)
                d+=col                                                                                  # Select line style
        end
-       
+
        def drawTo(absx,absy,x,y)
                dx=x-absx
                dy=y-absy
        def drawTo(absx,absy,x,y)
                dx=x-absx
                dy=y-absy
@@ -154,7 +154,7 @@ class SwfController < ApplicationController
     end
     d
        end
     end
     d
        end
-       
+
        def drawSection(x1,y1,x2,y2)
                d='11'                                                                                  # TypeFlag, EdgeFlag
          dx=x2-x1
        def drawSection(x1,y1,x2,y2)
                d='11'                                                                                  # TypeFlag, EdgeFlag
          dx=x2-x1
@@ -195,33 +195,33 @@ class SwfController < ApplicationController
 
        # -----------------------------------------------------------------------
        # Generic pack functions
 
        # -----------------------------------------------------------------------
        # Generic pack functions
-       
+
        def packUI16(n)
                [n.floor].pack("v")
        end
        def packUI16(n)
                [n.floor].pack("v")
        end
-       
+
        def packUI32(n)
                [n.floor].pack("V")
        end
        def packUI32(n)
                [n.floor].pack("V")
        end
-       
+
        # Find number of bits required to store arbitrary-length binary
        # Find number of bits required to store arbitrary-length binary
-       
+
        def lengthSB(n)
                Math.frexp(n+ (n==0?1:0) )[1]+1
        end
        def lengthSB(n)
                Math.frexp(n+ (n==0?1:0) )[1]+1
        end
-       
+
        # ====================================================================
        # Co-ordinate conversion
        # (this is duplicated from amf_controller, should probably share)
        # ====================================================================
        # Co-ordinate conversion
        # (this is duplicated from amf_controller, should probably share)
-       
+
        def lat2coord(a,basey,masterscale)
                -(lat2y(a)-basey)*masterscale
        end
        def lat2coord(a,basey,masterscale)
                -(lat2y(a)-basey)*masterscale
        end
-       
+
        def long2coord(a,baselong,masterscale)
                (a-baselong)*masterscale
        end
        def long2coord(a,baselong,masterscale)
                (a-baselong)*masterscale
        end
-       
+
        def lat2y(a)
                180/Math::PI * Math.log(Math.tan(Math::PI/4+a*(Math::PI/180)/2))
        end
        def lat2y(a)
                180/Math::PI * Math.log(Math.tan(Math::PI/4+a*(Math::PI/180)/2))
        end
index 2284174..f530eec 100644 (file)
@@ -34,7 +34,7 @@ class UserBlocksController < ApplicationController
   end
 
   def create
   end
 
   def create
-    if @valid_params 
+    if @valid_params
       @user_block = UserBlock.new(
         :user_id => @this_user.id,
         :creator_id => @user.id,
       @user_block = UserBlock.new(
         :user_id => @this_user.id,
         :creator_id => @user.id,
@@ -42,7 +42,7 @@ class UserBlocksController < ApplicationController
         :ends_at => Time.now.getutc() + @block_period.hours,
         :needs_view => params[:user_block][:needs_view]
       )
         :ends_at => Time.now.getutc() + @block_period.hours,
         :needs_view => params[:user_block][:needs_view]
       )
-    
+
       if @user_block.save
         flash[:notice] = t('user_block.create.flash', :name => @this_user.display_name)
         redirect_to @user_block
       if @user_block.save
         flash[:notice] = t('user_block.create.flash', :name => @this_user.display_name)
         redirect_to @user_block
@@ -54,8 +54,8 @@ class UserBlocksController < ApplicationController
     end
   end
 
     end
   end
 
-  def update  
-    if @valid_params 
+  def update
+    if @valid_params
       if @user_block.creator_id != @user.id
         flash[:error] = t('user_block.update.only_creator_can_edit')
         redirect_to :action => "edit"
       if @user_block.creator_id != @user.id
         flash[:error] = t('user_block.update.only_creator_can_edit')
         redirect_to :action => "edit"
@@ -125,10 +125,10 @@ class UserBlocksController < ApplicationController
 
     if !UserBlock::PERIODS.include?(@block_period)
       flash[:error] = t('user_block.filter.block_period')
 
     if !UserBlock::PERIODS.include?(@block_period)
       flash[:error] = t('user_block.filter.block_period')
-      
+
     elsif @user_block and !@user_block.active?
       flash[:error] = t('user_block.filter.block_expired')
     elsif @user_block and !@user_block.active?
       flash[:error] = t('user_block.filter.block_expired')
-      
+
     else
       @valid_params = true
     end
     else
       @valid_params = true
     end
index a3face3..7d6fc8e 100644 (file)
@@ -70,7 +70,7 @@ class UserPreferenceController < ApplicationController
   def update_one
     begin
       pref = UserPreference.find([@user.id, params[:preference_key]])
   def update_one
     begin
       pref = UserPreference.find([@user.id, params[:preference_key]])
-    rescue ActiveRecord::RecordNotFound 
+    rescue ActiveRecord::RecordNotFound
       pref = UserPreference.new
       pref.user = @user
       pref.k = params[:preference_key]
       pref = UserPreference.new
       pref.user = @user
       pref.k = params[:preference_key]
index 8f623a0..2c83971 100644 (file)
@@ -31,7 +31,7 @@ class UserRolesController < ApplicationController
   end
 
   ##
   end
 
   ##
-  # require that the given role is valid. the role is a URL 
+  # require that the given role is valid. the role is a URL
   # parameter, so should always be present.
   def require_valid_role
     @role = params[:role]
   # parameter, so should always be present.
   def require_valid_role
     @role = params[:role]
index 2ce49b7..3291ce8 100644 (file)
@@ -14,7 +14,7 @@ class WayController < ApplicationController
     assert_method :put
 
     way = Way.from_xml(request.raw_post, true)
     assert_method :put
 
     way = Way.from_xml(request.raw_post, true)
-    
+
     if way
       way.create_with_history @user
       render :text => way.id.to_s, :content_type => "text/plain"
     if way
       way.create_with_history @user
       render :text => way.id.to_s, :content_type => "text/plain"
@@ -25,9 +25,9 @@ class WayController < ApplicationController
 
   def read
     way = Way.find(params[:id])
 
   def read
     way = Way.find(params[:id])
-    
+
     response.last_modified = way.timestamp
     response.last_modified = way.timestamp
-    
+
     if way.visible
       render :text => way.to_xml.to_s, :content_type => "text/xml"
     else
     if way.visible
       render :text => way.to_xml.to_s, :content_type => "text/xml"
     else
@@ -38,7 +38,7 @@ class WayController < ApplicationController
   def update
     way = Way.find(params[:id])
     new_way = Way.from_xml(request.raw_post)
   def update
     way = Way.find(params[:id])
     new_way = Way.from_xml(request.raw_post)
-    
+
     if new_way and new_way.id == way.id
       way.update_from(new_way, @user)
       render :text => way.version.to_s, :content_type => "text/plain"
     if new_way and new_way.id == way.id
       way.update_from(new_way, @user)
       render :text => way.version.to_s, :content_type => "text/plain"
@@ -51,7 +51,7 @@ class WayController < ApplicationController
   def delete
     way = Way.find(params[:id])
     new_way = Way.from_xml(request.raw_post)
   def delete
     way = Way.find(params[:id])
     new_way = Way.from_xml(request.raw_post)
-    
+
     if new_way and new_way.id == way.id
       way.delete_with_history!(new_way, @user)
       render :text => way.version.to_s, :content_type => "text/plain"
     if new_way and new_way.id == way.id
       way.delete_with_history!(new_way, @user)
       render :text => way.version.to_s, :content_type => "text/plain"
@@ -62,7 +62,7 @@ class WayController < ApplicationController
 
   def full
     way = Way.includes(:nodes => :node_tags).find(params[:id])
 
   def full
     way = Way.includes(:nodes => :node_tags).find(params[:id])
-    
+
     if way.visible
       visible_nodes = {}
       changeset_cache = {}
     if way.visible
       visible_nodes = {}
       changeset_cache = {}
@@ -76,7 +76,7 @@ class WayController < ApplicationController
         end
       end
       doc.root << way.to_xml_node(visible_nodes, changeset_cache, user_display_name_cache)
         end
       end
       doc.root << way.to_xml_node(visible_nodes, changeset_cache, user_display_name_cache)
-      
+
       render :text => doc.to_s, :content_type => "text/xml"
     else
       render :text => "", :status => :gone
       render :text => doc.to_s, :content_type => "text/xml"
     else
       render :text => "", :status => :gone
@@ -104,7 +104,7 @@ class WayController < ApplicationController
   end
 
   ##
   end
 
   ##
-  # returns all the ways which are currently using the node given in the 
+  # returns all the ways which are currently using the node given in the
   # :id parameter. note that this used to return deleted ways as well, but
   # this seemed not to be the expected behaviour, so it was removed.
   def ways_for_node
   # :id parameter. note that this used to return deleted ways as well, but
   # this seemed not to be the expected behaviour, so it was removed.
   def ways_for_node
index 3cd9373..f645d36 100644 (file)
@@ -1,6 +1,6 @@
 module UserBlocksHelper
   ##
 module UserBlocksHelper
   ##
-  # returns a translated string representing the status of the 
+  # returns a translated string representing the status of the
   # user block (i.e: whether it's active, what the expiry time is)
   def block_status(block)
     if block.active?
   # user block (i.e: whether it's active, what the expiry time is)
   def block_status(block)
     if block.active?
@@ -11,7 +11,7 @@ module UserBlocksHelper
       end
     else
       # the max of the last update time or the ends_at time is when this block finished
       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 
+      # 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))
       # 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))
index 369efca..37fbf86 100644 (file)
@@ -18,7 +18,7 @@ module UserRolesHelper
         url = grant_role_path(:display_name => user.display_name, :role => role)
         confirm = t("user_role.grant.are_you_sure", :name => user.display_name, :role => role)
       end
         url = grant_role_path(:display_name => user.display_name, :role => role)
         confirm = t("user_role.grant.are_you_sure", :name => user.display_name, :role => role)
       end
-    elsif user.has_role?(role) 
+    elsif user.has_role?(role)
       image = "roles/#{role}.png"
       alt = t("user.view.role.#{role}")
       title = t("user.view.role.#{role}")
       image = "roles/#{role}.png"
       alt = t("user.view.role.#{role}")
       title = t("user.view.role.#{role}")
index 3aa6f9d..6e48c99 100644 (file)
@@ -7,9 +7,9 @@ class AccessToken < OauthToken
   validates_presence_of :user, :secret
 
   before_create :set_authorized_at
   validates_presence_of :user, :secret
 
   before_create :set_authorized_at
-  
-protected 
-  
+
+protected
+
   def set_authorized_at
     self.authorized_at = Time.now
   end
   def set_authorized_at
     self.authorized_at = Time.now
   end
index ab6e05c..926e82a 100644 (file)
@@ -11,7 +11,7 @@ class Changeset < ActiveRecord::Base
   has_many :old_nodes
   has_many :old_ways
   has_many :old_relations
   has_many :old_nodes
   has_many :old_ways
   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_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'
 
@@ -107,7 +107,7 @@ class Changeset < ActiveRecord::Base
   # suggested on the wiki page by kleptog.
   def update_bbox!(bbox_update)
     bbox.expand!(bbox_update, EXPAND)
   # suggested on the wiki page by kleptog.
   def update_bbox!(bbox_update)
     bbox.expand!(bbox_update, EXPAND)
-      
+
     # update active record. rails 2.1's dirty handling should take care of
     # whether this object needs saving or not.
     self.min_lon, self.min_lat, self.max_lon, self.max_lat = @bbox.to_a if bbox.complete?
     # update active record. rails 2.1's dirty handling should take care of
     # whether this object needs saving or not.
     self.min_lon, self.min_lat, self.max_lon, self.max_lat = @bbox.to_a if bbox.complete?
index a010674..1f037d6 100644 (file)
@@ -9,7 +9,7 @@ class ChangesetComment < ActiveRecord::Base
   validates_presence_of :author
   validates_associated :author
   validates :visible, :inclusion => { :in => [true,false] }
   validates_presence_of :author
   validates_associated :author
   validates :visible, :inclusion => { :in => [true,false] }
-  
+
   # Return the comment text
   def body
     RichText.new("text", read_attribute(:body))
   # Return the comment text
   def body
     RichText.new("text", read_attribute(:body))
index ff031d6..fd38262 100644 (file)
@@ -16,7 +16,7 @@ class ClientApplication < ActiveRecord::Base
   before_validation :generate_keys, :on => :create
 
   attr_accessor :token_callback_url
   before_validation :generate_keys, :on => :create
 
   attr_accessor :token_callback_url
-  
+
   def self.find_token(token_key)
     token = OauthToken.find_by_token(token_key, :include => :client_application)
     if token && token.authorized?
   def self.find_token(token_key)
     token = OauthToken.find_by_token(token_key, :include => :client_application)
     if token && token.authorized?
@@ -36,7 +36,7 @@ class ClientApplication < ActiveRecord::Base
       false
     end
   end
       false
     end
   end
-  
+
   def self.all_permissions
     PERMISSIONS
   end
   def self.all_permissions
     PERMISSIONS
   end
@@ -44,11 +44,11 @@ class ClientApplication < ActiveRecord::Base
   def oauth_server
     @oauth_server ||= OAuth::Server.new("http://" + SERVER_URL)
   end
   def oauth_server
     @oauth_server ||= OAuth::Server.new("http://" + SERVER_URL)
   end
-  
+
   def credentials
     @oauth_client ||= OAuth::Consumer.new(key, secret)
   end
   def credentials
     @oauth_client ||= OAuth::Consumer.new(key, secret)
   end
-    
+
   def create_request_token(params={})
     params = { :client_application => self, :callback_url => self.token_callback_url }
     permissions.each do |p|
   def create_request_token(params={})
     params = { :client_application => self, :callback_url => self.token_callback_url }
     permissions.each do |p|
@@ -67,7 +67,7 @@ class ClientApplication < ActiveRecord::Base
 
       token = access_tokens.create(params)
     end
 
       token = access_tokens.create(params)
     end
-    
+
     token
   end
 
     token
   end
 
@@ -77,7 +77,7 @@ class ClientApplication < ActiveRecord::Base
   end
 
 protected
   end
 
 protected
-  
+
   # this is the set of permissions that the client can ask for. clients
   # have to say up-front what permissions they want and when users sign up they
   # can agree or not agree to each of them.
   # this is the set of permissions that the client can ask for. clients
   # have to say up-front what permissions they want and when users sign up they
   # can agree or not agree to each of them.
index 3a63176..fdcb7ba 100644 (file)
@@ -23,5 +23,5 @@ class Language < ActiveRecord::Base
     name = english_name
     name += " (#{native_name})" unless native_name.nil?
     name
     name = english_name
     name += " (#{native_name})" unless native_name.nil?
     name
-  end  
+  end
 end
 end
index 09f494b..755dc82 100644 (file)
@@ -16,7 +16,7 @@ class Node < ActiveRecord::Base
   has_many :ways, :through => :way_nodes
 
   has_many :node_tags
   has_many :ways, :through => :way_nodes
 
   has_many :node_tags
-  
+
   has_many :old_way_nodes
   has_many :ways_via_history, :class_name=> "Way", :through => :old_way_nodes, :source => :way
 
   has_many :old_way_nodes
   has_many :ways_via_history, :class_name=> "Way", :through => :old_way_nodes, :source => :way
 
@@ -57,7 +57,7 @@ class Node < ActiveRecord::Base
 
   def self.from_xml_node(pt, create=false)
     node = Node.new
 
   def self.from_xml_node(pt, create=false)
     node = Node.new
-    
+
     raise OSM::APIBadXMLError.new("node", pt, "lat missing") if pt['lat'].nil?
     raise 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")
     raise OSM::APIBadXMLError.new("node", pt, "lat missing") if pt['lat'].nil?
     raise 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")
@@ -74,7 +74,7 @@ class Node < ActiveRecord::Base
     unless create
       raise OSM::APIBadXMLError.new("node", pt, "ID is required when updating.") if pt['id'].nil?
       node.id = pt['id'].to_i
     unless create
       raise 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. 
+      # .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
       raise OSM::APIBadUserInput.new("ID of node cannot be zero when updating.") if node.id == 0
     end
       # We want to make sure that there is no id with zero anyway
       raise OSM::APIBadUserInput.new("ID of node cannot be zero when updating.") if node.id == 0
     end
@@ -110,7 +110,7 @@ class Node < ActiveRecord::Base
       raise OSM::APIAlreadyDeletedError.new("node", new_node.id)
     end
 
       raise OSM::APIAlreadyDeletedError.new("node", new_node.id)
     end
 
-    # need to start the transaction here, so that the database can 
+    # need to start the transaction here, so that the database can
     # provide repeatable reads for the used-by checks. this means it
     # shouldn't be possible to get race conditions.
     Node.transaction do
     # provide repeatable reads for the used-by checks. this means it
     # shouldn't be possible to get race conditions.
     Node.transaction do
@@ -118,17 +118,17 @@ class Node < ActiveRecord::Base
       check_consistency(self, new_node, user)
       ways = Way.joins(:way_nodes).where(:visible => true, :current_way_nodes => { :node_id => id }).order(:id)
       raise OSM::APIPreconditionFailedError.new("Node #{self.id} is still used by ways #{ways.collect { |w| w.id }.join(",")}.") unless ways.empty?
       check_consistency(self, new_node, user)
       ways = Way.joins(:way_nodes).where(:visible => true, :current_way_nodes => { :node_id => id }).order(:id)
       raise OSM::APIPreconditionFailedError.new("Node #{self.id} is still used by ways #{ways.collect { |w| w.id }.join(",")}.") unless ways.empty?
-      
+
       rels = Relation.joins(:relation_members).where(:visible => true, :current_relation_members => { :member_type => "Node", :member_id => id }).order(:id)
       raise OSM::APIPreconditionFailedError.new("Node #{self.id} is still used by relations #{rels.collect { |r| r.id }.join(",")}.") unless rels.empty?
 
       self.changeset_id = new_node.changeset_id
       self.tags = {}
       self.visible = false
       rels = Relation.joins(:relation_members).where(:visible => true, :current_relation_members => { :member_type => "Node", :member_id => id }).order(:id)
       raise OSM::APIPreconditionFailedError.new("Node #{self.id} is still used by relations #{rels.collect { |r| r.id }.join(",")}.") unless rels.empty?
 
       self.changeset_id = new_node.changeset_id
       self.tags = {}
       self.visible = false
-      
+
       # update the changeset with the deleted position
       changeset.update_bbox!(bbox)
       # update the changeset with the deleted position
       changeset.update_bbox!(bbox)
-      
+
       save_with_history!
     end
   end
       save_with_history!
     end
   end
@@ -137,27 +137,27 @@ class Node < ActiveRecord::Base
     Node.transaction do
       self.lock!
       check_consistency(self, new_node, user)
     Node.transaction do
       self.lock!
       check_consistency(self, new_node, user)
-      
+
       # update changeset first
       self.changeset_id = new_node.changeset_id
       self.changeset = new_node.changeset
       # update changeset first
       self.changeset_id = new_node.changeset_id
       self.changeset = new_node.changeset
-      
+
       # update changeset bbox with *old* position first
       changeset.update_bbox!(bbox);
       # update changeset bbox with *old* position first
       changeset.update_bbox!(bbox);
-      
+
       # FIXME logic needs to be double checked
       # FIXME logic needs to be double checked
-      self.latitude = new_node.latitude 
+      self.latitude = new_node.latitude
       self.longitude = new_node.longitude
       self.tags = new_node.tags
       self.visible = true
       self.longitude = new_node.longitude
       self.tags = new_node.tags
       self.visible = true
-      
+
       # update changeset bbox with *new* position
       changeset.update_bbox!(bbox);
       # update changeset bbox with *new* position
       changeset.update_bbox!(bbox);
-      
+
       save_with_history!
     end
   end
       save_with_history!
     end
   end
-  
+
   def create_with_history(user)
     check_create_consistency(self, user)
     self.version = 0
   def create_with_history(user)
     check_create_consistency(self, user)
     self.version = 0
@@ -200,8 +200,8 @@ class Node < ActiveRecord::Base
   end
 
   def tags=(t)
   end
 
   def tags=(t)
-    @tags = t 
-  end 
+    @tags = t
+  end
 
   def add_tag_key_val(k,v)
     @tags = Hash.new unless @tags
 
   def add_tag_key_val(k,v)
     @tags = Hash.new unless @tags
@@ -226,7 +226,7 @@ class Node < ActiveRecord::Base
   def fix_placeholders!(id_map, placeholder_id = nil)
     # nodes don't refer to anything, so there is nothing to do here
   end
   def fix_placeholders!(id_map, placeholder_id = nil)
     # nodes don't refer to anything, so there is nothing to do here
   end
-  
+
   private
 
   def save_with_history!
   private
 
   def save_with_history!
@@ -242,10 +242,10 @@ class Node < ActiveRecord::Base
       tags.each do |k,v|
         tag = NodeTag.new
         tag.node_id = self.id
       tags.each do |k,v|
         tag = NodeTag.new
         tag.node_id = self.id
-        tag.k = k 
-        tag.v = v 
+        tag.k = k
+        tag.v = v
         tag.save!
         tag.save!
-      end 
+      end
 
       # Create an OldNode
       old_node = OldNode.from_node(self)
 
       # Create an OldNode
       old_node = OldNode.from_node(self)
@@ -259,5 +259,5 @@ class Node < ActiveRecord::Base
       changeset.save!
     end
   end
       changeset.save!
     end
   end
-  
+
 end
 end
index 6f1bf03..cb90640 100644 (file)
@@ -3,7 +3,7 @@ class NodeTag < ActiveRecord::Base
   self.primary_keys = "node_id", "k"
 
   belongs_to :node
   self.primary_keys = "node_id", "k"
 
   belongs_to :node
-  
+
   validates_presence_of :node
   validates_length_of :k, :maximum => 255, :allow_blank => true
   validates_uniqueness_of :k, :scope => :node_id
   validates_presence_of :node
   validates_length_of :k, :maximum => 255, :allow_blank => true
   validates_uniqueness_of :k, :scope => :node_id
index 0fe0bea..bd3d574 100644 (file)
@@ -8,25 +8,25 @@ class OauthToken < ActiveRecord::Base
   validates_presence_of :client_application, :token
 
   before_validation :generate_keys, :on => :create
   validates_presence_of :client_application, :token
 
   before_validation :generate_keys, :on => :create
-  
+
   def invalidated?
     invalidated_at != nil
   end
   def invalidated?
     invalidated_at != nil
   end
-  
+
   def invalidate!
     update_attributes(:invalidated_at => Time.now)
   end
   def invalidate!
     update_attributes(:invalidated_at => Time.now)
   end
-  
+
   def authorized?
     authorized_at != nil && !invalidated?
   end
   def authorized?
     authorized_at != nil && !invalidated?
   end
-  
+
   def to_query
     "oauth_token=#{token}&oauth_token_secret=#{secret}"
   end
   def to_query
     "oauth_token=#{token}&oauth_token_secret=#{secret}"
   end
-    
+
 protected
 protected
-  
+
   def generate_keys
     self.token = OAuth::Helper.generate_key(40)[0,40]
     self.secret = OAuth::Helper.generate_key(40)[0,40]
   def generate_keys
     self.token = OAuth::Helper.generate_key(40)[0,40]
     self.secret = OAuth::Helper.generate_key(40)[0,40]
index 5ea3a77..b3ed96c 100644 (file)
@@ -38,7 +38,7 @@ class OldNode < ActiveRecord::Base
     old_node.version = node.version
     return old_node
   end
     old_node.version = node.version
     return old_node
   end
-  
+
   def to_xml
     doc = OSM::API.new.get_xml_doc
     doc.root << to_xml_node()
   def to_xml
     doc = OSM::API.new.get_xml_doc
     doc.root << to_xml_node()
@@ -63,7 +63,7 @@ class OldNode < ActiveRecord::Base
 
   def save_with_dependencies!
     save!
 
   def save_with_dependencies!
     save!
-   
+
     self.tags.each do |k,v|
       tag = OldNodeTag.new
       tag.k = k
     self.tags.each do |k,v|
       tag = OldNodeTag.new
       tag.k = k
@@ -79,22 +79,22 @@ class OldNode < ActiveRecord::Base
   end
 
   def tags=(t)
   end
 
   def tags=(t)
-    @tags = t 
+    @tags = t
   end
 
   end
 
-  def tags_as_hash 
+  def tags_as_hash
     return self.tags
     return self.tags
-  end 
-  # Pretend we're not in any ways 
-  def ways 
-    return [] 
-  end 
-  # Pretend we're not in any relations 
-  def containing_relation_members 
-    return [] 
-  end 
+  end
+
+  # Pretend we're not in any ways
+  def ways
+    return []
+  end
+
+  # Pretend we're not in any relations
+  def containing_relation_members
+    return []
+  end
 
   # check whether this element is the latest version - that is,
   # has the same version as its "current" counterpart.
 
   # check whether this element is the latest version - that is,
   # has the same version as its "current" counterpart.
index 5496f71..86c4784 100644 (file)
@@ -1,7 +1,7 @@
 class OldRelation < ActiveRecord::Base
   include ConsistencyValidations
   include ObjectMetadata
 class OldRelation < ActiveRecord::Base
   include ConsistencyValidations
   include ObjectMetadata
-  
+
   self.table_name = "relations"
   self.primary_keys = "relation_id", "version"
 
   self.table_name = "relations"
   self.primary_keys = "relation_id", "version"
 
@@ -15,7 +15,7 @@ class OldRelation < ActiveRecord::Base
 
   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
 
   def self.from_relation(relation)
   validates_associated :changeset
 
   def self.from_relation(relation)
@@ -89,7 +89,7 @@ class OldRelation < ActiveRecord::Base
       member_el['role'] = member.member_role.to_s
       el << member_el
     end
       member_el['role'] = member.member_role.to_s
       el << member_el
     end
-    
+
     add_tags_to_xml_node(el, self.old_tags)
 
     return el
     add_tags_to_xml_node(el, self.old_tags)
 
     return el
index 4932496..952c51f 100644 (file)
@@ -3,7 +3,7 @@ class OldRelationTag < ActiveRecord::Base
   self.primary_keys = "relation_id", "version", "k"
 
   belongs_to :old_relation, :foreign_key => [:relation_id, :version]
   self.primary_keys = "relation_id", "version", "k"
 
   belongs_to :old_relation, :foreign_key => [:relation_id, :version]
-  
+
   validates_presence_of :old_relation
   validates_length_of :k, :maximum => 255, :allow_blank => true
   validates_uniqueness_of :k, :scope => [:relation_id, :version]
   validates_presence_of :old_relation
   validates_length_of :k, :maximum => 255, :allow_blank => true
   validates_uniqueness_of :k, :scope => [:relation_id, :version]
index dbdcdd4..167ed30 100644 (file)
@@ -17,7 +17,7 @@ class OldWay < ActiveRecord::Base
   has_many :old_tags, :class_name => 'OldWayTag', :foreign_key => [:way_id, :version]
 
   validates_associated :changeset
   has_many :old_tags, :class_name => 'OldWayTag', :foreign_key => [:way_id, :version]
 
   validates_associated :changeset
-  
+
   def self.from_way(way)
     old_way = OldWay.new
     old_way.visible = way.visible
   def self.from_way(way)
     old_way = OldWay.new
     old_way.visible = way.visible
@@ -79,7 +79,7 @@ class OldWay < ActiveRecord::Base
       node_el['ref'] = nd.node_id.to_s
       el << node_el
     end
       node_el['ref'] = nd.node_id.to_s
       el << node_el
     end
-      
+
     add_tags_to_xml_node(el, self.old_tags)
 
     return el
     add_tags_to_xml_node(el, self.old_tags)
 
     return el
@@ -87,7 +87,7 @@ class OldWay < ActiveRecord::Base
 
   # Read full version of old way
   # For get_nodes_undelete, uses same nodes, even if they've moved since
 
   # Read full version of old way
   # For get_nodes_undelete, uses same nodes, even if they've moved since
-  # For get_nodes_revert,   allocates new ids 
+  # For get_nodes_revert,   allocates new ids
   # Currently returns Potlatch-style array
   # where [5] indicates whether latest version is usable as is (boolean)
   # (i.e. is it visible? are we actually reverting to an earlier version?)
   # Currently returns Potlatch-style array
   # where [5] indicates whether latest version is usable as is (boolean)
   # (i.e. is it visible? are we actually reverting to an earlier version?)
@@ -98,7 +98,7 @@ class OldWay < ActiveRecord::Base
       [node.lon, node.lat, n, node.version, node.tags_as_hash, node.visible]
     end
   end
       [node.lon, node.lat, n, node.version, node.tags_as_hash, node.visible]
     end
   end
-  
+
   def get_nodes_revert(timestamp)
     points=[]
     self.nds.each do |n|
   def get_nodes_revert(timestamp)
     points=[]
     self.nds.each do |n|
index a9bdf55..b3c5ec5 100644 (file)
@@ -1,10 +1,10 @@
 ##
 # Redaction represents a record associated with a particular
 # action on the database to hide revisions from the history
 ##
 # Redaction represents a record associated with a particular
 # action on the database to hide revisions from the history
-# which are not appropriate to redistribute any more. 
+# which are not appropriate to redistribute any more.
 #
 # The circumstances of the redaction can be recorded in the
 #
 # The circumstances of the redaction can be recorded in the
-# record's title and description fields, which can be 
+# record's title and description fields, which can be
 # displayed linked from the redacted records.
 #
 class Redaction < ActiveRecord::Base
 # displayed linked from the redacted records.
 #
 class Redaction < ActiveRecord::Base
@@ -14,7 +14,7 @@ class Redaction < ActiveRecord::Base
   has_many :old_ways
   has_many :old_relations
 
   has_many :old_ways
   has_many :old_relations
 
-  # this method overrides the AR default to provide the rich 
+  # this method overrides the AR default to provide the rich
   # text object for the description field.
   def description
     RichText.new(read_attribute(:description_format), read_attribute(:description))
   # text object for the description field.
   def description
     RichText.new(read_attribute(:description_format), read_attribute(:description))
index 008f365..4647668 100644 (file)
@@ -1,6 +1,6 @@
 class Relation < ActiveRecord::Base
   require 'xml/libxml'
 class Relation < ActiveRecord::Base
   require 'xml/libxml'
-  
+
   include ConsistencyValidations
   include NotRedactable
   include ObjectMetadata
   include ConsistencyValidations
   include NotRedactable
   include ObjectMetadata
@@ -18,13 +18,13 @@ class Relation < ActiveRecord::Base
   has_many :containing_relations, :class_name => "Relation", :through => :containing_relation_members, :source => :relation
 
   validates_presence_of :id, :on => :update
   has_many :containing_relations, :class_name => "Relation", :through => :containing_relation_members, :source => :relation
 
   validates_presence_of :id, :on => :update
-  validates_presence_of :timestamp,:version,  :changeset_id 
+  validates_presence_of :timestamp,:version,  :changeset_id
   validates_uniqueness_of :id
   validates_inclusion_of :visible, :in => [ true, false ]
   validates_numericality_of :id, :on => :update, :integer_only => true
   validates_numericality_of :changeset_id, :version, :integer_only => true
   validates_associated :changeset
   validates_uniqueness_of :id
   validates_inclusion_of :visible, :in => [ true, false ]
   validates_numericality_of :id, :on => :update, :integer_only => true
   validates_numericality_of :changeset_id, :version, :integer_only => true
   validates_associated :changeset
-  
+
   scope :visible, -> { where(:visible => true) }
   scope :invisible, -> { where(:visible => false) }
   scope :nodes, ->(*ids) { joins(:relation_members).where(:current_relation_members => { :member_type => "Node", :member_id => ids.flatten }) }
   scope :visible, -> { where(:visible => true) }
   scope :invisible, -> { where(:visible => false) }
   scope :nodes, ->(*ids) { joins(:relation_members).where(:current_relation_members => { :member_type => "Node", :member_id => ids.flatten }) }
@@ -54,17 +54,17 @@ class Relation < ActiveRecord::Base
     relation.version = pt['version']
     raise OSM::APIBadXMLError.new("relation", pt, "Changeset id is missing") if pt['changeset'].nil?
     relation.changeset_id = pt['changeset']
     relation.version = pt['version']
     raise OSM::APIBadXMLError.new("relation", pt, "Changeset id is missing") if pt['changeset'].nil?
     relation.changeset_id = pt['changeset']
-    
+
     unless create
       raise OSM::APIBadXMLError.new("relation", pt, "ID is required when updating") if pt['id'].nil?
       relation.id = pt['id'].to_i
     unless create
       raise 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. 
+      # .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
       raise OSM::APIBadUserInput.new("ID of relation cannot be zero when updating.") if relation.id == 0
     end
       # We want to make sure that there is no id with zero anyway
       raise OSM::APIBadUserInput.new("ID of relation cannot be zero when updating.") if relation.id == 0
     end
-    
+
     # We don't care about the timestamp nor the visibility as these are either
     # We don't care about the timestamp nor the visibility as these are either
-    # set explicitly or implicit in the action. The visibility is set to true, 
+    # set explicitly or implicit in the action. The visibility is set to true,
     # and manually set to false before the actual delete.
     relation.visible = true
 
     # and manually set to false before the actual delete.
     relation.visible = true
 
@@ -79,13 +79,13 @@ class Relation < ActiveRecord::Base
     end
 
     # need to initialise the relation members array explicitly, as if this
     end
 
     # need to initialise the relation members array explicitly, as if this
-    # isn't done for a new relation then @members attribute will be nil, 
-    # and the members will be loaded from the database instead of being 
+    # isn't done for a new relation then @members attribute will be nil,
+    # and the members will be loaded from the database instead of being
     # empty, as intended.
     relation.members = Array.new
 
     pt.find('member').each do |member|
     # empty, as intended.
     relation.members = Array.new
 
     pt.find('member').each do |member|
-      #member_type = 
+      #member_type =
       logger.debug "each member"
       raise OSM::APIBadXMLError.new("relation", pt, "The #{member['type']} is not allowed only, #{TYPES.inspect} allowed") unless TYPES.include? member['type']
       logger.debug "after raise"
       logger.debug "each member"
       raise OSM::APIBadXMLError.new("relation", pt, "The #{member['type']} is not allowed only, #{TYPES.inspect} allowed") unless TYPES.include? member['type']
       logger.debug "after raise"
@@ -128,7 +128,7 @@ class Relation < ActiveRecord::Base
       if p
         member_el = XML::Node.new 'member'
         member_el['type'] = member.member_type.downcase
       if p
         member_el = XML::Node.new 'member'
         member_el['type'] = member.member_type.downcase
-        member_el['ref'] = member.member_id.to_s 
+        member_el['ref'] = member.member_id.to_s
         member_el['role'] = member.member_role
         el << member_el
        end
         member_el['role'] = member.member_role
         el << member_el
        end
@@ -137,7 +137,7 @@ class Relation < ActiveRecord::Base
     add_tags_to_xml_node(el, self.relation_tags)
 
     return el
     add_tags_to_xml_node(el, self.relation_tags)
 
     return el
-  end 
+  end
 
   # FIXME is this really needed?
   def members
 
   # FIXME is this really needed?
   def members
@@ -174,21 +174,21 @@ class Relation < ActiveRecord::Base
   end
 
   ##
   end
 
   ##
-  # updates the changeset bounding box to contain the bounding box of 
+  # updates the changeset bounding box to contain the bounding box of
   # the element with given +type+ and +id+. this only works with nodes
   # and ways at the moment, as they're the only elements to respond to
   # the :bbox call.
   def update_changeset_element(type, id)
     element = Kernel.const_get(type.capitalize).find(id)
     changeset.update_bbox! element.bbox
   # the element with given +type+ and +id+. this only works with nodes
   # and ways at the moment, as they're the only elements to respond to
   # the :bbox call.
   def update_changeset_element(type, id)
     element = Kernel.const_get(type.capitalize).find(id)
     changeset.update_bbox! element.bbox
-  end    
+  end
 
   def delete_with_history!(new_relation, user)
     unless self.visible
       raise OSM::APIAlreadyDeletedError.new("relation", new_relation.id)
     end
 
 
   def delete_with_history!(new_relation, user)
     unless self.visible
       raise OSM::APIAlreadyDeletedError.new("relation", new_relation.id)
     end
 
-    # need to start the transaction here, so that the database can 
+    # need to start the transaction here, so that the database can
     # provide repeatable reads for the used-by checks. this means it
     # shouldn't be possible to get race conditions.
     Relation.transaction do
     # provide repeatable reads for the used-by checks. this means it
     # shouldn't be possible to get race conditions.
     Relation.transaction do
@@ -221,7 +221,7 @@ class Relation < ActiveRecord::Base
       save_with_history!
     end
   end
       save_with_history!
     end
   end
-  
+
   def create_with_history(user)
     check_create_consistency(self, user)
     unless self.preconditions_ok?
   def create_with_history(user)
     check_create_consistency(self, user)
     unless self.preconditions_ok?
@@ -233,9 +233,9 @@ class Relation < ActiveRecord::Base
   end
 
   def preconditions_ok?(good_members = [])
   end
 
   def preconditions_ok?(good_members = [])
-    # These are hastables that store an id in the index of all 
+    # These are hastables that store an id in the index of all
     # the nodes/way/relations that have already been added.
     # the nodes/way/relations that have already been added.
-    # If the member is valid and visible then we add it to the 
+    # If the member is valid and visible then we add it to the
     # relevant hash table, with the value true as a cache.
     # Thus if you have nodes with the ids of 50 and 1 already in the
     # relation, then the hash table nodes would contain:
     # relevant hash table, with the value true as a cache.
     # Thus if you have nodes with the ids of 50 and 1 already in the
     # relation, then the hash table nodes would contain:
@@ -273,8 +273,8 @@ class Relation < ActiveRecord::Base
 
   ##
   # if any members are referenced by placeholder IDs (i.e: negative) then
 
   ##
   # if any members are referenced by placeholder IDs (i.e: negative) then
-  # this calling this method will fix them using the map from placeholders 
-  # to IDs +id_map+. 
+  # this calling this method will fix them using the map from placeholders
+  # to IDs +id_map+.
   def fix_placeholders!(id_map, placeholder_id = nil)
     self.members.map! do |type, id, role|
       old_id = id.to_i
   def fix_placeholders!(id_map, placeholder_id = nil)
     self.members.map! do |type, id, role|
       old_id = id.to_i
@@ -289,7 +289,7 @@ class Relation < ActiveRecord::Base
   end
 
   private
   end
 
   private
-  
+
   def save_with_history!
     Relation.transaction do
       # have to be a little bit clever here - to detect if any tags
   def save_with_history!
     Relation.transaction do
       # have to be a little bit clever here - to detect if any tags
@@ -306,9 +306,9 @@ class Relation < ActiveRecord::Base
         key = old_tag.k
         # if we can match the tags we currently have to the list
         # of old tags, then we never set the tags_changed flag. but
         key = old_tag.k
         # if we can match the tags we currently have to the list
         # of old tags, then we never set the tags_changed flag. but
-        # if any are different then set the flag and do the DB 
+        # if any are different then set the flag and do the DB
         # update.
         # update.
-        if tags.has_key? key 
+        if tags.has_key? key
           tags_changed |= (old_tag.v != tags[key])
 
           # remove from the map, so that we can expect an empty map
           tags_changed |= (old_tag.v != tags[key])
 
           # remove from the map, so that we can expect an empty map
@@ -331,7 +331,7 @@ class Relation < ActiveRecord::Base
         tag.v = v
         tag.save!
       end
         tag.v = v
         tag.save!
       end
-      
+
       # same pattern as before, but this time we're collecting the
       # changed members in an array, as the bounding box updates for
       # elements are per-element, not blanked on/off like for tags.
       # same pattern as before, but this time we're collecting the
       # changed members in an array, as the bounding box updates for
       # elements are per-element, not blanked on/off like for tags.
@@ -378,7 +378,7 @@ class Relation < ActiveRecord::Base
       # bounding box. this is similar to how the map call does things and is
       # reasonable on the assumption that adding or removing members doesn't
       # materially change the rest of the relation.
       # bounding box. this is similar to how the map call does things and is
       # reasonable on the assumption that adding or removing members doesn't
       # materially change the rest of the relation.
-      any_relations = 
+      any_relations =
         changed_members.collect { |id,type| type == "relation" }.
         inject(false) { |b,s| b or s }
 
         changed_members.collect { |id,type| type == "relation" }.
         inject(false) { |b,s| b or s }
 
@@ -387,7 +387,7 @@ class Relation < ActiveRecord::Base
                          # FIXME: check for tag changes along with element deletions and
                          # make sure that the deleted element's bounding box is hit.
                          self.members
                          # FIXME: check for tag changes along with element deletions and
                          # make sure that the deleted element's bounding box is hit.
                          self.members
-                       else 
+                       else
                          changed_members
                        end
       update_members.each do |type, id, role|
                          changed_members
                        end
       update_members.each do |type, id, role|
index bf8d373..bf3e4ef 100644 (file)
@@ -63,7 +63,7 @@ class Trace < ActiveRecord::Base
     f.syswrite(data)
     f.close
   end
     f.syswrite(data)
     f.close
   end
-  
+
   def icon_picture= (data)
     f = File.new(icon_picture_name, "wb")
     f.syswrite(data)
   def icon_picture= (data)
     f = File.new(icon_picture_name, "wb")
     f.syswrite(data)
@@ -78,7 +78,7 @@ class Trace < ActiveRecord::Base
     f.close
     data
   end
     f.close
     data
   end
-  
+
   def icon_picture
     f = File.new(icon_picture_name, "rb")
     logger.info "icon picture file: '#{f.path}'"
   def icon_picture
     f = File.new(icon_picture_name, "rb")
     logger.info "icon picture file: '#{f.path}'"
@@ -86,7 +86,7 @@ class Trace < ActiveRecord::Base
     f.close
     data
   end
     f.close
     data
   end
-  
+
   def large_picture_name
     "#{GPX_IMAGE_DIR}/#{id}.gif"
   end
   def large_picture_name
     "#{GPX_IMAGE_DIR}/#{id}.gif"
   end
@@ -192,14 +192,14 @@ class Trace < ActiveRecord::Base
 
   def self.from_xml_node(pt, create=false)
     trace = Trace.new
 
   def self.from_xml_node(pt, create=false)
     trace = Trace.new
-    
+
     raise OSM::APIBadXMLError.new("trace", pt, "visibility missing") if pt['visibility'].nil?
     trace.visibility = pt['visibility']
 
     unless create
       raise OSM::APIBadXMLError.new("trace", pt, "ID is required when updating.") if pt['id'].nil?
       trace.id = pt['id'].to_i
     raise OSM::APIBadXMLError.new("trace", pt, "visibility missing") if pt['visibility'].nil?
     trace.visibility = pt['visibility']
 
     unless create
       raise 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. 
+      # .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
       raise OSM::APIBadUserInput.new("ID of trace cannot be zero when updating.") if trace.id == 0
     end
       # We want to make sure that there is no id with zero anyway
       raise OSM::APIBadUserInput.new("ID of trace cannot be zero when updating.") if trace.id == 0
     end
index b5110bb..7faec97 100644 (file)
@@ -2,7 +2,7 @@ class UserPreference < ActiveRecord::Base
   self.primary_keys = "user_id", "k"
 
   belongs_to :user
   self.primary_keys = "user_id", "k"
 
   belongs_to :user
-  
+
   validates_length_of :k, :within => 1..255
   validates_length_of :v, :within => 1..255
 
   validates_length_of :k, :within => 1..255
   validates_length_of :v, :within => 1..255
 
@@ -11,7 +11,7 @@ class UserPreference < ActiveRecord::Base
     el1 = XML::Node.new 'preference'
     el1['k'] = self.k
     el1['v'] = self.v
     el1 = XML::Node.new 'preference'
     el1['k'] = self.k
     el1['v'] = self.v
-    
+
     return el1
   end
 
     return el1
   end
 
index e78d0df..c105fa0 100644 (file)
@@ -1,12 +1,12 @@
 class Way < ActiveRecord::Base
   require 'xml/libxml'
 class Way < ActiveRecord::Base
   require 'xml/libxml'
-  
+
   include ConsistencyValidations
   include NotRedactable
   include ObjectMetadata
 
   self.table_name = "current_ways"
   include ConsistencyValidations
   include NotRedactable
   include ObjectMetadata
 
   self.table_name = "current_ways"
-  
+
   belongs_to :changeset
 
   has_many :old_ways, -> { order(:version) }
   belongs_to :changeset
 
   has_many :old_ways, -> { order(:version) }
@@ -56,13 +56,13 @@ class Way < ActiveRecord::Base
     unless create
       raise OSM::APIBadXMLError.new("way", pt, "ID is required when updating") if pt['id'].nil?
       way.id = pt['id'].to_i
     unless create
       raise 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. 
+      # .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
       raise OSM::APIBadUserInput.new("ID of way cannot be zero when updating.") if way.id == 0
     end
 
     # We don't care about the timestamp nor the visibility as these are either
       # We want to make sure that there is no id with zero anyway
       raise OSM::APIBadUserInput.new("ID of way cannot be zero when updating.") if way.id == 0
     end
 
     # We don't care about the timestamp nor the visibility as these are either
-    # set explicitly or implicit in the action. The visibility is set to true, 
+    # set explicitly or implicit in the action. The visibility is set to true,
     # and manually set to false before the actual delete.
     way.visible = true
 
     # and manually set to false before the actual delete.
     way.visible = true
 
@@ -85,7 +85,7 @@ class Way < ActiveRecord::Base
 
   # Find a way given it's ID, and in a single SQL call also grab its nodes
   #
 
   # Find a way given it's ID, and in a single SQL call also grab its nodes
   #
-  
+
   # You can't pull in all the tags too unless we put a sequence_id on the way_tags table and have a multipart key
   def self.find_eager(id)
     way = Way.find(id, :include => {:way_nodes => :node})
   # You can't pull in all the tags too unless we put a sequence_id on the way_tags table and have a multipart key
   def self.find_eager(id)
     way = Way.find(id, :include => {:way_nodes => :node})
@@ -133,7 +133,7 @@ class Way < ActiveRecord::Base
     add_tags_to_xml_node(el, self.way_tags)
 
     return el
     add_tags_to_xml_node(el, self.way_tags)
 
     return el
-  end 
+  end
 
   def nds
     @nds ||= self.way_nodes.collect { |n| n.node_id }
 
   def nds
     @nds ||= self.way_nodes.collect { |n| n.node_id }
@@ -182,7 +182,7 @@ class Way < ActiveRecord::Base
       unless new_way.preconditions_ok?(self.nds)
         raise OSM::APIPreconditionFailedError.new("Cannot update way #{self.id}: data is invalid.")
       end
       unless new_way.preconditions_ok?(self.nds)
         raise OSM::APIPreconditionFailedError.new("Cannot update way #{self.id}: data is invalid.")
       end
-      
+
       self.changeset_id = new_way.changeset_id
       self.changeset = new_way.changeset
       self.tags = new_way.tags
       self.changeset_id = new_way.changeset_id
       self.changeset = new_way.changeset
       self.tags = new_way.tags
@@ -228,8 +228,8 @@ class Way < ActiveRecord::Base
     unless self.visible
       raise OSM::APIAlreadyDeletedError.new("way", new_way.id)
     end
     unless self.visible
       raise OSM::APIAlreadyDeletedError.new("way", new_way.id)
     end
-    
-    # need to start the transaction here, so that the database can 
+
+    # need to start the transaction here, so that the database can
     # provide repeatable reads for the used-by checks. this means it
     # shouldn't be possible to get race conditions.
     Way.transaction do
     # provide repeatable reads for the used-by checks. this means it
     # shouldn't be possible to get race conditions.
     Way.transaction do
@@ -255,8 +255,8 @@ class Way < ActiveRecord::Base
 
   ##
   # if any referenced nodes are placeholder IDs (i.e: are negative) then
 
   ##
   # if any referenced nodes are placeholder IDs (i.e: are negative) then
-  # this calling this method will fix them using the map from placeholders 
-  # to IDs +id_map+. 
+  # this calling this method will fix them using the map from placeholders
+  # to IDs +id_map+.
   def fix_placeholders!(id_map, placeholder_id = nil)
     self.nds.map! do |node_id|
       if node_id < 0
   def fix_placeholders!(id_map, placeholder_id = nil)
     self.nds.map! do |node_id|
       if node_id < 0
@@ -270,12 +270,12 @@ class Way < ActiveRecord::Base
   end
 
   private
   end
 
   private
-  
+
   def save_with_history!
     t = Time.now.getutc
 
   def save_with_history!
     t = Time.now.getutc
 
-    # update the bounding box, note that this has to be done both before 
-    # and after the save, so that nodes from both versions are included in the 
+    # update the bounding box, note that this has to be done both before
+    # and after the save, so that nodes from both versions are included in the
     # bbox. we use a copy of the changeset so that it isn't reloaded
     # later in the save.
     cs = self.changeset
     # bbox. we use a copy of the changeset so that it isn't reloaded
     # later in the save.
     cs = self.changeset
@@ -315,7 +315,7 @@ class Way < ActiveRecord::Base
       # new set of nodes.
       self.reload
 
       # new set of nodes.
       self.reload
 
-      # update and commit the bounding box, now that way nodes 
+      # update and commit the bounding box, now that way nodes
       # have been updated and we're in a transaction.
       cs.update_bbox!(bbox) unless nodes.empty?
 
       # have been updated and we're in a transaction.
       cs.update_bbox!(bbox) unless nodes.empty?
 
index 98ff62f..6204af9 100644 (file)
@@ -3,7 +3,7 @@ class WayTag < ActiveRecord::Base
   self.primary_keys = "way_id", "k"
 
   belongs_to :way
   self.primary_keys = "way_id", "k"
 
   belongs_to :way
-  
+
   validates_presence_of :way
   validates_length_of :k, :maximum => 255, :allow_blank => true
   validates_uniqueness_of :k, :scope => :way_id
   validates_presence_of :way
   validates_length_of :k, :maximum => 255, :allow_blank => true
   validates_uniqueness_of :k, :scope => :way_id
index f9b711f..7288488 100644 (file)
@@ -4,7 +4,7 @@ if defined?(ActiveRecord::ConnectionAdaptors::AbstractAdapter)
       class AbstractAdapter
       protected
         alias_method :old_log, :log
       class AbstractAdapter
       protected
         alias_method :old_log, :log
-  
+
         def log(sql, name)
           if block_given?
             old_log(sql, name) do
         def log(sql, name)
           if block_given?
             old_log(sql, name) do
index 9a8ef01..6a42c6d 100644 (file)
@@ -1,7 +1,7 @@
 # Configure ActionMailer SMTP settings
 ActionMailer::Base.smtp_settings = {
   :address => 'localhost',
 # Configure ActionMailer SMTP settings
 ActionMailer::Base.smtp_settings = {
   :address => 'localhost',
-  :port => 25, 
+  :port => 25,
   :domain => 'localhost',
   :enable_starttls_auto => false
 }
   :domain => 'localhost',
   :enable_starttls_auto => false
 }
index ce51826..1b79df7 100644 (file)
@@ -11,16 +11,16 @@ if defined?(SOFT_MEMORY_LIMIT) and defined?(PhusionPassenger)
     def initialize(app)
       @app = app
     end
     def initialize(app)
       @app = app
     end
-    
+
     def call(env)
       # Process this requst
       status, headers, body = @app.call(env)
     def call(env)
       # Process this requst
       status, headers, body = @app.call(env)
-      
+
       # Restart if we've hit our memory limit
       if resident_size > SOFT_MEMORY_LIMIT
         Process.kill("USR1", Process.pid)
       end
       # Restart if we've hit our memory limit
       if resident_size > SOFT_MEMORY_LIMIT
         Process.kill("USR1", Process.pid)
       end
-      
+
       # Return the result of this request
       [status, headers, body]
     end
       # Return the result of this request
       [status, headers, body]
     end
@@ -31,7 +31,7 @@ if defined?(SOFT_MEMORY_LIMIT) and defined?(PhusionPassenger)
       fields = File.open("/proc/self/statm") do |file|
         fields = file.gets.split(" ")
       end
       fields = File.open("/proc/self/statm") do |file|
         fields = file.gets.split(" ")
       end
-      
+
       # Return resident size in megabytes
       return fields[1].to_i / 256
     end
       # Return resident size in megabytes
       return fields[1].to_i / 256
     end
index 70676ca..254ce01 100644 (file)
@@ -12,7 +12,7 @@ class R2Template < Tilt::Template
   def prepare
     @output = R2.r2(data)
   end
   def prepare
     @output = R2.r2(data)
   end
-  
+
   def evaluate(scope, locals, &block)
     @output
   end
   def evaluate(scope, locals, &block)
     @output
   end
index 3d47c6d..0099305 100644 (file)
@@ -78,7 +78,7 @@ OpenStreetMap::Application.routes.draw do
   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/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
   # 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
index 34b0203..b16e993 100644 (file)
@@ -217,6 +217,6 @@ class CreateOsmDb < ActiveRecord::Migration
   end
 
   def self.down
   end
 
   def self.down
-    
+
   end
 end
   end
 end
index fb27c91..346c7cf 100644 (file)
@@ -96,7 +96,7 @@ class CleanupOsmDb < ActiveRecord::Migration
     add_index "users", ["display_name"], :name => "users_display_name_idx", :unique => true
 
     change_column "way_segments", "segment_id", :bigint, :null => false
     add_index "users", ["display_name"], :name => "users_display_name_idx", :unique => true
 
     change_column "way_segments", "segment_id", :bigint, :null => false
+
     change_column "way_tags", "k", :string, :null => false
     change_column "way_tags", "v", :string, :null => false
     change_column "way_tags", "version", :bigint, :null => false
     change_column "way_tags", "k", :string, :null => false
     change_column "way_tags", "v", :string, :null => false
     change_column "way_tags", "version", :bigint, :null => false
@@ -120,7 +120,7 @@ class CleanupOsmDb < ActiveRecord::Migration
     change_column "way_tags", "k", :string, :default => nil
 
     change_column "way_segments", "segment_id", :integer
     change_column "way_tags", "k", :string, :default => nil
 
     change_column "way_segments", "segment_id", :integer
+
     remove_index "users", :name => "users_display_name_idx"
     add_index "users", ["display_name"], :name => "users_display_name_idx"
     remove_index "users", :name => "users_email_idx"
     remove_index "users", :name => "users_display_name_idx"
     add_index "users", ["display_name"], :name => "users_display_name_idx"
     remove_index "users", :name => "users_email_idx"
@@ -211,7 +211,7 @@ class CleanupOsmDb < ActiveRecord::Migration
     change_column "current_segments", "user_id", :bigint
     change_column "current_segments", "node_b", :bigint
     change_column "current_segments", "node_a", :bigint
     change_column "current_segments", "user_id", :bigint
     change_column "current_segments", "node_b", :bigint
     change_column "current_segments", "node_a", :bigint
-    
+
     add_index "current_nodes", ["id"], :name => "current_nodes_id_idx"
     remove_primary_key "current_nodes"
     change_column "current_nodes", "timestamp", :datetime
     add_index "current_nodes", ["id"], :name => "current_nodes_id_idx"
     remove_primary_key "current_nodes"
     change_column "current_nodes", "timestamp", :datetime
index 8bfb6bc..f8a1867 100644 (file)
@@ -56,7 +56,7 @@ class TileNodes < ActiveRecord::Migration
     change_column "current_nodes", "tile", :bigint
 
     upgrade_table "current_nodes_v5", "current_nodes", Node
     change_column "current_nodes", "tile", :bigint
 
     upgrade_table "current_nodes_v5", "current_nodes", Node
-    
+
     drop_table "current_nodes_v5"
 
     remove_index "nodes", :name=> "nodes_uid_idx"
     drop_table "current_nodes_v5"
 
     remove_index "nodes", :name=> "nodes_uid_idx"
index 0c68ce0..a72859a 100644 (file)
@@ -9,7 +9,7 @@ class RemoveSegments < ActiveRecord::Migration
 
       cmd = "db/migrate/008_remove_segments_helper"
       src = "#{cmd}.cc"
 
       cmd = "db/migrate/008_remove_segments_helper"
       src = "#{cmd}.cc"
-      if not File.exists? cmd or File.mtime(cmd) < File.mtime(src) then 
+      if not File.exists? cmd or File.mtime(cmd) < File.mtime(src) then
        system 'c++ -O3 -Wall `mysql_config --cflags --libs` ' +
          "#{src} -o #{cmd}" or fail
       end
        system 'c++ -O3 -Wall `mysql_config --cflags --libs` ' +
          "#{src} -o #{cmd}" or fail
       end
index 8fa7b7e..b5932bb 100644 (file)
@@ -9,7 +9,7 @@ class PopulateNodeTagsAndRemove < ActiveRecord::Migration
 
       cmd = "db/migrate/020_populate_node_tags_and_remove_helper"
       src = "#{cmd}.c"
 
       cmd = "db/migrate/020_populate_node_tags_and_remove_helper"
       src = "#{cmd}.c"
-      if not File.exists? cmd or File.mtime(cmd) < File.mtime(src) then 
+      if not File.exists? cmd or File.mtime(cmd) < File.mtime(src) then
         system 'cc -O3 -Wall `mysql_config --cflags --libs` ' +
           "#{src} -o #{cmd}" or fail
       end
         system 'cc -O3 -Wall `mysql_config --cflags --libs` ' +
           "#{src} -o #{cmd}" or fail
       end
index 030515a..aeb8402 100644 (file)
@@ -17,8 +17,8 @@ class MoveToInnodb < ActiveRecord::Migration
 
     @@ver_tbl.each { |tbl|
       add_column "current_#{tbl}", "version", :bigint, :null => false
 
     @@ver_tbl.each { |tbl|
       add_column "current_#{tbl}", "version", :bigint, :null => false
-      # As the initial version of all nodes, ways and relations is 0, we set the 
-      # current version to something less so that we can update the version in 
+      # As the initial version of all nodes, ways and relations is 0, we set the
+      # current version to something less so that we can update the version in
       # batches of 10000
       tbl.classify.constantize.update_all("version=-1")
       while tbl.classify.constantize.count(:conditions => {:version => -1}) > 0
       # batches of 10000
       tbl.classify.constantize.update_all("version=-1")
       while tbl.classify.constantize.count(:conditions => {:version => -1}) > 0
index 3a6c32e..aac921a 100644 (file)
@@ -3,7 +3,7 @@ require 'migrate'
 class AddChangesets < ActiveRecord::Migration
   @@conv_user_tables = ['current_nodes',
   'current_relations', 'current_ways', 'nodes', 'relations', 'ways' ]
 class AddChangesets < ActiveRecord::Migration
   @@conv_user_tables = ['current_nodes',
   'current_relations', 'current_ways', 'nodes', 'relations', 'ways' ]
-  
+
   def self.up
     create_table "changesets", :id => false do |t|
       t.column "id",             :bigserial, :primary_key => true, :null => false
   def self.up
     create_table "changesets", :id => false do |t|
       t.column "id",             :bigserial, :primary_key => true, :null => false
@@ -23,13 +23,13 @@ class AddChangesets < ActiveRecord::Migration
     end
 
     add_index "changeset_tags", ["id"], :name => "changeset_tags_id_idx"
     end
 
     add_index "changeset_tags", ["id"], :name => "changeset_tags_id_idx"
-    
+
     #
     #
-    # Initially we will have one changeset for every user containing 
-    # all edits up to the API change,  
+    # Initially we will have one changeset for every user containing
+    # all edits up to the API change,
     # all the changesets will have the id of the user that made them.
     # We need to generate a changeset for each user in the database
     # all the changesets will have the id of the user that made them.
     # We need to generate a changeset for each user in the database
-    execute "INSERT INTO changesets (id, user_id, created_at, open)" + 
+    execute "INSERT INTO changesets (id, user_id, created_at, open)" +
       "SELECT id, id, creation_time, false from users;"
 
     @@conv_user_tables.each { |tbl|
       "SELECT id, id, creation_time, false from users;"
 
     @@conv_user_tables.each { |tbl|
index 325be51..4914a8a 100644 (file)
@@ -7,12 +7,12 @@ class OrderRelationMembers < ActiveRecord::Migration
     add_column(:relation_members, :sequence_id, :integer,
                :default => 0, :null => false)
 
     add_column(:relation_members, :sequence_id, :integer,
                :default => 0, :null => false)
 
-    # update the sequence column with default (partial) ordering by 
+    # update the sequence column with default (partial) ordering by
     # element ID. the sequence ID is a smaller int type, so we can't
     # just copy the member_id.
     execute("update relation_members set sequence_id = mod(member_id, 16384)")
 
     # element ID. the sequence ID is a smaller int type, so we can't
     # just copy the member_id.
     execute("update relation_members set sequence_id = mod(member_id, 16384)")
 
-    # need to update the primary key to include the sequence number, 
+    # need to update the primary key to include the sequence number,
     # otherwise the primary key will barf when we have repeated members.
     # mysql barfs on this anyway, so we need a single command. this may
     # not work in postgres... needs testing.
     # otherwise the primary key will barf when we have repeated members.
     # mysql barfs on this anyway, so we need a single command. this may
     # not work in postgres... needs testing.
index 32d2795..129315a 100644 (file)
@@ -5,21 +5,21 @@ class AddEndTimeToChangesets < ActiveRecord::Migration
     # swap the boolean closed-or-not for a time when the changeset will
     # close or has closed.
     add_column(:changesets, :closed_at, :datetime, :null => false)
     # swap the boolean closed-or-not for a time when the changeset will
     # close or has closed.
     add_column(:changesets, :closed_at, :datetime, :null => false)
-    
+
     # it appears that execute will only accept string arguments, so
     # this is an ugly, ugly hack to get some sort of mysql/postgres
     # independence. now i have to go wash my brain with bleach.
     execute("update changesets set closed_at=(now()-'1 hour'::interval) where open=(1=0)")
     execute("update changesets set closed_at=(now()+'1 hour'::interval) where open=(1=1)")
 
     # it appears that execute will only accept string arguments, so
     # this is an ugly, ugly hack to get some sort of mysql/postgres
     # independence. now i have to go wash my brain with bleach.
     execute("update changesets set closed_at=(now()-'1 hour'::interval) where open=(1=0)")
     execute("update changesets set closed_at=(now()+'1 hour'::interval) where open=(1=1)")
 
-    # remove the open column as it is unnecessary now and denormalises 
+    # remove the open column as it is unnecessary now and denormalises
     # the table.
     remove_column :changesets, :open
 
     # add a column to keep track of the number of changes in a changeset.
     # could probably work out how many changes there are here, but i'm not
     # sure its actually important.
     # the table.
     remove_column :changesets, :open
 
     # add a column to keep track of the number of changes in a changeset.
     # could probably work out how many changes there are here, but i'm not
     # sure its actually important.
-    add_column(:changesets, :num_changes, :integer, 
+    add_column(:changesets, :num_changes, :integer,
                :null => false, :default => 0)
   end
 
                :null => false, :default => 0)
   end
 
index 95d6905..d1095f8 100644 (file)
@@ -12,7 +12,7 @@ class CreateOauthTables < ActiveRecord::Migration
       t.timestamps
     end
     add_index :client_applications, :key, :unique => true
       t.timestamps
     end
     add_index :client_applications, :key, :unique => true
-    
+
     create_table :oauth_tokens do |t|
       t.integer :user_id
       t.string :type, :limit => 20
     create_table :oauth_tokens do |t|
       t.integer :user_id
       t.string :type, :limit => 20
@@ -22,9 +22,9 @@ class CreateOauthTables < ActiveRecord::Migration
       t.timestamp :authorized_at, :invalidated_at
       t.timestamps
     end
       t.timestamp :authorized_at, :invalidated_at
       t.timestamps
     end
-    
+
     add_index :oauth_tokens, :token, :unique => true
     add_index :oauth_tokens, :token, :unique => true
-    
+
     create_table :oauth_nonces do |t|
       t.string :nonce
       t.integer :timestamp
     create_table :oauth_nonces do |t|
       t.string :nonce
       t.integer :timestamp
@@ -32,7 +32,7 @@ class CreateOauthTables < ActiveRecord::Migration
       t.timestamps
     end
     add_index :oauth_nonces, [:nonce, :timestamp], :unique => true
       t.timestamps
     end
     add_index :oauth_nonces, [:nonce, :timestamp], :unique => true
-    
+
   end
 
   def self.down
   end
 
   def self.down
index 6851a20..c5a4a48 100644 (file)
@@ -5,12 +5,12 @@ class AddMapBugTables < ActiveRecord::Migration
     create_enumeration :map_bug_status_enum, ["open", "closed", "hidden"]
 
     create_table :map_bugs do |t|
     create_enumeration :map_bug_status_enum, ["open", "closed", "hidden"]
 
     create_table :map_bugs do |t|
-      t.integer :latitude, :null => false 
-      t.integer :longitude, :null => false 
+      t.integer :latitude, :null => false
+      t.integer :longitude, :null => false
       t.column :tile, :bigint, :null => false
       t.datetime :last_changed, :null => false
       t.column :tile, :bigint, :null => false
       t.datetime :last_changed, :null => false
-      t.datetime :date_created, :null => false 
-      t.string :nearby_place 
+      t.datetime :date_created, :null => false
+      t.string :nearby_place
       t.string :text
       t.column :status, :map_bug_status_enum, :null => false
     end
       t.string :text
       t.column :status, :map_bug_status_enum, :null => false
     end
index d3839aa..588f654 100644 (file)
@@ -4,7 +4,7 @@ class RefactorMapBugTables < ActiveRecord::Migration
   def self.up
     create_table :map_bug_comment do |t|
       t.column :bug_id, :bigint, :null => false
   def self.up
     create_table :map_bug_comment do |t|
       t.column :bug_id, :bigint, :null => false
-      t.boolean :visible, :null => false 
+      t.boolean :visible, :null => false
       t.datetime :date_created, :null => false
       t.string :commenter_name
       t.string :commenter_ip
       t.datetime :date_created, :null => false
       t.string :commenter_name
       t.string :commenter_ip
@@ -12,7 +12,7 @@ class RefactorMapBugTables < ActiveRecord::Migration
       t.string :comment
     end
 
       t.string :comment
     end
 
-    remove_column :map_bugs, :text 
+    remove_column :map_bugs, :text
 
     change_column :map_bug_comment, :id, :bigint
 
 
     change_column :map_bug_comment, :id, :bigint
 
index bb4c19c..39a6385 100644 (file)
@@ -6,6 +6,6 @@ class AddDateClosed < ActiveRecord::Migration
   end
 
   def self.down
   end
 
   def self.down
-    remove_column :map_bugs, :date_closed 
+    remove_column :map_bugs, :date_closed
   end
 end
   end
 end
index 2fb9ee5..bbe5443 100644 (file)
@@ -1,6 +1,6 @@
 class AddOpenId < ActiveRecord::Migration
   def self.up
 class AddOpenId < ActiveRecord::Migration
   def self.up
-    add_column :users, :openid_url, :string 
+    add_column :users, :openid_url, :string
     add_index :users, [:openid_url], :name => "user_openid_url_idx", :unique => true
   end
 
     add_index :users, [:openid_url], :name => "user_openid_url_idx", :unique => true
   end
 
index 8178c15..3cab896 100644 (file)
@@ -1,7 +1,7 @@
 class AddTermsSeenToUser < ActiveRecord::Migration
   def self.up
     add_column :users, :terms_seen, :boolean, :null => false, :default => false
 class AddTermsSeenToUser < ActiveRecord::Migration
   def self.up
     add_column :users, :terms_seen, :boolean, :null => false, :default => false
-    
+
     # best guess available is just that everyone who has agreed has
     # seen the terms, and that noone else has.
     User.update_all "terms_seen = (terms_agreed is not null)"
     # best guess available is just that everyone who has agreed has
     # seen the terms, and that noone else has.
     User.update_all "terms_seen = (terms_agreed is not null)"
index fa1307b..5db1be0 100644 (file)
@@ -13,23 +13,23 @@ module ActionController
   #
   # Pagination is included automatically for all controllers.
   #
   #
   # Pagination is included automatically for all controllers.
   #
-  # For help rendering pagination links, see 
+  # For help rendering pagination links, see
   # ActionView::Helpers::PaginationHelper.
   #
   # ==== Automatic pagination for every action in a controller
   #
   # ActionView::Helpers::PaginationHelper.
   #
   # ==== Automatic pagination for every action in a controller
   #
-  #   class PersonController < ApplicationController   
+  #   class PersonController < ApplicationController
   #     model :person
   #
   #     paginate :people, :order => 'last_name, first_name',
   #              :per_page => 20
   #     model :person
   #
   #     paginate :people, :order => 'last_name, first_name',
   #              :per_page => 20
-  #     
+  #
   #     # ...
   #   end
   #
   # Each action in this controller now has access to a <tt>@people</tt>
   # instance variable, which is an ordered collection of model objects for the
   #     # ...
   #   end
   #
   # Each action in this controller now has access to a <tt>@people</tt>
   # instance variable, which is an ordered collection of model objects for the
-  # current page (at most 20, sorted by last name and first name), and a 
+  # current page (at most 20, sorted by last name and first name), and a
   # <tt>@person_pages</tt> Paginator instance. The current page is determined
   # by the <tt>params[:page]</tt> variable.
   #
   # <tt>@person_pages</tt> Paginator instance. The current page is determined
   # by the <tt>params[:page]</tt> variable.
   #
@@ -44,23 +44,23 @@ module ActionController
   # and <tt>@people</tt> for a single action, and uses the default of 10 items
   # per page.
   #
   # and <tt>@people</tt> for a single action, and uses the default of 10 items
   # per page.
   #
-  # ==== Custom/"classic" pagination 
+  # ==== Custom/"classic" pagination
   #
   #   def list
   #     @person_pages = Paginator.new self, Person.count, 10, params[:page]
   #
   #   def list
   #     @person_pages = Paginator.new self, Person.count, 10, params[:page]
-  #     @people = Person.find :all, :order => 'last_name, first_name', 
+  #     @people = Person.find :all, :order => 'last_name, first_name',
   #                           :limit  =>  @person_pages.items_per_page,
   #                           :offset =>  @person_pages.current.offset
   #   end
   #                           :limit  =>  @person_pages.items_per_page,
   #                           :offset =>  @person_pages.current.offset
   #   end
-  # 
-  # Explicitly creates the paginator from the previous example and uses 
+  #
+  # Explicitly creates the paginator from the previous example and uses
   # Paginator#to_sql to retrieve <tt>@people</tt> from the model.
   #
   module Pagination
     unless const_defined?(:OPTIONS)
       # A hash holding options for controllers using macro-style pagination
       OPTIONS = Hash.new
   # Paginator#to_sql to retrieve <tt>@people</tt> from the model.
   #
   module Pagination
     unless const_defined?(:OPTIONS)
       # A hash holding options for controllers using macro-style pagination
       OPTIONS = Hash.new
-  
+
       # The default options for pagination
       DEFAULT_OPTIONS = {
         :class_name => nil,
       # The default options for pagination
       DEFAULT_OPTIONS = {
         :class_name => nil,
@@ -80,18 +80,18 @@ module ActionController
     else
       DEFAULT_OPTIONS[:group] = nil
     end
     else
       DEFAULT_OPTIONS[:group] = nil
     end
-      
+
     def self.included(base) #:nodoc:
       super
       base.extend(ClassMethods)
     end
     def self.included(base) #:nodoc:
       super
       base.extend(ClassMethods)
     end
-  
+
     def self.validate_options!(collection_id, options, in_action) #:nodoc:
       options.merge!(DEFAULT_OPTIONS) {|key, old, new| old}
 
       valid_options = DEFAULT_OPTIONS.keys
       valid_options << :actions unless in_action
     def self.validate_options!(collection_id, options, in_action) #:nodoc:
       options.merge!(DEFAULT_OPTIONS) {|key, old, new| old}
 
       valid_options = DEFAULT_OPTIONS.keys
       valid_options << :actions unless in_action
-    
+
       unknown_option_keys = options.keys - valid_options
       raise ActionController::ActionControllerError,
             "Unknown options: #{unknown_option_keys.join(', ')}" unless
       unknown_option_keys = options.keys - valid_options
       raise ActionController::ActionControllerError,
             "Unknown options: #{unknown_option_keys.join(', ')}" unless
@@ -110,7 +110,7 @@ module ActionController
     # <tt>:singular_name</tt>:: the singular name to use, if it can't be inferred by singularizing the collection name
     # <tt>:class_name</tt>:: the class name to use, if it can't be inferred by
     #                        camelizing the singular name
     # <tt>:singular_name</tt>:: the singular name to use, if it can't be inferred by singularizing the collection name
     # <tt>:class_name</tt>:: the class name to use, if it can't be inferred by
     #                        camelizing the singular name
-    # <tt>:per_page</tt>::   the maximum number of items to include in a 
+    # <tt>:per_page</tt>::   the maximum number of items to include in a
     #                        single page. Defaults to 10
     # <tt>:conditions</tt>:: optional conditions passed to Model.find(:all, *params) and
     #                        Model.count
     #                        single page. Defaults to 10
     # <tt>:conditions</tt>:: optional conditions passed to Model.find(:all, *params) and
     #                        Model.count
@@ -133,13 +133,13 @@ module ActionController
       paginator_and_collection_for(collection_id, options)
     end
 
       paginator_and_collection_for(collection_id, options)
     end
 
-    # These methods become class methods on any controller 
+    # These methods become class methods on any controller
     module ClassMethods
       # Creates a +before_filter+ which automatically paginates an Active
       # Record model for all actions in a controller (or certain actions if
       # specified with the <tt>:actions</tt> option).
       #
     module ClassMethods
       # Creates a +before_filter+ which automatically paginates an Active
       # Record model for all actions in a controller (or certain actions if
       # specified with the <tt>:actions</tt> option).
       #
-      # +options+ are the same as PaginationHelper#paginate, with the addition 
+      # +options+ are the same as PaginationHelper#paginate, with the addition
       # of:
       # <tt>:actions</tt>:: an array of actions for which the pagination is
       #                     active. Defaults to +nil+ (i.e., every action)
       # of:
       # <tt>:actions</tt>:: an array of actions for which the pagination is
       #                     active. Defaults to +nil+ (i.e., every action)
@@ -158,17 +158,17 @@ module ActionController
         next unless options[:actions].include? action_name if
           options[:actions]
 
         next unless options[:actions].include? action_name if
           options[:actions]
 
-        paginator, collection = 
+        paginator, collection =
           paginator_and_collection_for(collection_id, options)
 
         paginator_name = "@#{options[:singular_name]}_pages"
         self.instance_variable_set(paginator_name, paginator)
 
         collection_name = "@#{collection_id.to_s}"
           paginator_and_collection_for(collection_id, options)
 
         paginator_name = "@#{options[:singular_name]}_pages"
         self.instance_variable_set(paginator_name, paginator)
 
         collection_name = "@#{collection_id.to_s}"
-        self.instance_variable_set(collection_name, collection)     
+        self.instance_variable_set(collection_name, collection)
       end
     end
       end
     end
-  
+
     # Returns the total number of items in the collection to be paginated for
     # the +model+ and given +conditions+. Override this method to implement a
     # custom counter.
     # Returns the total number of items in the collection to be paginated for
     # the +model+ and given +conditions+. Override this method to implement a
     # custom counter.
@@ -185,7 +185,7 @@ module ActionController
 
       collection.count
     end
 
       collection.count
     end
-    
+
     # Returns a collection of items for the given +model+ and +options[conditions]+,
     # ordered by +options[order]+, for the current page in the given +paginator+.
     # Override this method to implement a custom finder.
     # Returns a collection of items for the given +model+ and +options[conditions]+,
     # ordered by +options[order]+, for the current page in the given +paginator+.
     # Override this method to implement a custom finder.
@@ -199,10 +199,10 @@ module ActionController
       if options[:select]
         collection = collection.select(options[:select])
       end
       if options[:select]
         collection = collection.select(options[:select])
       end
-         
+
       collection.offset(paginator.current.offset).limit(options[:per_page])
     end
       collection.offset(paginator.current.offset).limit(options[:per_page])
     end
-  
+
     protected :create_paginators_and_retrieve_collections,
               :count_collection_for_pagination,
               :find_collection_for_pagination
     protected :create_paginators_and_retrieve_collections,
               :count_collection_for_pagination,
               :find_collection_for_pagination
@@ -213,10 +213,10 @@ module ActionController
       count = count_collection_for_pagination(klass, options)
       paginator = Paginator.new(self, count, options[:per_page], page)
       collection = find_collection_for_pagination(klass, options, paginator)
       count = count_collection_for_pagination(klass, options)
       paginator = Paginator.new(self, count, options[:per_page], page)
       collection = find_collection_for_pagination(klass, options, paginator)
-    
-      return paginator, collection 
+
+      return paginator, collection
     end
     end
-      
+
     private :paginator_and_collection_for
 
     # A class representing a paginator for an Active Record collection.
     private :paginator_and_collection_for
 
     # A class representing a paginator for an Active Record collection.
@@ -236,13 +236,13 @@ module ActionController
         @item_count = item_count || 0
         @items_per_page = items_per_page
         @pages = {}
         @item_count = item_count || 0
         @items_per_page = items_per_page
         @pages = {}
-        
+
         self.current_page = current_page
       end
       attr_reader :controller, :item_count, :items_per_page
         self.current_page = current_page
       end
       attr_reader :controller, :item_count, :items_per_page
-      
+
       # Sets the current page number of this paginator. If +page+ is a Page
       # Sets the current page number of this paginator. If +page+ is a Page
-      # object, its +number+ attribute is used as the value; if the page does 
+      # object, its +number+ attribute is used as the value; if the page does
       # not belong to this Paginator, an ArgumentError is raised.
       def current_page=(page)
         if page.is_a? Page
       # not belong to this Paginator, an ArgumentError is raised.
       def current_page=(page)
         if page.is_a? Page
@@ -267,7 +267,7 @@ module ActionController
 
       # Returns a new Page representing the last page in this paginator.
       def last_page
 
       # Returns a new Page representing the last page in this paginator.
       def last_page
-        @last_page ||= self[page_count] 
+        @last_page ||= self[page_count]
       end
       alias last :last_page
 
       end
       alias last :last_page
 
@@ -312,12 +312,12 @@ module ActionController
         attr_reader :paginator, :number
         alias to_i :number
 
         attr_reader :paginator, :number
         alias to_i :number
 
-        # Compares two Page objects and returns true when they represent the 
+        # Compares two Page objects and returns true when they represent the
         # same page (i.e., their paginators are the same and they have the
         # same page number).
         def ==(page)
           return false if page.nil?
         # same page (i.e., their paginators are the same and they have the
         # same page number).
         def ==(page)
           return false if page.nil?
-          @paginator == page.paginator and 
+          @paginator == page.paginator and
             @number == page.number
         end
 
             @number == page.number
         end
 
@@ -334,12 +334,12 @@ module ActionController
         def offset
           @paginator.items_per_page * (@number - 1)
         end
         def offset
           @paginator.items_per_page * (@number - 1)
         end
-        
+
         # Returns the number of the first item displayed.
         def first_item
           offset + 1
         end
         # Returns the number of the first item displayed.
         def first_item
           offset + 1
         end
-        
+
         # Returns the number of the last item displayed.
         def last_item
           [@paginator.items_per_page * @number, @paginator.item_count].min
         # Returns the number of the last item displayed.
         def last_item
           [@paginator.items_per_page * @number, @paginator.item_count].min
@@ -367,7 +367,7 @@ module ActionController
           if last? then nil else @paginator[@number + 1] end
         end
 
           if last? then nil else @paginator[@number + 1] end
         end
 
-        # Returns a new Window object for this page with the specified 
+        # Returns a new Window object for this page with the specified
         # +padding+.
         def window(padding=2)
           Window.new(self, padding)
         # +padding+.
         def window(padding=2)
           Window.new(self, padding)
@@ -377,7 +377,7 @@ module ActionController
         def to_sql
           [@paginator.items_per_page, offset]
         end
         def to_sql
           [@paginator.items_per_page, offset]
         end
-        
+
         def to_param #:nodoc:
           @number.to_s
         end
         def to_param #:nodoc:
           @number.to_s
         end
index 069d775..01260f9 100644 (file)
@@ -27,7 +27,7 @@ module ActionView
       #                                  (i.e. Older Pages: 1 2 3 4)
       # <tt>:suffix</tt>::               suffix for pagination links
       #                                  (i.e. 1 2 3 4 <- Older Pages)
       #                                  (i.e. Older Pages: 1 2 3 4)
       # <tt>:suffix</tt>::               suffix for pagination links
       #                                  (i.e. 1 2 3 4 <- Older Pages)
-      # <tt>:window_size</tt>::          the number of pages to show around 
+      # <tt>:window_size</tt>::          the number of pages to show around
       #                                  the current page (defaults to <tt>2</tt>)
       # <tt>:always_show_anchors</tt>::  whether or not the first and last
       #                                  pages should always be shown
       #                                  the current page (defaults to <tt>2</tt>)
       # <tt>:always_show_anchors</tt>::  whether or not the first and last
       #                                  pages should always be shown
@@ -48,18 +48,18 @@ module ActionView
       #  # => <a href="/?page=1/">1</a> <a href="/?page=2/">2</a> <a href="/?page=3/">3</a>  ... <a href="/?page=10/">10</a>
       #
       #  pagination_links(@person_pages, :always_show_anchors => false)
       #  # => <a href="/?page=1/">1</a> <a href="/?page=2/">2</a> <a href="/?page=3/">3</a>  ... <a href="/?page=10/">10</a>
       #
       #  pagination_links(@person_pages, :always_show_anchors => false)
-      #  # => 1 <a href="/?page=2/">2</a> <a href="/?page=3/">3</a> 
+      #  # => 1 <a href="/?page=2/">2</a> <a href="/?page=3/">3</a>
       #
       #  pagination_links(@person_pages, :window_size => 1)
       #  # => 1 <a href="/?page=2/">2</a>  ... <a href="/?page=10/">10</a>
       #
       #  pagination_links(@person_pages, :params => { :viewer => "flash" })
       #
       #  pagination_links(@person_pages, :window_size => 1)
       #  # => 1 <a href="/?page=2/">2</a>  ... <a href="/?page=10/">10</a>
       #
       #  pagination_links(@person_pages, :params => { :viewer => "flash" })
-      #  # => 1 <a href="/?page=2&amp;viewer=flash/">2</a> <a href="/?page=3&amp;viewer=flash/">3</a>  ... 
+      #  # => 1 <a href="/?page=2&amp;viewer=flash/">2</a> <a href="/?page=3&amp;viewer=flash/">3</a>  ...
       #  #    <a href="/?page=10&amp;viewer=flash/">10</a>
       def pagination_links(paginator, options={}, html_options={})
         name = options[:name] || DEFAULT_OPTIONS[:name]
         params = (options[:params] || DEFAULT_OPTIONS[:params]).clone
       #  #    <a href="/?page=10&amp;viewer=flash/">10</a>
       def pagination_links(paginator, options={}, html_options={})
         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] || ''
 
@@ -71,9 +71,9 @@ module ActionView
 
       # Iterate through the pages of a given +paginator+, invoking a
       # block for each page number that needs to be rendered as a link.
 
       # Iterate through the pages of a given +paginator+, invoking a
       # block for each page number that needs to be rendered as a link.
-      # 
+      #
       # ==== Options
       # ==== Options
-      # <tt>:window_size</tt>::          the number of pages to show around 
+      # <tt>:window_size</tt>::          the number of pages to show around
       #                                  the current page (defaults to +2+)
       # <tt>:always_show_anchors</tt>::  whether or not the first and last
       #                                  pages should always be shown
       #                                  the current page (defaults to +2+)
       # <tt>:always_show_anchors</tt>::  whether or not the first and last
       #                                  pages should always be shown
@@ -98,9 +98,9 @@ module ActionView
         current_page = paginator.current_page
         window_pages = current_page.window(options[:window_size]).pages
         return if window_pages.length <= 1 unless link_to_current_page
         current_page = paginator.current_page
         window_pages = current_page.window(options[:window_size]).pages
         return if window_pages.length <= 1 unless link_to_current_page
-        
+
         first, last = paginator.first, paginator.last
         first, last = paginator.first, paginator.last
-        
+
         html = ''
 
         html << prefix if prefix
         html = ''
 
         html << prefix if prefix
@@ -110,7 +110,7 @@ module ActionView
           html << ' ... ' if wp_first.number - first.number > 1
           html << ' '
         end
           html << ' ... ' if wp_first.number - first.number > 1
           html << ' '
         end
-          
+
         window_pages.each do |page|
           if current_page == page && !link_to_current_page
             html << page.number.to_s
         window_pages.each do |page|
           if current_page == page && !link_to_current_page
             html << page.number.to_s
@@ -119,8 +119,8 @@ module ActionView
           end
           html << ' '
         end
           end
           html << ' '
         end
-        
-        if always_show_anchors and not (wp_last = window_pages[-1]).last? 
+
+        if always_show_anchors and not (wp_last = window_pages[-1]).last?
           html << ' ... ' if last.number - wp_last.number > 1
           html << yield(last.number)
         end
           html << ' ... ' if last.number - wp_last.number > 1
           html << yield(last.number)
         end
@@ -129,7 +129,7 @@ module ActionView
 
         html
       end
 
         html
       end
-      
+
     end # PaginationHelper
   end # Helpers
 end # ActionView
     end # PaginationHelper
   end # Helpers
 end # ActionView
index d23ef84..bcb7a26 100644 (file)
@@ -1,9 +1,9 @@
 module ConsistencyValidations
   # Generic checks that are run for the updates and deletes of
 module ConsistencyValidations
   # Generic checks that are run for the updates and deletes of
-  # node, ways and relations. This code is here to avoid duplication, 
+  # node, ways and relations. This code is here to avoid duplication,
   # and allow the extention of the checks without having to modify the
   # and allow the extention of the checks without having to modify the
-  # code in 6 places for all the updates and deletes. Some of these tests are 
-  # needed for creates, but are currently not run :-( 
+  # code in 6 places for all the updates and deletes. Some of these tests are
+  # needed for creates, but are currently not run :-(
   # This will throw an exception if there is an inconsistency
   def check_consistency(old, new, user)
     if new.id != old.id or new.id.nil? or old.id.nil?
   # This will throw an exception if there is an inconsistency
   def check_consistency(old, new, user)
     if new.id != old.id or new.id.nil? or old.id.nil?
@@ -18,7 +18,7 @@ module ConsistencyValidations
       raise OSM::APIChangesetAlreadyClosedError.new(new.changeset)
     end
   end
       raise OSM::APIChangesetAlreadyClosedError.new(new.changeset)
     end
   end
-  
+
   # This is similar to above, just some validations don't apply
   def check_create_consistency(new, user)
     if new.changeset.nil?
   # This is similar to above, just some validations don't apply
   def check_create_consistency(new, user)
     if new.changeset.nil?
@@ -38,7 +38,7 @@ module ConsistencyValidations
     # may alter it.
     if changeset.nil?
       raise OSM::APIChangesetMissingError.new
     # may alter it.
     if changeset.nil?
       raise OSM::APIChangesetMissingError.new
-    elsif user.id != changeset.user_id 
+    elsif user.id != changeset.user_id
       raise OSM::APIUserChangesetMismatchError.new
     elsif not changeset.is_open?
       raise OSM::APIChangesetAlreadyClosedError.new(changeset)
       raise OSM::APIUserChangesetMismatchError.new
     elsif not changeset.is_open?
       raise OSM::APIChangesetAlreadyClosedError.new(changeset)
index 698e858..1a87bf6 100755 (executable)
@@ -13,7 +13,7 @@ while(true) do
   ActiveRecord::Base.logger.info("GPX Import daemon wake @ #{Time.now}.")
 
   Trace.find(:all, :conditions => { :inserted => false, :visible => true }, :order => "id").each do |trace|
   ActiveRecord::Base.logger.info("GPX Import daemon wake @ #{Time.now}.")
 
   Trace.find(:all, :conditions => { :inserted => false, :visible => true }, :order => "id").each do |trace|
-    Signal.trap("TERM") do 
+    Signal.trap("TERM") do
       terminated = true
     end
 
       terminated = true
     end
 
@@ -39,7 +39,7 @@ while(true) do
   end
 
   Trace.find(:all, :conditions => { :visible => false }, :order => "id").each do |trace|
   end
 
   Trace.find(:all, :conditions => { :visible => false }, :order => "id").each do |trace|
-    Signal.trap("TERM") do 
+    Signal.trap("TERM") do
       terminated = true
     end
 
       terminated = true
     end
 
index ca38d35..40b43c5 100644 (file)
@@ -7,9 +7,9 @@ class DiffReader
   include ConsistencyValidations
 
   # maps each element type to the model class which handles it
   include ConsistencyValidations
 
   # maps each element type to the model class which handles it
-  MODELS = { 
-    "node"     => Node, 
-    "way"      => Way, 
+  MODELS = {
+    "node"     => Node,
+    "way"      => Way,
     "relation" => Relation
   }
 
     "relation" => Relation
   }
 
@@ -40,7 +40,7 @@ class DiffReader
   end
 
   ##
   end
 
   ##
-  # An element-block mapping for using the LibXML reader interface. 
+  # An element-block mapping for using the LibXML reader interface.
   #
   # Since a lot of LibXML reader usage is boilerplate iteration through
   # elements, it would be better to DRY and do this in a block. This
   #
   # Since a lot of LibXML reader usage is boilerplate iteration through
   # elements, it would be better to DRY and do this in a block. This
@@ -73,13 +73,13 @@ class DiffReader
         else
           read_or_die
         end
         else
           read_or_die
         end
-      end 
+      end
     end
     read_or_die
   end
 
   ##
     end
     read_or_die
   end
 
   ##
-  # An element-block mapping for using the LibXML reader interface. 
+  # An element-block mapping for using the LibXML reader interface.
   #
   # Since a lot of LibXML reader usage is boilerplate iteration through
   # elements, it would be better to DRY and do this in a block. This
   #
   # Since a lot of LibXML reader usage is boilerplate iteration through
   # elements, it would be better to DRY and do this in a block. This
@@ -89,7 +89,7 @@ class DiffReader
       model = MODELS[model_name]
       raise OSM::APIBadUserInput.new("Unexpected element type #{model_name}, " +
                                      "expected node, way or relation.") if model.nil?
       model = MODELS[model_name]
       raise OSM::APIBadUserInput.new("Unexpected element type #{model_name}, " +
                                      "expected node, way or relation.") if model.nil?
-      # new in libxml-ruby >= 2, expand returns an element not associated 
+      # new in libxml-ruby >= 2, expand returns an element not associated
       # with a document. this means that there's no encoding parameter,
       # which means basically nothing works.
       expanded = @reader.expand
       # with a document. this means that there's no encoding parameter,
       # which means basically nothing works.
       expanded = @reader.expand
@@ -112,7 +112,7 @@ class DiffReader
   # such as save_ and delete_with_history.
   def check(model, xml, new)
     raise OSM::APIBadXMLError.new(model, xml) if new.nil?
   # such as save_ and delete_with_history.
   def check(model, xml, new)
     raise OSM::APIBadXMLError.new(model, xml) if new.nil?
-    unless new.changeset_id == @changeset.id 
+    unless new.changeset_id == @changeset.id
       raise OSM::APIChangesetMismatchError.new(new.changeset_id, @changeset.id)
     end
   end
       raise OSM::APIChangesetMismatchError.new(new.changeset_id, @changeset.id)
     end
   end
@@ -122,7 +122,7 @@ class DiffReader
   # is *not* transactional, so code which calls it should ensure that the
   # appropriate transaction block is in place.
   #
   # is *not* transactional, so code which calls it should ensure that the
   # appropriate transaction block is in place.
   #
-  # On a failure to meet preconditions (e.g: optimistic locking fails) 
+  # On a failure to meet preconditions (e.g: optimistic locking fails)
   # an exception subclassing OSM::APIError will be thrown.
   def commit
 
   # an exception subclassing OSM::APIError will be thrown.
   def commit
 
@@ -162,7 +162,7 @@ class DiffReader
 
           # create element given user
           new.create_with_history(@changeset.user)
 
           # create element given user
           new.create_with_history(@changeset.user)
-          
+
           # save placeholder => allocated ID map
           ids[model_sym][placeholder_id] = new.id
 
           # save placeholder => allocated ID map
           ids[model_sym][placeholder_id] = new.id
 
@@ -173,7 +173,7 @@ class DiffReader
           xml_result["new_version"] = new.version.to_s
           result.root << xml_result
         end
           xml_result["new_version"] = new.version.to_s
           result.root << xml_result
         end
-        
+
       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.
       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.
@@ -199,7 +199,7 @@ class DiffReader
 
           xml_result = XML::Node.new model.to_s.downcase
           xml_result["old_id"] = client_id.to_s
 
           xml_result = XML::Node.new model.to_s.downcase
           xml_result["old_id"] = client_id.to_s
-          xml_result["new_id"] = id.to_s 
+          xml_result["new_id"] = id.to_s
           # version is updated in "old" through the update, so we must not
           # return new.version here but old.version!
           xml_result["new_version"] = old.version.to_s
           # version is updated in "old" through the update, so we must not
           # return new.version here but old.version!
           xml_result["new_version"] = old.version.to_s
index 101a6f8..84f2a94 100644 (file)
@@ -1,4 +1,4 @@
-module Editors 
+module Editors
   ALL_EDITORS = [ "potlatch", "potlatch2", "id", "remote" ]
   RECOMMENDED_EDITORS = [ "id", "potlatch2", "remote" ]
 end
   ALL_EDITORS = [ "potlatch", "potlatch2", "id", "remote" ]
   RECOMMENDED_EDITORS = [ "id", "potlatch2", "remote" ]
 end
index fbfb0c2..7c65e3a 100644 (file)
@@ -1,9 +1,9 @@
 module GeoRecord
 module GeoRecord
-  # This scaling factor is used to convert between the float lat/lon that is 
+  # This scaling factor is used to convert between the float lat/lon that is
   # returned by the API, and the integer lat/lon equivalent that is stored in
   # the database.
   SCALE = 10000000
   # returned by the API, and the integer lat/lon equivalent that is stored in
   # the database.
   SCALE = 10000000
-  
+
   def self.included(base)
     base.scope :bbox, ->(bbox) { base.where(OSM.sql_for_area(bbox)) }
     base.before_save :update_tile
   def self.included(base)
     base.scope :bbox, ->(bbox) { base.where(OSM.sql_for_area(bbox)) }
     base.before_save :update_tile
@@ -40,7 +40,7 @@ module GeoRecord
   end
 
 private
   end
 
 private
-  
+
   def lat2y(a)
     180/Math::PI * Math.log(Math.tan(Math::PI/4+a*(Math::PI/180)/2))
   end
   def lat2y(a)
     180/Math::PI * Math.log(Math.tan(Math::PI/4+a*(Math::PI/180)/2))
   end
index c7652ae..e3db8fb 100644 (file)
@@ -1,66 +1,66 @@
 # OutputCompression
 # OutputCompression
-# Rails output compression filters 
-# 
-# Adds two classmethods to ActionController that can be used as after-filters: 
-# strip_whitespace and compress_output. 
-# If you use page-caching, you MUST specify the compress_output filter AFTER 
-# caches_page, otherwise the compressed data will be cached instead of the HTML 
-# 
-# class MyController < ApplicationController 
-#  after_filter :strip_whitespace 
-#  caches_page :index 
-#  after_filter :compress_output 
-# end 
+# Rails output compression filters
+#
+# Adds two classmethods to ActionController that can be used as after-filters:
+# strip_whitespace and compress_output.
+# If you use page-caching, you MUST specify the compress_output filter AFTER
+# caches_page, otherwise the compressed data will be cached instead of the HTML
+#
+# class MyController < ApplicationController
+#  after_filter :strip_whitespace
+#  caches_page :index
+#  after_filter :compress_output
+# end
 
 
-begin 
-  require 'zlib' 
-  require 'stringio' 
-  GZIP_SUPPORTED = true 
-rescue 
-  GZIP_SUPPORTED = false 
-end 
+begin
+  require 'zlib'
+  require 'stringio'
+  GZIP_SUPPORTED = true
+rescue
+  GZIP_SUPPORTED = false
+end
 
 
-module CompressionSystem 
-  def compress_output 
+module CompressionSystem
+  def compress_output
     return unless accepts_gzip?
     return unless accepts_gzip?
-    output = StringIO.new 
-    def output.close 
-      # Zlib does a close. Bad Zlib... 
-      rewind 
-    end 
-    gz = Zlib::GzipWriter.new(output) 
-    gz.write(response.body) 
-    gz.close 
-    if output.length < response.body.length 
-      @old_response_body = response.body 
-      response.body = output.string 
-      response.headers['Content-encoding'] = @compression_encoding 
-    end 
-  end 
-  
-  def accepts_gzip? 
-    return false unless GZIP_SUPPORTED 
-    accepts = request.env['HTTP_ACCEPT_ENCODING'] 
-    return false unless accepts && accepts =~ /(x-gzip|gzip)/ 
-    @compression_encoding = $1 
-    true 
+    output = StringIO.new
+    def output.close
+      # Zlib does a close. Bad Zlib...
+      rewind
+    end
+    gz = Zlib::GzipWriter.new(output)
+    gz.write(response.body)
+    gz.close
+    if output.length < response.body.length
+      @old_response_body = response.body
+      response.body = output.string
+      response.headers['Content-encoding'] = @compression_encoding
+    end
+  end
+
+  def accepts_gzip?
+    return false unless GZIP_SUPPORTED
+    accepts = request.env['HTTP_ACCEPT_ENCODING']
+    return false unless accepts && accepts =~ /(x-gzip|gzip)/
+    @compression_encoding = $1
+    true
   end
   end
-  
+
   def strip_whitespace
   def strip_whitespace
-    response.body.gsub!(/()|(.*?<\/script>)|()|()|\s+/m) do |m| 
-      if m =~ /^()(.*?)<\/script>$/m 
-        $1 + $2.strip.gsub(/\s+/, ' ').gsub('',"\n-->") + '' 
-      elsif m =~ /^$/m 
-        '' 
-      elsif m =~ /^<(textarea|pre)/ 
-        m 
-      else ' ' 
-      end 
+    response.body.gsub!(/()|(.*?<\/script>)|()|()|\s+/m) do |m|
+      if m =~ /^()(.*?)<\/script>$/m
+        $1 + $2.strip.gsub(/\s+/, ' ').gsub('',"\n-->") + ''
+      elsif m =~ /^$/m
+        ''
+      elsif m =~ /^<(textarea|pre)/
+        m
+      else ' '
+      end
     end
     end
-    response.body.gsub! /\s+\s+/, '>' 
-  end 
-end 
+    response.body.gsub! /\s+\s+/, '>'
+  end
+end
 
 
-class ActionController::Base 
-  include CompressionSystem 
-end
\ No newline at end of file
+class ActionController::Base
+  include CompressionSystem
+end
index 359492f..bd2c905 100644 (file)
@@ -5,33 +5,33 @@ module Potlatch
 
   # The AMF class is a set of helper functions for encoding and decoding AMF.
   class AMF
 
   # The AMF class is a set of helper functions for encoding and decoding AMF.
   class AMF
-    
+
     # Return two-byte integer
     # Return two-byte integer
-    def self.getint(s) 
+    def self.getint(s)
       s.getbyte*256+s.getbyte
     end
 
     # Return four-byte long
       s.getbyte*256+s.getbyte
     end
 
     # Return four-byte long
-    def self.getlong(s) 
+    def self.getlong(s)
       ((s.getbyte*256+s.getbyte)*256+s.getbyte)*256+s.getbyte
     end
 
       ((s.getbyte*256+s.getbyte)*256+s.getbyte)*256+s.getbyte
     end
 
-    # Return string with two-byte length 
-    def self.getstring(s) 
+    # Return string with two-byte length
+    def self.getstring(s)
       len=s.getbyte*256+s.getbyte
       str=s.read(len)
       str.force_encoding("UTF-8") if str.respond_to?("force_encoding")
       str
     end
 
       len=s.getbyte*256+s.getbyte
       str=s.read(len)
       str.force_encoding("UTF-8") if str.respond_to?("force_encoding")
       str
     end
 
-    # Return eight-byte double-precision float 
-    def self.getdouble(s) 
+    # Return eight-byte double-precision float
+    def self.getdouble(s)
       a=s.read(8).unpack('G')                  # G big-endian, E little-endian
       a[0]
     end
 
     # Return numeric array
       a=s.read(8).unpack('G')                  # G big-endian, E little-endian
       a[0]
     end
 
     # Return numeric array
-    def self.getarray(s) 
+    def self.getarray(s)
       len=getlong(s)
       arr=[]
       for i in (0..len-1)
       len=getlong(s)
       arr=[]
       for i in (0..len-1)
@@ -40,8 +40,8 @@ module Potlatch
       arr
     end
 
       arr
     end
 
-    # Return object/hash 
-    def self.getobject(s) 
+    # Return object/hash
+    def self.getobject(s)
       arr={}
       while (key=getstring(s))
         if (key=='') then break end
       arr={}
       while (key=getstring(s))
         if (key=='') then break end
@@ -52,7 +52,7 @@ module Potlatch
     end
 
     # Parse and get value
     end
 
     # Parse and get value
-    def self.getvalue(s) 
+    def self.getvalue(s)
       case s.getbyte
       when 0;  return getdouble(s)                     # number
       when 1;  return s.getbyte                        # boolean
       case s.getbyte
       when 0;  return getdouble(s)                     # number
       when 1;  return s.getbyte                        # boolean
@@ -68,7 +68,7 @@ module Potlatch
     end
 
     # Envelope data into AMF writeable form
     end
 
     # Envelope data into AMF writeable form
-    def self.putdata(index,n) 
+    def self.putdata(index,n)
       d =encodestring(index+"/onResult")
       d+=encodestring("null")
       d+=[-1].pack("N")
       d =encodestring(index+"/onResult")
       d+=encodestring("null")
       d+=[-1].pack("N")
@@ -76,7 +76,7 @@ module Potlatch
     end
 
     # Pack variables as AMF
     end
 
     # Pack variables as AMF
-    def self.encodevalue(n) 
+    def self.encodevalue(n)
       case n.class.to_s
       when 'Array'
         a=10.chr+encodelong(n.length)
       case n.class.to_s
       when 'Array'
         a=10.chr+encodelong(n.length)
@@ -112,13 +112,13 @@ module Potlatch
       a.chr+b.chr+n
     end
 
       a.chr+b.chr+n
     end
 
-    # Encode number as eight-byte double precision float 
-    def self.encodedouble(n) 
+    # Encode number as eight-byte double precision float
+    def self.encodedouble(n)
       [n].pack('G')
     end
 
     # Encode number as four-byte long
       [n].pack('G')
     end
 
     # Encode number as four-byte long
-    def self.encodelong(n) 
+    def self.encodelong(n)
       [n].pack('N')
     end
 
       [n].pack('N')
     end
 
@@ -243,7 +243,7 @@ module Potlatch
         }
       end
       icon_list.reverse!
         }
       end
       icon_list.reverse!
-      
+
       # Read auto-complete
       autotags={}; autotags['point']={}; autotags['way']={}; autotags['POI']={};
       File.open("#{Rails.root}/config/potlatch/autocomplete.txt") do |file|
       # Read auto-complete
       autotags={}; autotags['point']={}; autotags['way']={}; autotags['POI']={};
       File.open("#{Rails.root}/config/potlatch/autocomplete.txt") do |file|
@@ -262,4 +262,3 @@ module Potlatch
   end
 
 end
   end
 
 end
-
index ed5b9f4..70e5b46 100644 (file)
@@ -53,7 +53,7 @@ module Quova
     def status
       @ipinfo["GetIpInfoResult"]["Response"]["Status"].to_i
     end
     def status
       @ipinfo["GetIpInfoResult"]["Response"]["Status"].to_i
     end
+
     def country_code
       @ipinfo["GetIpInfoResult"]["Location"]["Country"]["Name"]
     end
     def country_code
       @ipinfo["GetIpInfoResult"]["Location"]["Country"]["Name"]
     end
@@ -63,4 +63,3 @@ module Quova
     end
   end
 end
     end
   end
 end
-
index 620b219..b7f7046 100644 (file)
@@ -6,7 +6,7 @@ module Redactable
     # in scope for the module itself.
     base.scope :unredacted, -> { base.where(:redaction_id => nil) }
   end
     # in scope for the module itself.
     base.scope :unredacted, -> { base.where(:redaction_id => nil) }
   end
-  
+
   def redacted?
     not self.redaction.nil?
   end
   def redacted?
     not self.redaction.nil?
   end
index 533c8fb..4cd2547 100644 (file)
@@ -102,7 +102,7 @@ module RichText
         else
           "<a rel=\"nofollow\" href=\"#{link}\">#{link}</a>"
         end
         else
           "<a rel=\"nofollow\" href=\"#{link}\">#{link}</a>"
         end
-      end 
+      end
     end
   end
 
     end
   end
 
index 578039f..2244a3e 100644 (file)
@@ -37,7 +37,7 @@ module SessionPersistence
   #   session_expires_after 1.hour
   #   session_expires_after 2.weeks
   def session_expires_after(seconds)
   #   session_expires_after 1.hour
   #   session_expires_after 2.weeks
   def session_expires_after(seconds)
-    session[session_persistence_key] = seconds 
+    session[session_persistence_key] = seconds
   end
 
   # Expire the session.
   end
 
   # Expire the session.
index 045883d..b09e65f 100644 (file)
@@ -7,12 +7,12 @@
 module ShortLink
 
   # array of 64 chars to encode 6 bits. this is almost like base64 encoding, but
 module ShortLink
 
   # array of 64 chars to encode 6 bits. this is almost like base64 encoding, but
-  # the symbolic chars are different, as base64's + and / aren't very 
+  # the symbolic chars are different, as base64's + and / aren't very
   # URL-friendly.
   ARRAY = ('A'..'Z').to_a + ('a'..'z').to_a + ('0'..'9').to_a + ['_','~']
 
   ##
   # URL-friendly.
   ARRAY = ('A'..'Z').to_a + ('a'..'z').to_a + ('0'..'9').to_a + ['_','~']
 
   ##
-  # Given a string encoding a location, returns the [lon, lat, z] tuple of that 
+  # Given a string encoding a location, returns the [lon, lat, z] tuple of that
   # location.
   def self.decode(str)
     x = 0
   # location.
   def self.decode(str)
     x = 0
@@ -42,15 +42,15 @@ module ShortLink
     y <<= (32 - z)
 
     # project the parameters back to their coordinate ranges.
     y <<= (32 - z)
 
     # project the parameters back to their coordinate ranges.
-    [(x * 360.0 / 2**32) - 180.0, 
-     (y * 180.0 / 2**32) - 90.0, 
+    [(x * 360.0 / 2**32) - 180.0,
+     (y * 180.0 / 2**32) - 90.0,
      z - 8 - (z_offset % 3)]
   end
 
   ##
   # given a location and zoom, return a short string representing it.
   def self.encode(lon, lat, z)
      z - 8 - (z_offset % 3)]
   end
 
   ##
   # given a location and zoom, return a short string representing it.
   def self.encode(lon, lat, z)
-    code = interleave_bits(((lon + 180.0) * 2**32 / 360.0).to_i, 
+    code = interleave_bits(((lon + 180.0) * 2**32 / 360.0).to_i,
                            ((lat +  90.0) * 2**32 / 180.0).to_i)
     str = ""
     # add eight to the zoom level, which approximates an accuracy of
                            ((lat +  90.0) * 2**32 / 180.0).to_i)
     str = ""
     # add eight to the zoom level, which approximates an accuracy of
@@ -63,12 +63,12 @@ module ShortLink
     # partial zoom levels (characters themselves have a granularity
     # of 3 zoom levels).
     ((z + 8) % 3).times { str << "-" }
     # partial zoom levels (characters themselves have a granularity
     # of 3 zoom levels).
     ((z + 8) % 3).times { str << "-" }
-    
+
     return str
   end
 
   private
     return str
   end
 
   private
-  
+
   ##
   # interleaves the bits of two 32-bit numbers. the result is known
   # as a Morton code.
   ##
   # interleaves the bits of two 32-bit numbers. the result is known
   # as a Morton code.
index 5301738..22762ef 100644 (file)
@@ -6,14 +6,14 @@ namespace 'db' do
     increment = 1000
     offset = 0
     id_max = OldNode.find(:first, :order => 'id desc').id
     increment = 1000
     offset = 0
     id_max = OldNode.find(:first, :order => 'id desc').id
-    
+
     while offset < (id_max + increment)
       hash = {}
 
      #should be offsetting not selecting
       OldNode.find(:all, :limit => increment, :offset => offset, :order => 'timestamp').each do |node|
          if hash[node.id].nil?
     while offset < (id_max + increment)
       hash = {}
 
      #should be offsetting not selecting
       OldNode.find(:all, :limit => increment, :offset => offset, :order => 'timestamp').each do |node|
          if hash[node.id].nil?
-           hash[node.id] = [] 
+           hash[node.id] = []
          end
          hash[node.id] << node
       end
          end
          hash[node.id] << node
       end
@@ -31,16 +31,10 @@ namespace 'db' do
           temp_old_node.tile = node.tile
           temp_old_node.version = n
           temp_old_node.save! || raise
           temp_old_node.tile = node.tile
           temp_old_node.version = n
           temp_old_node.save! || raise
-          n +=1 
+          n +=1
         end
       end
       offset += increment
     end
   end
 end
         end
       end
       offset += increment
     end
   end
 end
-
-
-
-
-
-
index 7a915c2..ec0bd94 100644 (file)
@@ -1,5 +1,5 @@
 namespace :test do
 namespace :test do
-  Rails::TestTask.new(lib: "test:prepare") do |t|    
+  Rails::TestTask.new(lib: "test:prepare") do |t|
     t.pattern = 'test/lib/**/*_test.rb'
   end
 end
     t.pattern = 'test/lib/**/*_test.rb'
   end
 end
index 640a495..94dbdb7 100644 (file)
@@ -1,7 +1,7 @@
 module ActiveRecord
   module Validations
     module ClassMethods
 module ActiveRecord
   module Validations
     module ClassMethods
-      
+
       # error message when invalid UTF-8 is detected
       @@invalid_utf8_message = " is invalid UTF-8"
 
       # error message when invalid UTF-8 is detected
       @@invalid_utf8_message = " is invalid UTF-8"
 
@@ -13,7 +13,7 @@ module ActiveRecord
         validates_each(attrs) do |record, attr, value|
           record.errors.add(attr, @@invalid_utf8_message) unless UTF8.valid? value
         end
         validates_each(attrs) do |record, attr, value|
           record.errors.add(attr, @@invalid_utf8_message) unless UTF8.valid? value
         end
-      end    
+      end
 
     end
   end
 
     end
   end
index feb98b6..69c7ec9 100755 (executable)
@@ -1,2 +1,2 @@
 #!/usr/bin/env ruby
 #!/usr/bin/env ruby
-Dir[File.dirname(__FILE__) + "/../lib/daemons/*_ctl"].each {|f| `#{f} #{ARGV.first}`}
\ No newline at end of file
+Dir[File.dirname(__FILE__) + "/../lib/daemons/*_ctl"].each {|f| `#{f} #{ARGV.first}`}
index 3e05363..e181bf3 100755 (executable)
@@ -30,7 +30,7 @@ def po2hash(f)
     elsif line[0..7] == 'msgstr "'
       msgstr = line[8..-2]
     end
     elsif line[0..7] == 'msgstr "'
       msgstr = line[8..-2]
     end
-    
+
     if !path.empty? and !msgstr.empty?
       add_translation(trs, path, msgstr)
       path = []
     if !path.empty? and !msgstr.empty?
       add_translation(trs, path, msgstr)
       path = []
index ce785bb..f20e700 100755 (executable)
@@ -57,7 +57,7 @@ begin
     puts "<tr><th>Nodes</th><td>#{day_count}</td><td>#{week_count}</td><td>#{month_count}</td></tr>"
 
     puts "</table>"
     puts "<tr><th>Nodes</th><td>#{day_count}</td><td>#{week_count}</td><td>#{month_count}</td></tr>"
 
     puts "</table>"
-  
+
     puts "<h2>Top users editing over the past...</h2>"
     puts "<table>"
     puts "<tr><th>Day</th><th>Week</th><th>Month</th></tr>"
     puts "<h2>Top users editing over the past...</h2>"
     puts "<table>"
     puts "<tr><th>Day</th><th>Week</th><th>Month</th></tr>"
index 073b822..ef50cfe 100644 (file)
@@ -24,7 +24,7 @@ class AmfControllerTest < ActionController::TestCase
     amf_content "getway", "/1", [id]
     post :amf_read
     assert_response :success
     amf_content "getway", "/1", [id]
     post :amf_read
     assert_response :success
-    amf_parse_response                                         
+    amf_parse_response
     way = amf_result("/1")
     assert_equal 0, way[0]
     assert_equal "", way[1]
     way = amf_result("/1")
     assert_equal 0, way[0]
     assert_equal "", way[1]
@@ -55,7 +55,7 @@ class AmfControllerTest < ActionController::TestCase
     amf_content "getway", "/1", [id]
     post :amf_read
     assert_response :success
     amf_content "getway", "/1", [id]
     post :amf_read
     assert_response :success
-    amf_parse_response                                         
+    amf_parse_response
     way = amf_result("/1")
     assert_equal 0, way[0]
     assert_equal "", way[1]
     way = amf_result("/1")
     assert_equal 0, way[0]
     assert_equal "", way[1]
@@ -72,7 +72,7 @@ class AmfControllerTest < ActionController::TestCase
     amf_content "getway", "/1", [id]
     post :amf_read
     assert_response :success
     amf_content "getway", "/1", [id]
     post :amf_read
     assert_response :success
-    amf_parse_response                                         
+    amf_parse_response
     way = amf_result("/1")
     assert_equal 0, way[0]
     assert_equal "", way[1]
     way = amf_result("/1")
     assert_equal 0, way[0]
     assert_equal "", way[1]
@@ -90,7 +90,7 @@ class AmfControllerTest < ActionController::TestCase
     amf_content "getway", "/1", [id]
     post :amf_read
     assert_response :success
     amf_content "getway", "/1", [id]
     post :amf_read
     assert_response :success
-    amf_parse_response                                         
+    amf_parse_response
     way = amf_result("/1")
     assert_equal 0, way[0]
     assert_equal "", way[1]
     way = amf_result("/1")
     assert_equal 0, way[0]
     assert_equal "", way[1]
@@ -125,7 +125,7 @@ class AmfControllerTest < ActionController::TestCase
     amf_content "whichways", "/1", [minlon, minlat, maxlon, maxlat]
     post :amf_read
     assert_response :success
     amf_content "whichways", "/1", [minlon, minlat, maxlon, maxlat]
     post :amf_read
     assert_response :success
-    amf_parse_response 
+    amf_parse_response
 
     # check contents of message
     map = amf_result "/1"
 
     # check contents of message
     map = amf_result "/1"
@@ -230,7 +230,7 @@ class AmfControllerTest < ActionController::TestCase
     amf_content "whichways_deleted", "/1", bbox
     post :amf_read
     assert_response :success
     amf_content "whichways_deleted", "/1", bbox
     post :amf_read
     assert_response :success
-    amf_parse_response 
+    amf_parse_response
 
     map = amf_result "/1"
     assert_deleted_boundary_error map, " The server said: The maximum bbox size is 0.25, and your request was too large. Either request a smaller area, or use planet.osm"
 
     map = amf_result "/1"
     assert_deleted_boundary_error map, " The server said: The maximum bbox size is 0.25, and your request was too large. Either request a smaller area, or use planet.osm"
@@ -280,11 +280,11 @@ class AmfControllerTest < ActionController::TestCase
     # instead of a version number...
     # try to get version 1
     v1 = ways(:way_with_versions_v1)
     # instead of a version number...
     # try to get version 1
     v1 = ways(:way_with_versions_v1)
-    { latest.id => '', 
+    { latest.id => '',
       v1.way_id => v1.timestamp.strftime("%d %b %Y, %H:%M:%S")
     }.each do |id, t|
       amf_content "getway_old", "/1", [id, t]
       v1.way_id => v1.timestamp.strftime("%d %b %Y, %H:%M:%S")
     }.each do |id, t|
       amf_content "getway_old", "/1", [id, t]
-      post :amf_read      
+      post :amf_read
       assert_response :success
       amf_parse_response
       returned_way = amf_result("/1")
       assert_response :success
       amf_parse_response
       returned_way = amf_result("/1")
@@ -294,7 +294,7 @@ class AmfControllerTest < ActionController::TestCase
       assert_equal latest.version, returned_way[5]
     end
   end
       assert_equal latest.version, returned_way[5]
     end
   end
-  
+
   ##
   # test that the server doesn't fall over when rubbish is passed
   # into the method args.
   ##
   # test that the server doesn't fall over when rubbish is passed
   # into the method args.
@@ -323,8 +323,8 @@ class AmfControllerTest < ActionController::TestCase
     v1 = ways(:way_with_versions_v1)
     # try to get last visible version of non-existent way
     # try to get specific version of non-existent way
     v1 = ways(:way_with_versions_v1)
     # try to get last visible version of non-existent way
     # try to get specific version of non-existent way
-    [[0, ''], 
-     [0, '1 Jan 1970, 00:00:00'], 
+    [[0, ''],
+     [0, '1 Jan 1970, 00:00:00'],
      [v1.way_id, (v1.timestamp - 10).strftime("%d %b %Y, %H:%M:%S")]
     ].each do |id, t|
       amf_content "getway_old", "/1", [id, t]
      [v1.way_id, (v1.timestamp - 10).strftime("%d %b %Y, %H:%M:%S")]
     ].each do |id, t|
       amf_content "getway_old", "/1", [id, t]
@@ -351,7 +351,7 @@ class AmfControllerTest < ActionController::TestCase
 
     # ['way',wayid,history]
     assert_equal 'way', history[0]
 
     # ['way',wayid,history]
     assert_equal 'way', history[0]
-    assert_equal latest.id, history[1] 
+    assert_equal latest.id, history[1]
     # We use dates rather than version numbers here, because you might
     # have moved a node within a way (i.e. way version not incremented).
     # The timestamp is +1 because we say "give me the revision of 15:33:02",
     # We use dates rather than version numbers here, because you might
     # have moved a node within a way (i.e. way version not incremented).
     # The timestamp is +1 because we say "give me the revision of 15:33:02",
@@ -384,14 +384,14 @@ class AmfControllerTest < ActionController::TestCase
     # ['node',nodeid,history]
     # note that (as per getway_history) we actually round up
     # to the next second
     # ['node',nodeid,history]
     # note that (as per getway_history) we actually round up
     # to the next second
-    assert_equal history[0], 'node', 
+    assert_equal history[0], 'node',
       'first element should be "node"'
     assert_equal history[1], latest.id,
       'second element should be the input node ID'
       'first element should be "node"'
     assert_equal history[1], latest.id,
       'second element should be the input node ID'
-    assert_equal history[2].first[0], 
+    assert_equal history[2].first[0],
       (latest.timestamp + 1).strftime("%d %b %Y, %H:%M:%S"),
       'first element in third element (array) should be the latest version'
       (latest.timestamp + 1).strftime("%d %b %Y, %H:%M:%S"),
       'first element in third element (array) should be the latest version'
-    assert_equal history[2].last[0], 
+    assert_equal history[2].last[0],
       (nodes(:node_with_versions_v1).timestamp + 1).strftime("%d %b %Y, %H:%M:%S"),
       'last element in third element (array) should be the initial version'
   end
       (nodes(:node_with_versions_v1).timestamp + 1).strftime("%d %b %Y, %H:%M:%S"),
       'last element in third element (array) should be the initial version'
   end
@@ -419,13 +419,13 @@ class AmfControllerTest < ActionController::TestCase
     assert_response :success
     amf_parse_response
     result = amf_result("/1")
     assert_response :success
     amf_parse_response
     result = amf_result("/1")
-    
+
     assert_equal 0, result[0]
     assert_equal "", result[1]
     assert_equal nd.id, result[2]
     assert_equal nd.id, result[3]
     assert_equal nd.version+1, result[4]
     assert_equal 0, result[0]
     assert_equal "", result[1]
     assert_equal nd.id, result[2]
     assert_equal nd.id, result[3]
     assert_equal nd.version+1, result[4]
-    
+
     # Now try to update again, with a different lat/lon, using the updated version number
     lat = nd.lat+0.1
     lon = nd.lon-0.1
     # Now try to update again, with a different lat/lon, using the updated version number
     lat = nd.lat+0.1
     lon = nd.lon-0.1
@@ -434,14 +434,14 @@ class AmfControllerTest < ActionController::TestCase
     assert_response :success
     amf_parse_response
     result = amf_result("/2")
     assert_response :success
     amf_parse_response
     result = amf_result("/2")
-    
+
     assert_equal 0, result[0]
     assert_equal "", result[1]
     assert_equal nd.id, result[2]
     assert_equal nd.id, result[3]
     assert_equal nd.version+2, result[4]
   end
     assert_equal 0, result[0]
     assert_equal "", result[1]
     assert_equal nd.id, result[2]
     assert_equal nd.id, result[3]
     assert_equal nd.version+2, result[4]
   end
-  
+
   # Check that we can create a no valid poi
   # Using similar method for the node controller test
   def test_putpoi_create_valid
   # Check that we can create a no valid poi
   # Using similar method for the node controller test
   def test_putpoi_create_valid
@@ -452,21 +452,21 @@ class AmfControllerTest < ActionController::TestCase
     lon = rand(100)-50 + rand
     # normal user has a changeset open
     changeset = changesets(:public_user_first_change)
     lon = rand(100)-50 + rand
     # normal user has a changeset open
     changeset = changesets(:public_user_first_change)
-    
+
     amf_content "putpoi", "/1", ["test@example.com:test", changeset.id, nil, nil, lon, lat, {}, nil]
     post :amf_write
     assert_response :success
     amf_parse_response
     result = amf_result("/1")
     amf_content "putpoi", "/1", ["test@example.com:test", changeset.id, nil, nil, lon, lat, {}, nil]
     post :amf_write
     assert_response :success
     amf_parse_response
     result = amf_result("/1")
-    
+
     # check the array returned by the amf
     assert_equal 5, result.size
     assert_equal 0, result[0], "expected to get the status ok from the amf"
     assert_equal 0, result[2], "The old id should be 0"
     assert result[3] > 0, "The new id should be greater than 0"
     assert_equal 1, result[4], "The new version should be 1"
     # check the array returned by the amf
     assert_equal 5, result.size
     assert_equal 0, result[0], "expected to get the status ok from the amf"
     assert_equal 0, result[2], "The old id should be 0"
     assert result[3] > 0, "The new id should be greater than 0"
     assert_equal 1, result[4], "The new version should be 1"
-    
-    # Finally check that the node that was saved has saved the data correctly 
+
+    # Finally check that the node that was saved has saved the data correctly
     # in both the current and history tables
     # First check the current table
     current_node = Node.find(result[3].to_i)
     # in both the current and history tables
     # First check the current table
     current_node = Node.find(result[3].to_i)
@@ -482,7 +482,7 @@ class AmfControllerTest < ActionController::TestCase
     assert_in_delta lon, first_historic_node.lon, 0.00001, "The longitude was not retreuved correctly"
     assert_equal 0, first_historic_node.tags.size, "There seems to be a tag that have been attached to this node"
     assert_equal result[4], first_historic_node.version, "The version returned, is different to the one returned by the amf"
     assert_in_delta lon, first_historic_node.lon, 0.00001, "The longitude was not retreuved correctly"
     assert_equal 0, first_historic_node.tags.size, "There seems to be a tag that have been attached to this node"
     assert_equal result[4], first_historic_node.version, "The version returned, is different to the one returned by the amf"
-    
+
     ####
     # This node has some tags
     tnd = Node.new
     ####
     # This node has some tags
     tnd = Node.new
@@ -491,7 +491,7 @@ class AmfControllerTest < ActionController::TestCase
     lon = rand(100)-50 + rand
     # normal user has a changeset open
     changeset = changesets(:public_user_first_change)
     lon = rand(100)-50 + rand
     # normal user has a changeset open
     changeset = changesets(:public_user_first_change)
-    
+
     amf_content "putpoi", "/2", ["test@example.com:test", changeset.id, nil, nil, lon, lat, { "key" => "value", "ping" => "pong" }, nil]
     post :amf_write
     assert_response :success
     amf_content "putpoi", "/2", ["test@example.com:test", changeset.id, nil, nil, lon, lat, { "key" => "value", "ping" => "pong" }, nil]
     post :amf_write
     assert_response :success
@@ -504,8 +504,8 @@ class AmfControllerTest < ActionController::TestCase
     assert_equal 0, result[2], "The old id should be 0"
     assert result[3] > 0, "The new id should be greater than 0"
     assert_equal 1, result[4], "The new version should be 1"
     assert_equal 0, result[2], "The old id should be 0"
     assert result[3] > 0, "The new id should be greater than 0"
     assert_equal 1, result[4], "The new version should be 1"
-    
-    # Finally check that the node that was saved has saved the data correctly 
+
+    # Finally check that the node that was saved has saved the data correctly
     # in both the current and history tables
     # First check the current table
     current_node = Node.find(result[3].to_i)
     # in both the current and history tables
     # First check the current table
     current_node = Node.find(result[3].to_i)
@@ -524,7 +524,7 @@ class AmfControllerTest < ActionController::TestCase
     assert_equal({ "key" => "value", "ping" => "pong" }, first_historic_node.tags, "tags are different")
     assert_equal result[4], first_historic_node.version, "The version returned, is different to the one returned by the amf"
   end
     assert_equal({ "key" => "value", "ping" => "pong" }, first_historic_node.tags, "tags are different")
     assert_equal result[4], first_historic_node.version, "The version returned, is different to the one returned by the amf"
   end
-  
+
   # try creating a POI with rubbish in the tags
   def test_putpoi_create_with_control_chars
     # This node has no tags
   # try creating a POI with rubbish in the tags
   def test_putpoi_create_with_control_chars
     # This node has no tags
@@ -534,24 +534,24 @@ class AmfControllerTest < ActionController::TestCase
     lon = rand(100)-50 + rand
     # normal user has a changeset open
     changeset = changesets(:public_user_first_change)
     lon = rand(100)-50 + rand
     # normal user has a changeset open
     changeset = changesets(:public_user_first_change)
-    
+
     mostly_invalid = (0..31).to_a.map {|i| i.chr}.join
     tags = { "something" => "foo#{mostly_invalid}bar" }
     mostly_invalid = (0..31).to_a.map {|i| i.chr}.join
     tags = { "something" => "foo#{mostly_invalid}bar" }
-      
+
     amf_content "putpoi", "/1", ["test@example.com:test", changeset.id, nil, nil, lon, lat, tags, nil]
     post :amf_write
     assert_response :success
     amf_parse_response
     result = amf_result("/1")
     amf_content "putpoi", "/1", ["test@example.com:test", changeset.id, nil, nil, lon, lat, tags, nil]
     post :amf_write
     assert_response :success
     amf_parse_response
     result = amf_result("/1")
-      
+
     # check the array returned by the amf
     assert_equal 5, result.size
     assert_equal 0, result[0], "Expected to get the status ok in the amf"
     assert_equal 0, result[2], "The old id should be 0"
     assert result[3] > 0, "The new id should be greater than 0"
     assert_equal 1, result[4], "The new version should be 1"
     # check the array returned by the amf
     assert_equal 5, result.size
     assert_equal 0, result[0], "Expected to get the status ok in the amf"
     assert_equal 0, result[2], "The old id should be 0"
     assert result[3] > 0, "The new id should be greater than 0"
     assert_equal 1, result[4], "The new version should be 1"
-    
-    # Finally check that the node that was saved has saved the data correctly 
+
+    # Finally check that the node that was saved has saved the data correctly
     # in both the current and history tables
     # First check the current table
     current_node = Node.find(result[3].to_i)
     # in both the current and history tables
     # First check the current table
     current_node = Node.find(result[3].to_i)
@@ -569,10 +569,10 @@ class AmfControllerTest < ActionController::TestCase
     lon = rand(100)-50 + rand
     # normal user has a changeset open
     changeset = changesets(:public_user_first_change)
     lon = rand(100)-50 + rand
     # normal user has a changeset open
     changeset = changesets(:public_user_first_change)
-    
+
     invalid = "\xc0\xc0"
     tags = { "something" => "foo#{invalid}bar" }
     invalid = "\xc0\xc0"
     tags = { "something" => "foo#{invalid}bar" }
-      
+
     amf_content "putpoi", "/1", ["test@example.com:test", changeset.id, nil, nil, lon, lat, tags, nil]
     post :amf_write
     assert_response :success
     amf_content "putpoi", "/1", ["test@example.com:test", changeset.id, nil, nil, lon, lat, tags, nil]
     post :amf_write
     assert_response :success
@@ -581,29 +581,29 @@ class AmfControllerTest < ActionController::TestCase
 
     assert_equal 2, result.size
     assert_equal -1, result[0], "Expected to get the status FAIL in the amf"
 
     assert_equal 2, result.size
     assert_equal -1, result[0], "Expected to get the status FAIL in the amf"
-    assert_equal "One of the tags is invalid. Linux users may need to upgrade to Flash Player 10.1.", result[1] 
+    assert_equal "One of the tags is invalid. Linux users may need to upgrade to Flash Player 10.1.", result[1]
   end
   end
-      
+
   def test_putpoi_delete_valid
   def test_putpoi_delete_valid
-    
+
   end
   end
-  
+
   def test_putpoi_delete_already_deleted
   def test_putpoi_delete_already_deleted
-    
+
   end
   end
-  
+
   def test_putpoi_delete_not_found
   def test_putpoi_delete_not_found
-    
+
   end
   end
-  
+
   def test_putpoi_invalid_latlon
   def test_putpoi_invalid_latlon
-    
+
   end
 
   def test_startchangeset_invalid_xmlchar_comment
     invalid = "\035\022"
     comment = "foo#{invalid}bar"
   end
 
   def test_startchangeset_invalid_xmlchar_comment
     invalid = "\035\022"
     comment = "foo#{invalid}bar"
-      
+
     amf_content "startchangeset", "/1", ["test@example.com:test", Hash.new, nil, comment, 1]
     post :amf_write
     assert_response :success
     amf_content "startchangeset", "/1", ["test@example.com:test", Hash.new, nil, comment, 1]
     post :amf_write
     assert_response :success
@@ -691,7 +691,7 @@ class AmfControllerTest < ActionController::TestCase
       yield map, bbox
     end
   end
       yield map, bbox
     end
   end
-  
+
   # this should be what AMF controller returns when the bbox of a
   # whichways request is invalid or too large.
   def assert_boundary_error(map, msg=nil, error_hint=nil)
   # this should be what AMF controller returns when the bbox of a
   # whichways request is invalid or too large.
   def assert_boundary_error(map, msg=nil, error_hint=nil)
index ba8bdba..0ae06be 100644 (file)
@@ -3,16 +3,16 @@ require 'api_controller'
 
 class ApiControllerTest < ActionController::TestCase
   api_fixtures
 
 class ApiControllerTest < ActionController::TestCase
   api_fixtures
-  
+
   def setup
     super
     @badbigbbox = %w{ -0.1,-0.1,1.1,1.1  10,10,11,11 }
   def setup
     super
     @badbigbbox = %w{ -0.1,-0.1,1.1,1.1  10,10,11,11 }
-    @badmalformedbbox = %w{ -0.1  hello 
+    @badmalformedbbox = %w{ -0.1  hello
     10N2W10.1N2.1W }
     @badlatmixedbbox = %w{ 0,0.1,0.1,0  -0.1,80,0.1,70  0.24,54.34,0.25,54.33 }
     10N2W10.1N2.1W }
     @badlatmixedbbox = %w{ 0,0.1,0.1,0  -0.1,80,0.1,70  0.24,54.34,0.25,54.33 }
-    @badlonmixedbbox = %w{ 80,-0.1,70,0.1  54.34,0.24,54.33,0.25 }  
+    @badlonmixedbbox = %w{ 80,-0.1,70,0.1  54.34,0.24,54.33,0.25 }
     #@badlatlonoutboundsbbox = %w{ 191,-0.1,193,0.1  -190.1,89.9,-190,90 }
     #@badlatlonoutboundsbbox = %w{ 191,-0.1,193,0.1  -190.1,89.9,-190,90 }
-    @goodbbox = %w{ -0.1,-0.1,0.1,0.1  51.1,-0.1,51.2,0 
+    @goodbbox = %w{ -0.1,-0.1,0.1,0.1  51.1,-0.1,51.2,0
     -0.1,%20-0.1,%200.1,%200.1  -0.1edcd,-0.1d,0.1,0.1  -0.1E,-0.1E,0.1S,0.1N S0.1,W0.1,N0.1,E0.1}
     # That last item in the goodbbox really shouldn't be there, as the API should
     # reall reject it, however this is to test to see if the api changes.
     -0.1,%20-0.1,%200.1,%200.1  -0.1edcd,-0.1d,0.1,0.1  -0.1E,-0.1E,0.1S,0.1N S0.1,W0.1,N0.1,E0.1}
     # That last item in the goodbbox really shouldn't be there, as the API should
     # reall reject it, however this is to test to see if the api changes.
@@ -26,7 +26,7 @@ class ApiControllerTest < ActionController::TestCase
       { :controller => "api", :action => "capabilities" }
     )
     assert_recognizes(
       { :controller => "api", :action => "capabilities" }
     )
     assert_recognizes(
-      { :controller => "api", :action => "capabilities" }, 
+      { :controller => "api", :action => "capabilities" },
       { :path => "/api/0.6/capabilities", :method => :get }
     )
     assert_routing(
       { :path => "/api/0.6/capabilities", :method => :get }
     )
     assert_routing(
@@ -75,7 +75,7 @@ class ApiControllerTest < ActionController::TestCase
       # Should also test for the ways and relation
     end
   end
       # Should also test for the ways and relation
     end
   end
-  
+
   # This differs from the above test in that we are making the bbox exactly
   # the same as the node we are looking at
   def test_map_inclusive
   # This differs from the above test in that we are making the bbox exactly
   # the same as the node we are looking at
   def test_map_inclusive
@@ -92,7 +92,7 @@ class ApiControllerTest < ActionController::TestCase
       # Should also test for the ways and relation
     end
   end
       # Should also test for the ways and relation
     end
   end
-  
+
   def test_tracepoints
     point = gpx_files(:public_trace_file)
     minlon = point.longitude-0.001
   def test_tracepoints
     point = gpx_files(:public_trace_file)
     minlon = point.longitude-0.001
@@ -108,7 +108,7 @@ class ApiControllerTest < ActionController::TestCase
       end
     end
   end
       end
     end
   end
-  
+
   def test_tracepoints_trackable
     point = gpx_files(:trackable_trace_file)
     minlon = point.longitude-0.002
   def test_tracepoints_trackable
     point = gpx_files(:trackable_trace_file)
     minlon = point.longitude-0.002
@@ -130,7 +130,7 @@ class ApiControllerTest < ActionController::TestCase
       end
     end
   end
       end
     end
   end
-  
+
   def test_tracepoints_identifiable
     point = gpx_files(:identifiable_trace_file)
     minlon = point.longitude-0.002
   def test_tracepoints_identifiable
     point = gpx_files(:identifiable_trace_file)
     minlon = point.longitude-0.002
@@ -153,7 +153,7 @@ class ApiControllerTest < ActionController::TestCase
       end
     end
   end
       end
     end
   end
-  
+
   def test_map_without_bbox
     ["trackpoints", "map"].each do |tq|
       get tq
   def test_map_without_bbox
     ["trackpoints", "map"].each do |tq|
       get tq
@@ -161,7 +161,7 @@ class ApiControllerTest < ActionController::TestCase
       assert_equal "The parameter bbox is required, and must be of the form min_lon,min_lat,max_lon,max_lat", @response.body, "A bbox param was expected"
     end
   end
       assert_equal "The parameter bbox is required, and must be of the form min_lon,min_lat,max_lon,max_lat", @response.body, "A bbox param was expected"
     end
   end
-  
+
   def test_traces_page_less_than_0
     -10.upto(-1) do |i|
       get :trackpoints, :page => i, :bbox => "-0.1,-0.1,0.1,0.1"
   def test_traces_page_less_than_0
     -10.upto(-1) do |i|
       get :trackpoints, :page => i, :bbox => "-0.1,-0.1,0.1,0.1"
@@ -173,7 +173,7 @@ class ApiControllerTest < ActionController::TestCase
       assert_response :success, "The page number was #{i} and should have been accepted"
     end
   end
       assert_response :success, "The page number was #{i} and should have been accepted"
     end
   end
-  
+
   def test_bbox_too_big
     @badbigbbox.each do |bbox|
       [ "trackpoints", "map" ].each do |tq|
   def test_bbox_too_big
     @badbigbbox.each do |bbox|
       [ "trackpoints", "map" ].each do |tq|
@@ -183,7 +183,7 @@ class ApiControllerTest < ActionController::TestCase
       end
     end
   end
       end
     end
   end
-  
+
   def test_bbox_malformed
     @badmalformedbbox.each do |bbox|
       [ "trackpoints", "map" ].each do |tq|
   def test_bbox_malformed
     @badmalformedbbox.each do |bbox|
       [ "trackpoints", "map" ].each do |tq|
@@ -193,7 +193,7 @@ class ApiControllerTest < ActionController::TestCase
       end
     end
   end
       end
     end
   end
-  
+
   def test_bbox_lon_mixedup
     @badlonmixedbbox.each do |bbox|
       [ "trackpoints", "map" ].each do |tq|
   def test_bbox_lon_mixedup
     @badlonmixedbbox.each do |bbox|
       [ "trackpoints", "map" ].each do |tq|
@@ -203,7 +203,7 @@ class ApiControllerTest < ActionController::TestCase
       end
     end
   end
       end
     end
   end
-  
+
   def test_bbox_lat_mixedup
     @badlatmixedbbox.each do |bbox|
       ["trackpoints", "map"].each do |tq|
   def test_bbox_lat_mixedup
     @badlatmixedbbox.each do |bbox|
       ["trackpoints", "map"].each do |tq|
@@ -213,7 +213,7 @@ class ApiControllerTest < ActionController::TestCase
       end
     end
   end
       end
     end
   end
-  
+
   # We can't actually get an out of bounds error, as the bbox is sanitised.
   #def test_latlon_outofbounds
   #  @badlatlonoutboundsbbox.each do |bbox|
   # We can't actually get an out of bounds error, as the bbox is sanitised.
   #def test_latlon_outofbounds
   #  @badlatlonoutboundsbbox.each do |bbox|
@@ -225,8 +225,8 @@ class ApiControllerTest < ActionController::TestCase
   #    end
   #  end
   #end
   #    end
   #  end
   #end
-  
-  # MySQL and Postgres require that the C based functions are installed for 
+
+  # MySQL and Postgres require that the C based functions are installed for
   # this test to work. More information is available from:
   # http://wiki.openstreetmap.org/wiki/Rails#Installing_the_quadtile_functions
   # or by looking at the readme in db/README
   # this test to work. More information is available from:
   # http://wiki.openstreetmap.org/wiki/Rails#Installing_the_quadtile_functions
   # or by looking at the readme in db/README
@@ -235,7 +235,7 @@ class ApiControllerTest < ActionController::TestCase
     get :changes
     assert_response :success
     #print @response.body
     get :changes
     assert_response :success
     #print @response.body
-    # As we have loaded the fixtures, we can assume that there are no 
+    # As we have loaded the fixtures, we can assume that there are no
     # changes at the time we have frozen at
     now = Time.now.getutc
     hourago = now - 1.hour
     # changes at the time we have frozen at
     now = Time.now.getutc
     hourago = now - 1.hour
@@ -244,7 +244,7 @@ class ApiControllerTest < ActionController::TestCase
     end
     Timecop.return
   end
     end
     Timecop.return
   end
-  
+
   def test_changes_zoom_invalid
     zoom_to_test = %w{ p -1 0 17 one two }
     zoom_to_test.each do |zoom|
   def test_changes_zoom_invalid
     zoom_to_test = %w{ p -1 0 17 one two }
     zoom_to_test.each do |zoom|
@@ -253,7 +253,7 @@ class ApiControllerTest < ActionController::TestCase
       assert_equal @response.body, "Requested zoom is invalid, or the supplied start is after the end time, or the start duration is more than 24 hours"
     end
   end
       assert_equal @response.body, "Requested zoom is invalid, or the supplied start is after the end time, or the start duration is more than 24 hours"
     end
   end
-  
+
   def test_changes_zoom_valid
     1.upto(16) do |zoom|
       get :changes, :zoom => zoom
   def test_changes_zoom_valid
     1.upto(16) do |zoom|
       get :changes, :zoom => zoom
@@ -265,7 +265,7 @@ class ApiControllerTest < ActionController::TestCase
       end
     end
   end
       end
     end
   end
-  
+
   def test_hours_invalid
     invalid = %w{ -21 335 -1 0 25 26 100 one two three ping pong : }
     invalid.each do |hour|
   def test_hours_invalid
     invalid = %w{ -21 335 -1 0 25 26 100 one two three ping pong : }
     invalid.each do |hour|
@@ -274,14 +274,14 @@ class ApiControllerTest < ActionController::TestCase
       assert_equal @response.body, "Requested zoom is invalid, or the supplied start is after the end time, or the start duration is more than 24 hours", "Problem with the hour: #{hour}."
     end
   end
       assert_equal @response.body, "Requested zoom is invalid, or the supplied start is after the end time, or the start duration is more than 24 hours", "Problem with the hour: #{hour}."
     end
   end
-  
+
   def test_hours_valid
     1.upto(24) do |hour|
       get :changes, :hours => hour
       assert_response :success
     end
   end
   def test_hours_valid
     1.upto(24) do |hour|
       get :changes, :hours => hour
       assert_response :success
     end
   end
-  
+
   def test_capabilities
     get :capabilities
     assert_response :success
   def test_capabilities
     get :capabilities
     assert_response :success
index ff987b6..b3d6d7e 100644 (file)
@@ -1922,7 +1922,7 @@ EOF
     assert_no_difference('ChangesetComment.count') do
       post :comment, { :id => changesets(:normal_user_closed_change).id, :text => '' }
     end
     assert_no_difference('ChangesetComment.count') do
       post :comment, { :id => changesets(:normal_user_closed_change).id, :text => '' }
     end
-    assert_response :bad_request    
+    assert_response :bad_request
   end
 
   ##
   end
 
   ##
@@ -2062,7 +2062,7 @@ EOF
       post :unhide_comment, { :id => comment.id }
       assert_response :unauthorized
     end
       post :unhide_comment, { :id => comment.id }
       assert_response :unauthorized
     end
-    
+
     basic_authorization(users(:public_user).email, 'test')
 
     # not a moderator
     basic_authorization(users(:public_user).email, 'test')
 
     # not a moderator
index 32cab96..464f5fb 100644 (file)
@@ -89,12 +89,12 @@ class DiaryEntryControllerTest < ActionController::TestCase
     get :new
     assert_response :redirect
     assert_redirected_to :controller => :user, :action => "login", :referer => "/diary/new"
     get :new
     assert_response :redirect
     assert_redirected_to :controller => :user, :action => "login", :referer => "/diary/new"
-    # Now pretend to login by using the session hash, with the 
+    # Now pretend to login by using the session hash, with the
     # id of the person we want to login as through session(:user)=user.id
     get(:new, nil, {'user' => users(:normal_user).id})
     assert_response :success
     #print @response.body
     # id of the person we want to login as through session(:user)=user.id
     get(:new, nil, {'user' => users(:normal_user).id})
     assert_response :success
     #print @response.body
-    
+
     #print @response.to_yaml
     assert_select "title", :text => /New Diary Entry/, :count => 1
     assert_select "div.content-heading", :count => 1 do
     #print @response.to_yaml
     assert_select "title", :text => /New Diary Entry/, :count => 1
     assert_select "div.content-heading", :count => 1 do
@@ -112,16 +112,16 @@ class DiaryEntryControllerTest < ActionController::TestCase
       end
     end
   end
       end
     end
   end
-  
+
   def test_editing_diary_entry
     entry = diary_entries(:normal_user_entry_1)
 
   def test_editing_diary_entry
     entry = diary_entries(:normal_user_entry_1)
 
-    # Make sure that you are redirected to the login page when you are 
+    # Make sure that you are redirected to the login page when you are
     # not logged in, without and with the id of the entry you want to edit
     get :edit, :display_name => entry.user.display_name, :id => entry.id
     assert_response :redirect
     assert_redirected_to :controller => :user, :action => "login", :referer => "/user/#{entry.user.display_name}/diary/#{entry.id}/edit"
     # not logged in, without and with the id of the entry you want to edit
     get :edit, :display_name => entry.user.display_name, :id => entry.id
     assert_response :redirect
     assert_redirected_to :controller => :user, :action => "login", :referer => "/user/#{entry.user.display_name}/diary/#{entry.id}/edit"
-    
+
     # Verify that you get a not found error, when you pass a bogus id
     get(:edit, {:display_name => entry.user.display_name, :id => 9999}, {'user' => entry.user.id})
     assert_response :not_found
     # Verify that you get a not found error, when you pass a bogus id
     get(:edit, {:display_name => entry.user.display_name, :id => 9999}, {'user' => entry.user.id})
     assert_response :not_found
@@ -129,7 +129,7 @@ class DiaryEntryControllerTest < ActionController::TestCase
       assert_select "h2", :text => "No entry with the id: 9999", :count => 1
     end
 
       assert_select "h2", :text => "No entry with the id: 9999", :count => 1
     end
 
-    # Now pass the id, and check that you can edit it, when using the same 
+    # Now pass the id, and check that you can edit it, when using the same
     # user as the person who created the entry
     get(:edit, {:display_name => entry.user.display_name, :id => entry.id}, {'user' => entry.user.id})
     assert_response :success
     # user as the person who created the entry
     get(:edit, {:display_name => entry.user.display_name, :id => entry.id}, {'user' => entry.user.id})
     assert_response :success
@@ -157,13 +157,13 @@ class DiaryEntryControllerTest < ActionController::TestCase
     new_latitude = "1.1"
     new_longitude = "2.2"
     new_language_code = "en"
     new_latitude = "1.1"
     new_longitude = "2.2"
     new_language_code = "en"
-    post(:edit, {:display_name => entry.user.display_name, :id => entry.id, 'commit' => 'save', 
+    post(:edit, {:display_name => entry.user.display_name, :id => entry.id, 'commit' => 'save',
       'diary_entry'=>{'title' => new_title, 'body' => new_body, 'latitude' => new_latitude,
       'longitude' => new_longitude, 'language_code' => new_language_code} },
          {'user' => entry.user.id})
     assert_response :redirect
     assert_redirected_to :action => :view, :display_name => entry.user.display_name, :id => entry.id
       'diary_entry'=>{'title' => new_title, 'body' => new_body, 'latitude' => new_latitude,
       'longitude' => new_longitude, 'language_code' => new_language_code} },
          {'user' => entry.user.id})
     assert_response :redirect
     assert_redirected_to :action => :view, :display_name => entry.user.display_name, :id => entry.id
-    
+
     # Now check that the new data is rendered, when logged in
     get :view, {:display_name => entry.user.display_name, :id => entry.id}, {'user' => entry.user.id}
     assert_response :success
     # Now check that the new data is rendered, when logged in
     get :view, {:display_name => entry.user.display_name, :id => entry.id}, {'user' => entry.user.id}
     assert_response :success
@@ -203,13 +203,13 @@ class DiaryEntryControllerTest < ActionController::TestCase
       end
     end
   end
       end
     end
   end
-  
+
   def test_edit_diary_entry_i18n
     get :edit, {:display_name => users(:normal_user).display_name, :id => diary_entries(:normal_user_entry_1).id}, {'user' => users(:normal_user).id}
     assert_response :success
     assert_select "span[class=translation_missing]", false, "Missing translation in edit diary entry"
   end
   def test_edit_diary_entry_i18n
     get :edit, {:display_name => users(:normal_user).display_name, :id => diary_entries(:normal_user_entry_1).id}, {'user' => users(:normal_user).id}
     assert_response :success
     assert_select "span[class=translation_missing]", false, "Missing translation in edit diary entry"
   end
-  
+
   def test_create_diary_entry
     # Make sure that you are redirected to the login page when you
     # are not logged in
   def test_create_diary_entry
     # Make sure that you are redirected to the login page when you
     # are not logged in
@@ -245,7 +245,7 @@ class DiaryEntryControllerTest < ActionController::TestCase
     new_longitude = "2.2"
     new_language_code = "en"
     assert_difference "DiaryEntry.count", 1 do
     new_longitude = "2.2"
     new_language_code = "en"
     assert_difference "DiaryEntry.count", 1 do
-      post(:new, {'commit' => 'save', 
+      post(:new, {'commit' => 'save',
         'diary_entry'=>{'title' => new_title, 'body' => new_body, 'latitude' => new_latitude,
         'longitude' => new_longitude, 'language_code' => new_language_code} },
            {:user => users(:normal_user).id})
         'diary_entry'=>{'title' => new_title, 'body' => new_body, 'latitude' => new_latitude,
         'longitude' => new_longitude, 'language_code' => new_language_code} },
            {:user => users(:normal_user).id})
@@ -260,14 +260,14 @@ class DiaryEntryControllerTest < ActionController::TestCase
     assert_equal new_longitude.to_f, entry.longitude
     assert_equal new_language_code, entry.language_code
   end
     assert_equal new_longitude.to_f, entry.longitude
     assert_equal new_language_code, entry.language_code
   end
-  
+
   def test_creating_diary_comment
     entry = diary_entries(:normal_user_entry_1)
 
     # Make sure that you are denied when you are not logged in
     post :comment, :display_name => entry.user.display_name, :id => entry.id
     assert_response :forbidden
   def test_creating_diary_comment
     entry = diary_entries(:normal_user_entry_1)
 
     # Make sure that you are denied when you are not logged in
     post :comment, :display_name => entry.user.display_name, :id => entry.id
     assert_response :forbidden
-    
+
     # Verify that you get a not found error, when you pass a bogus id
     post :comment, {:display_name => entry.user.display_name, :id => 9999}, {:user => u