Sha256: 9f9ff5c751a8800aa02e88ea604d5e1310aa91c5b15b48021e3752ff220adb07

Contents?: true

Size: 702 Bytes

Versions: 2

Compression:

Stored size: 702 Bytes

Contents

# typed: strict
# frozen_string_literal: true

require "sorbet-runtime"

module Nexus
  module Invision
    module Resources
      class Rank < T::Struct
        include ValueObject

        const :id, Integer
        const :name, String
        const :icon, String
        const :points, Integer

        class << self
          extend T::Sig

          sig { params(response: T::Hash[String, T.untyped]).returns(Rank) }
          def from_response(response)
            Rank.new(
              id: response["id"],
              name: response["name"],
              icon: response["icon"],
              points: response["points"],
            )
          end
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
nexus-invision-1.11.0 lib/nexus/invision/resources/rank.rb
nexus-invision-1.10.2 lib/nexus/invision/resources/rank.rb