Sha256: e712fbc6e47aab978b0faa18a39c89fa3b79ce20c07ad6defe3315e3c3a2b528

Contents?: true

Size: 485 Bytes

Versions: 13

Compression:

Stored size: 485 Bytes

Contents

# -*- coding: utf-8 -*-


module Xot


  module Setter

    def set(*args)
      first = args.shift
      if first.kind_of? Hash
        first.each {|name, value| set_value__ name, value}
      else
        set_value__ first, *args
      end
    end

    private

      def set_value__(name, *values)
        raise ArgumentError, "set '#{values}' to '#{name}'" if
          !name || name.empty? || values.empty?
        __send__ "#{name}=", *values
      end

  end# Setter


end# Xot

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
xot-0.1.34 lib/xot/setter.rb
xot-0.1.33 lib/xot/setter.rb
xot-0.1.32 lib/xot/setter.rb
xot-0.1.31 lib/xot/setter.rb
xot-0.1.30 lib/xot/setter.rb
xot-0.1.29 lib/xot/setter.rb
xot-0.1.28 lib/xot/setter.rb
xot-0.1.27 lib/xot/setter.rb
xot-0.1.26 lib/xot/setter.rb
xot-0.1.25 lib/xot/setter.rb
xot-0.1.24 lib/xot/setter.rb
xot-0.1.23 lib/xot/setter.rb
xot-0.1.22 lib/xot/setter.rb