Sha256: 37dc4779b337032e518ebb576f56ef3bce3bee79088d26eb1d9db12b9e1063ea
Contents?: true
Size: 1.44 KB
Versions: 4
Compression:
Stored size: 1.44 KB
Contents
#-- # Ruby Whois # # An intelligent pure Ruby WHOIS client and parser. # # Copyright (c) 2009-2012 Simone Carletti <weppos@weppos.net> #++ require 'ostruct' # SuperStruct is an enhanced version of the Ruby Standard library {Struct}. # # Compared with the original version, it provides the following additional features: # * ability to initialize an instance from Hash # * ability to pass a block on creation # class SuperStruct < Struct # Overwrites the standard {Struct} initializer # to add the ability to create an instance from a {Hash} of parameters. # # @overload initialize({ Symbol => Object }) # Initializes the object with a key/value hash. # @param [{ Symbol => Object }] values # @return [SuperStruct] # @overload initialize([ value1, value1, ... ]) # Initializes the object with given values. # @param [Array] values # @return [SuperStruct] # @overload initialize(value1, value1, ...) # Initializes the object with given values. # @return [SuperStruct] # # @yield self # # @example # attributes = { :foo => 1, :bar => "baz" } # Struct.new(attributes) # # => #<Struct foo=1, bar="baz"> # def initialize(*args) if args.first.is_a? Hash initialize_with_hash(args.first) else super end yield(self) if block_given? end private def initialize_with_hash(attributes = {}) attributes.each do |key, value| self[key] = value end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
whois-2.5.1 | lib/whois/record/super_struct.rb |
whois-2.5.0 | lib/whois/record/super_struct.rb |
whois-2.4.0 | lib/whois/record/super_struct.rb |
whois-2.3.0 | lib/whois/record/super_struct.rb |