Sha256: 89e5f31132a5ee16c5b06d550ffa5dfa7e950cc304013148b3baaedae375d056

Contents?: true

Size: 447 Bytes

Versions: 40

Compression:

Stored size: 447 Bytes

Contents

module HaveAPI::Client
  class Parameters::Resource
    attr_reader :errors

    def initialize(params, desc, value)
      @errors = []
      @value = coerce(value)
    end

    def valid?
      @errors.empty?
    end

    def to_api
      @value
    end

    protected
    def coerce(v)
      if !v.is_a?(::Integer) && /\A\d+\z/ !~ v
        @errors << 'not a valid resource id'
        nil

      else
        v.to_i
      end
    end
  end
end

Version data entries

40 entries across 40 versions & 1 rubygems

Version Path
haveapi-client-0.20.0 lib/haveapi/client/parameters/resource.rb
haveapi-client-0.19.3 lib/haveapi/client/parameters/resource.rb
haveapi-client-0.19.2 lib/haveapi/client/parameters/resource.rb
haveapi-client-0.19.1 lib/haveapi/client/parameters/resource.rb
haveapi-client-0.19.0 lib/haveapi/client/parameters/resource.rb
haveapi-client-0.18.2 lib/haveapi/client/parameters/resource.rb
haveapi-client-0.18.1 lib/haveapi/client/parameters/resource.rb
haveapi-client-0.18.0 lib/haveapi/client/parameters/resource.rb
haveapi-client-0.17.0 lib/haveapi/client/parameters/resource.rb
haveapi-client-0.16.3 lib/haveapi/client/parameters/resource.rb
haveapi-client-0.16.2 lib/haveapi/client/parameters/resource.rb
haveapi-client-0.16.1 lib/haveapi/client/parameters/resource.rb
haveapi-client-0.16.0 lib/haveapi/client/parameters/resource.rb
haveapi-client-0.15.1 lib/haveapi/client/parameters/resource.rb
haveapi-client-0.15.0 lib/haveapi/client/parameters/resource.rb
haveapi-client-0.14.2 lib/haveapi/client/parameters/resource.rb
haveapi-client-0.14.1 lib/haveapi/client/parameters/resource.rb
haveapi-client-0.14.0 lib/haveapi/client/parameters/resource.rb
haveapi-client-0.13.3 lib/haveapi/client/parameters/resource.rb
haveapi-client-0.13.2 lib/haveapi/client/parameters/resource.rb