Sha256: 40eef0255cbd841525a80a762cac2b78bac5db60d9b1453060a3aa1ef2d41c4c

Contents?: true

Size: 1.22 KB

Versions: 11

Compression:

Stored size: 1.22 KB

Contents

class Kaui::TagDefinition < KillBillClient::Model::TagDefinition

  # See org.killbill.billing.ObjectType in killbill-api
  %w(ACCOUNT
     ACCOUNT_EMAIL
     BLOCKING_STATES
     BUNDLE
     CUSTOM_FIELD
     INVOICE
     PAYMENT
     TRANSACTION
     INVOICE_ITEM
     INVOICE_PAYMENT
     SUBSCRIPTION
     SUBSCRIPTION_EVENT
     PAYMENT_ATTEMPT
     PAYMENT_METHOD
     REFUND
     TAG
     TAG_DEFINITION
     TENANT
     TENANT_KVS).each do |object_type|
    define_singleton_method "all_for_#{object_type.downcase}" do |options_for_klient|
      (self.all('NONE', options_for_klient).delete_if { |tag_definition| !tag_definition.applicable_object_types.include? object_type }).sort
    end
  end

  def is_system_tag?
    return false unless id.present?
    last_group = id.split('-')[4]

    is_system_tag = true
    last_group.split(//).each_with_index do |c, i|
      unless (c == '0' and i < 11) or (c.to_i > 0 and i == 11)
        is_system_tag = false
        break
      end
    end
    is_system_tag
  end

  def <=>(tag_definition)
    # System tags last
    return 1 if is_system_tag? and !tag_definition.is_system_tag?
    return -1 if !is_system_tag? and tag_definition.is_system_tag?
    name <=> tag_definition.name
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
kaui-0.11.0 app/models/kaui/tag_definition.rb
kaui-0.10.0 app/models/kaui/tag_definition.rb
kaui-0.9.0 app/models/kaui/tag_definition.rb
kaui-0.8.4 app/models/kaui/tag_definition.rb
kaui-0.8.3 app/models/kaui/tag_definition.rb
kaui-0.8.2 app/models/kaui/tag_definition.rb
kaui-0.8.1 app/models/kaui/tag_definition.rb
kaui-0.8.0 app/models/kaui/tag_definition.rb
kaui-0.7.2 app/models/kaui/tag_definition.rb
kaui-0.7.1 app/models/kaui/tag_definition.rb
kaui-0.7.0 app/models/kaui/tag_definition.rb