lib/ronin/remote_file.rb in ronin-1.0.0.pre3 vs lib/ronin/remote_file.rb in ronin-1.0.0.pre4

- old
+ new

@@ -1,23 +1,22 @@ # -# Ronin - A Ruby platform for exploit development and security research. +# Copyright (c) 2006-2011 Hal Brodigan (postmodern.mod3 at gmail.com) # -# Copyright (c) 2006-2010 Hal Brodigan (postmodern.mod3 at gmail.com) +# This file is part of Ronin. # -# This program is free software; you can redistribute it and/or modify +# Ronin is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or +# the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # -# This program is distributed in the hope that it will be useful, +# Ronin is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +# along with Ronin. If not, see <http://www.gnu.org/licenses/>. # require 'ronin/target' require 'ronin/model' require 'ronin/extensions/file' @@ -34,25 +33,27 @@ # Primary key of the remote file property :id, Serial # Remote path of the file property :remote_path, String, :required => true, - :index => true, - :unique => :target_remote_path + :index => true # The target the file was recovered from - belongs_to :target, :unique => :target_remote_path + belongs_to :target # The address the file was recovered from has 1, :address, :through => :target # Tracks when the remote file was first recovered timestamps :created_at # Tags has_tags_on :tags + # Validates the uniqueness of the remote_path and the target. + validates_uniqueness_of :remote_path, :scope => [:target] + # # Searches for all remote files with the basename. # # @param [String] basename # The basename of the file. @@ -61,10 +62,11 @@ # The matching remote files. # # @since 1.0.0 # def self.named(basename) - all(:remote_path => basename) | all(:remote_path.like => "%/#{basename}") + all(:remote_path => basename) | + all(:remote_path.like => "%/#{basename}") end # # Searches for all remote files with the file name extension. #