Sha256: 20eb4e845579b1b85afdfafad367ba1e4436eb74a590fdd4c11988d57ab9d387

Contents?: true

Size: 489 Bytes

Versions: 2

Compression:

Stored size: 489 Bytes

Contents

module Alephant
  module Renderer
    module Views
      @@views = {}

      def self.register(klass)
        @@views[underscorify(klass.name.split("::").last)] = klass
      end

      def self.get_registered_class(id)
        @@views[id.downcase]
      end

      def self.underscorify(str)
        str.gsub(/::/, "/").
          gsub(/([A-Z]+)([A-Z][a-z])/,"\\1_\\2").
          gsub(/([a-z\d])([A-Z])/,"\\1_\\2").
          tr("-", "_").
          downcase
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
alephant-renderer-3.0.0 lib/alephant/renderer/views.rb
alephant-renderer-2.0.3 lib/alephant/renderer/views.rb