Sha256: 9958564dd9a242e9d438520526facc3a83ef4d65a9e206dfe8ea87a14dafba19

Contents?: true

Size: 1.39 KB

Versions: 13

Compression:

Stored size: 1.39 KB

Contents

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

  # See org.killbill.billing.ObjectType in killbill-api
  ALL_OBJECT_TYPES = %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)

  ALL_OBJECT_TYPES.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

  def pretty_applicable_object_types
    applicable_object_types == ALL_OBJECT_TYPES ? 'Any' : applicable_object_types.join(', ')
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
kaui-0.16.2 app/models/kaui/tag_definition.rb
kaui-0.16.1 app/models/kaui/tag_definition.rb
kaui-0.16.0 app/models/kaui/tag_definition.rb
kaui-0.15.5 app/models/kaui/tag_definition.rb
kaui-0.15.4 app/models/kaui/tag_definition.rb
kaui-0.15.3 app/models/kaui/tag_definition.rb
kaui-0.15.2 app/models/kaui/tag_definition.rb
kaui-0.15.1 app/models/kaui/tag_definition.rb
kaui-0.15.0 app/models/kaui/tag_definition.rb
kaui-0.14.2 app/models/kaui/tag_definition.rb
kaui-0.14.1 app/models/kaui/tag_definition.rb
kaui-0.14.0 app/models/kaui/tag_definition.rb
kaui-0.12.0 app/models/kaui/tag_definition.rb