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