Sha256: 9864b0954078c20e845ee720f8b06b24874eb3c61f4b77ab1b733cb13d1afc66

Contents?: true

Size: 521 Bytes

Versions: 59

Compression:

Stored size: 521 Bytes

Contents

module Para
  module Component
    module Subclassable
      extend ActiveSupport::Concern

      included do
        configurable_on :subclasses
      end

      def subclassable?
        @subclassable ||= subclass_names.length > 0
      end

      def subclassable_with?(class_name)
        subclassable? && class_name.in?(subclass_names)
      end

      def subclass_names
        @subclass_names ||= if subclasses.present?
          eval(subclasses)
        else
          []
        end
      end
    end
  end
end

Version data entries

59 entries across 59 versions & 1 rubygems

Version Path
para-0.7.3.p6 lib/para/component/subclassable.rb
para-0.7.3.p5 lib/para/component/subclassable.rb
para-0.7.3.p4 lib/para/component/subclassable.rb
para-0.7.3.p3 lib/para/component/subclassable.rb
para-0.7.3.p2 lib/para/component/subclassable.rb
para-0.7.3.p1 lib/para/component/subclassable.rb
para-0.7.3 lib/para/component/subclassable.rb
para-0.7.2 lib/para/component/subclassable.rb
para-0.7.1 lib/para/component/subclassable.rb
para-0.7.0 lib/para/component/subclassable.rb
para-0.6.9 lib/para/component/subclassable.rb
para-0.6.8 lib/para/component/subclassable.rb
para-0.6.7 lib/para/component/subclassable.rb
para-0.6.3 lib/para/component/subclassable.rb
para-0.6.2 lib/para/component/subclassable.rb
para-0.5.4 lib/para/component/subclassable.rb
para-0.5.3 lib/para/component/subclassable.rb
para-0.5.1 lib/para/component/subclassable.rb
para-0.5.0 lib/para/component/subclassable.rb