Sha256: 8a55a9365c93b41ffd4428fddb9b211a7f2afd880c6e702d3b758369cf17057d

Contents?: true

Size: 906 Bytes

Versions: 7

Compression:

Stored size: 906 Bytes

Contents

module EacLauncher
  module Stereotype
    class << self
      attr_reader :stereotypes

      def included(base)
        @stereotypes ||= []
        @stereotypes << base
        base.extend(ClassMethods)
      end

      def git_stereotypes
        stereotypes.select { |c| c.name.demodulize.downcase.match('git') }
      end

      def nogit_stereotypes
        stereotypes - git_stereotypes
      end
    end

    module ClassMethods
      def stereotype_name
        name.gsub(/^.*::/, '')
      end

      def stereotype_name_in_color
        stereotype_name.send(color)
      end

      def publish_class
        sub_class('Publish')
      end

      def warp_class
        sub_class('Warp')
      end

      private

      def sub_class(sub_class_name)
        klass = const_get(sub_class_name)
        klass.is_a?(Class) ? klass : nil
      rescue NameError
        nil
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
eac_launcher-0.5.1 lib/eac_launcher/stereotype.rb
eac_launcher-0.5.0 lib/eac_launcher/stereotype.rb
eac_launcher-0.4.0 lib/eac_launcher/stereotype.rb
eac_launcher-0.3.2 lib/eac_launcher/stereotype.rb
eac_launcher-0.3.1 lib/eac_launcher/stereotype.rb
eac_launcher-0.3.0 lib/eac_launcher/stereotype.rb
eac_launcher-0.2.2 lib/eac_launcher/stereotype.rb