Sha256: 4002fa898ed949ed1170ba31352e1d27eef352e8d5a1d4fe73db78bab047d016

Contents?: true

Size: 500 Bytes

Versions: 7

Compression:

Stored size: 500 Bytes

Contents

require 'alephant/views/base'

module Alephant
  module Views
    @@views = {}

    def self.register(klass)
      id = ::Alephant::Views.underscorify(
        klass.name.split('::').last
      )

      @@views[id] = klass
    end

    def self.get_registered_class(id)
      @@views[id]
    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

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
alephant-renderer-0.0.10 lib/alephant/views.rb
alephant-renderer-0.0.9 lib/alephant/views.rb
alephant-renderer-0.0.8 lib/alephant/views.rb
alephant-renderer-0.0.7 lib/alephant/views.rb
alephant-renderer-0.0.6 lib/alephant/views.rb
alephant-renderer-0.0.5 lib/alephant/views.rb
alephant-renderer-0.0.4.1 lib/alephant/views.rb