Sha256: 482070d4886f3f40239a2793b6b2f19d33ebd96acee681b8d4f721983180ca34

Contents?: true

Size: 1.85 KB

Versions: 1

Compression:

Stored size: 1.85 KB

Contents

#
#--
# Ronin Exploits - A Ruby library for Ronin that provides exploitation and
# payload crafting functionality.
#
# Copyright (c) 2007-2009 Hal Brodigan (postmodern.mod3 at gmail.com)
#
# This program 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
# (at your option) any later version.
#
# This program 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
#++
#

require 'ronin/os'

module Ronin
  module Model
    module TargetsOS
      def self.included(base)
        base.module_eval do
          # The targeted OS
          belongs_to :os,
                     :child_key => [:od_id],
                     :class_name => 'Ronin::OS'

          #
          # Returns the current targeted OS if no _arguments_ are given. If
          # _arguments_ are given, a new OS object will be created from the
          # given _arguments_ and associated with the target.
          #
          #   target.os
          #   # => nil
          #
          #   target.os(:name => 'FreeBSD', :version => '7.1')
          #   # => #<Ronin::OS type=Ronin::OS id=nil name="FreeBSD"
          #   # version="7.1">
          #
          def os(*arguments)
            unless arguments.empty?
              return self.os = OS.first_or_create(*arguments)
            else
              return os_association
            end
          end
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ronin-exploits-0.2.1 lib/ronin/model/targets_os.rb