lib/dry/data.rb in dry-data-0.3.2 vs lib/dry/data.rb in dry-data-0.4.0

- old
+ new

@@ -1,11 +1,11 @@ require 'bigdecimal' require 'date' require 'set' require 'inflecto' -require 'thread_safe/cache' +require 'thread_safe' require 'dry-container' require 'dry-equalizer' require 'dry/data/version' @@ -57,20 +57,26 @@ ) end def self.[](name) type_map.fetch_or_store(name) do - result = name.match(TYPE_SPEC_REGEX) - type = - if result - type_id, member_id = result[1..2] - container[type_id].member(self[member_id]) - else - container[name] + case name + when String + result = name.match(TYPE_SPEC_REGEX) + + type = + if result + type_id, member_id = result[1..2] + container[type_id].member(self[member_id]) + else + container[name] + end + when Class + self[identifier(name)] end - type_map[name] = type + type end end def self.define_constants(namespace, identifiers) names = identifiers.map do |id|