Sha256: 9f1112ab5737d4f22a912f80d1250244d33c57890478cc0e6cf22f536d485ef1

Contents?: true

Size: 1.32 KB

Versions: 5

Compression:

Stored size: 1.32 KB

Contents

module Appfuel
  module Domain

    module DomainNameParser

      # This parse the domain name string or object with domain_name method
      # and returns an array with feature, domain and name.
      # @example
      #   parse_domain_name('Foo.Bar.Baz')
      #   ['Foo', 'Bar', 'Foo.Bar.Baz']
      # @param name [String, Object] domain name
      # @return [Array] parsed Array from domain name
      def parse_domain_name(name)
        if !name.is_a?(String) && !name.respond_to?(:domain_name)
          fail 'domain name must be a string or implement method :domain_name'
        end

        name = name.domain_name if name.respond_to?(:domain_name)
        feature, domain = name.split('.')
        if domain.nil?
          domain, feature  = feature, nil
        end

        [feature, domain, name]
      end

      # This parse the domain attributes string and returns an array with
      # two elements.
      # @example
      #   parse_domain_attr('Foo.Bar.Baz')
      #   ['Foo.Bar', 'Baz']
      # @param name [String] domain name attributes
      # @return [Array] parsed Array from domain attributes
      def parse_domain_attr(name)
        unless name.is_a?(String)
          fail 'domain attribute name must be a string'
        end

        *first, last = name.split('.')
        [first.join('.'), last]
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
appfuel-0.2.5 lib/appfuel/domain/domain_name_parser.rb
appfuel-0.2.4 lib/appfuel/domain/domain_name_parser.rb
appfuel-0.2.3 lib/appfuel/domain/domain_name_parser.rb
appfuel-0.2.2.pre.alpha.pre.140 lib/appfuel/domain/domain_name_parser.rb
appfuel-0.2.0 lib/appfuel/domain/domain_name_parser.rb