Sha256: 9c5b7d4c09b2e9a18b3de3ea9b37a9497e8203c148a8e6b4b0f470f96e0ee465
Contents?: true
Size: 1.07 KB
Versions: 1
Compression:
Stored size: 1.07 KB
Contents
require 'skippy/error' class Skippy::Namespace def initialize(namespace) unless valid?(namespace) raise Skippy::Error, "'#{namespace}' is not a valid Ruby namespace" end @namespace = namespace end def basename to_a.last end def open @open ||= to_a.map { |part| "module #{part}" }.join("\n") end def close @close ||= to_a.reverse.map { |part| "end # module #{part}" }.join("\n") end def to_a parts(@namespace) end def to_name basename_words(basename).join(' ') end def to_s @namespace.dup end def to_str to_s end def to_underscore basename_words(basename).map { |word| word.downcase }.join('_') end private def basename_words(namespace_basename) result = namespace_basename.scan(/[[:upper:]]+[[:lower:][:digit:]]*/) result.empty? ? [namespace_basename.dup] : result end def parts(namespace) namespace.split('::') end def valid?(namespace) parts(namespace).all? { |part| /^[[:upper:]]/.match(part) } end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
skippy-0.2.0.a | lib/skippy/namespace.rb |