Sha256: 11c6b66158d82300a6dffd567fb5787a0d47f54cc3b5e94543464a0c2dce3a54

Contents?: true

Size: 1.25 KB

Versions: 97

Compression:

Stored size: 1.25 KB

Contents

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

      def initialize(response)
        @response = response
        @id = response["id"]
        @valid = response["valid"]
        @payload = response["payload"]
      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

      # Returns if has ability and if is a valid license or app is in development.
      def has_with_trial(ability)
        can(ability) && (valid? || Rails.env.development? || Rails.env.test?)
      end

      # Returns if lacks ability and if is a valid license or app is in development.
      def lacks_with_trial(ability)
        !can(ability) && (valid? || Rails.env.development? || Rails.env.test?)
      end
    end
  end
end

Version data entries

97 entries across 97 versions & 1 rubygems

Version Path
avo-1.25.2 lib/avo/licensing/license.rb
avo-1.25.1 lib/avo/licensing/license.rb
avo-1.25.0 lib/avo/licensing/license.rb
avo-1.24.2 lib/avo/licensing/license.rb
avo-1.24.1 lib/avo/licensing/license.rb
avo-1.24.0 lib/avo/licensing/license.rb
avo-1.23.0 lib/avo/licensing/license.rb
avo-1.22.4 lib/avo/licensing/license.rb
avo-1.22.3 lib/avo/licensing/license.rb
avo-1.22.2 lib/avo/licensing/license.rb
avo-1.22.1 lib/avo/licensing/license.rb
avo-1.22.1.pre.2 lib/avo/licensing/license.rb
avo-1.22.1.pre.1 lib/avo/licensing/license.rb
avo-1.22.0 lib/avo/licensing/license.rb
avo-1.22.0.pre.1 lib/avo/licensing/license.rb
avo-1.21.1.pre.1 lib/avo/licensing/license.rb
avo-1.21.0 lib/avo/licensing/license.rb
avo-1.20.2.pre.2 lib/avo/licensing/license.rb
avo-1.20.2.pre.1 lib/avo/licensing/license.rb
avo-1.21.0.pre.1 lib/avo/licensing/license.rb