soulcutter/saxerator

View on GitHub
lib/saxerator/builder.rb

Summary

Maintainability
A
0 mins
Test Coverage
module Saxerator
  module Builder
    extend self

    def valid?(type)
      Builder.const_defined? "#{camel_case(type)}Builder"
    end

    def to_class(type)
      Builder.const_get("#{camel_case(type)}Builder")
    end

    def camel_case(str)
      str = str.to_s
      return str if str !~ /_/ && str =~ /[A-Z]+.*/
      str.split('_').map(&:capitalize).join
    end
  end
end