class Avo::Licensing::License

def abilities

def abilities
  []
end

def can(ability)

def can(ability)
  abilities.include? ability
end

def cant(ability)

def cant(ability)
  !can ability
end

def error

def error
  @response["error"]
end

def has_with_trial(ability)

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

def initialize(response)

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

def invalid?

def invalid?
  !valid?
end

def lacks_with_trial(ability)

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

def pro?

def pro?
  id == "pro"
end

def properties

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

def valid?

def valid?
  valid
end