Sha256: 668d8a808da1103bd45db064b8c0f1e022f343869ef77a9b7b8fd17046ad30f6

Contents?: true

Size: 796 Bytes

Versions: 5

Compression:

Stored size: 796 Bytes

Contents

module Avo
  module Licensing
    class License
      attr_accessor :id
      attr_accessor :response
      attr_accessor :valid

      def initialize(response)
        @response = response
        @id = response['id']
        @valid = response['valid']
      end

      def valid?
        valid
      end

      def invalid?
        !valid?
      end

      def pro?
        id == 'pro'
      end

      def error
        @response['error']
      end

      def properties
        @response.slice('valid', 'id', 'error').symbolize_keys
      end

      def abilities
        []
      end

      def can(ability)
        abilities.include? ability
      end

      def cant(ability)
        !can ability
      end

      alias_method :has, :can
      alias_method :lacks, :cant
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
avo-0.5.0.beta9 lib/avo/licensing/license.rb
avo-0.5.0.beta8 lib/avo/licensing/license.rb
avo-0.5.0.beta7 lib/avo/licensing/license.rb
avo-0.5.0.beta6 lib/avo/licensing/license.rb
avo-0.5.0.beta5 lib/avo/licensing/license.rb