Sha256: 6d6c8da326a5ea0d0d642d66eefe02e73a5dd4de78fdbda7331d379004f252b6

Contents?: true

Size: 1.02 KB

Versions: 5

Compression:

Stored size: 1.02 KB

Contents

require File.join(File.dirname(__FILE__), 'fields', 'torrent_get')
require File.join(File.dirname(__FILE__), 'fields', 'session_get')
require File.join(File.dirname(__FILE__), 'fields', 'session_stats')
require File.join(File.dirname(__FILE__), 'utils')

module Transmission
  class Fields
    class InvalidField < StandardError; end

    attr_accessor :fields

    ATTRIBUTES = []

    def initialize(fields = nil)
      @fields = fields.inject([]) do |fields, field|
        found = self.class::ATTRIBUTES.select { |attr| attr[:field] == field}
        raise Transmission::Fields::InvalidField, field if found.empty?
        fields << field
      end if fields
      @fields = self.class::ATTRIBUTES.collect do |key|
        key[:field]
      end if fields.nil?
    end

    def to_fields
      @fields
    end

    class << self
      include Transmission::Utils

      def is_valid?(key)
        is_valid_key? key, self::ATTRIBUTES
      end

      def real_key(key)
        option_key key, self::ATTRIBUTES
      end
    end

  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
transmission-rpc-ruby-0.4.0 lib/transmission/fields.rb
transmission-rpc-ruby-0.3.1 lib/transmission/fields.rb
transmission-rpc-ruby-0.3.0 lib/transmission/fields.rb
transmission-rpc-ruby-0.2.1 lib/transmission/fields.rb
transmission-rpc-ruby-0.2.0 lib/transmission/fields.rb