Sha256: 349605879a5b6dd68bece13b316fbfa2e14d8f0468e67f765b506df5a1969e20

Contents?: true

Size: 559 Bytes

Versions: 1

Compression:

Stored size: 559 Bytes

Contents

# frozen_string_literal: true

module Speculation
  module NamespacedSymbols
    def self.refine(namespace)
      Module.new do
        refine Symbol do
          define_method(:ns) do |mod = nil|
            if mod
              :"#{mod}/#{self}"
            else
              :"#{namespace}/#{self}"
            end
          end

          def name
            to_s.split("/").last
          end

          def namespace
            parts = to_s.split("/")
            parts.first if parts.count == 2
          end
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
speculation-0.1.0 lib/speculation/namespaced_symbols.rb