lib/shamu/entities/null_entity.rb in shamu-0.0.21 vs lib/shamu/entities/null_entity.rb in shamu-0.0.24

- old
+ new

@@ -48,19 +48,25 @@ def self.included( base ) AUTO_FORMATTED_ATTRIBUTES.each do |attr| next unless base.attributes.key?( attr ) - base_name ||= begin - name = base.name || "Resource" - name.split( "::" ) - .last - .sub( /Entity/, "" ) - .gsub( /(.)([[:upper:]])/, '\1 \2' ) - end + base_name ||= + begin + name = base.superclass.name || "Resource" + name.split( "::" ) + .last + .sub( /Entity/, "" ) + .gsub( /(.)([[:upper:]])/, '\1 \2' ) + end base.attribute attr, default: "Unknown #{ base_name }" end + + # Make sure the null version has the model name. + def base.model_name + superclass.model_name + end end # Dynamically generate a new null entity class. # @param [Class] entity_class {Entity} class # @return [Class] a null entity class derived from `entity_class`. @@ -71,18 +77,18 @@ # null class as well. null_klass = nil if null_klass.superclass != entity_class end unless null_klass - null_klass = Class.new( entity_class ) do - include ::Shamu::Entities::NullEntity - end - + null_klass = Class.new( entity_class ) entity_class.const_set :NullEntity, null_klass + + # After const_set so we have name and inheritance + null_klass.include ::Shamu::Entities::NullEntity end null_klass end end end -end \ No newline at end of file +end