diff --git a/lib/generators/jsonapi/serializable/serializable_generator.rb b/lib/generators/jsonapi/serializable/serializable_generator.rb index a77693e..0a19f28 100644 --- a/lib/generators/jsonapi/serializable/serializable_generator.rb +++ b/lib/generators/jsonapi/serializable/serializable_generator.rb @@ -8,18 +8,26 @@ class SerializableGenerator < ::Rails::Generators::NamedBase def copy_serializable_file template 'serializable.rb.erb', File.join('app/serializable', class_path, - "serializable_#{file_name}.rb") + "#{serializable_file_name}.rb") end private + def serializable_file_name + "serializable_#{file_name}" + end + + def serializable_class_name + (class_path + [serializable_file_name]).map!(&:camelize).join("::") + end + def model_klass # TODO(beauby): Ensure the model class exists. class_name.safe_constantize end def type - model_klass.name.underscore.pluralize + model_klass.model_name.plural end def attr_names diff --git a/lib/generators/jsonapi/serializable/templates/serializable.rb.erb b/lib/generators/jsonapi/serializable/templates/serializable.rb.erb index 45178ca..3af19c1 100644 --- a/lib/generators/jsonapi/serializable/templates/serializable.rb.erb +++ b/lib/generators/jsonapi/serializable/templates/serializable.rb.erb @@ -1,5 +1,5 @@ <% module_namespacing do -%> -class Serializable<%= class_name %> < JSONAPI::Serializable::Resource +class <%= serializable_class_name %> < JSONAPI::Serializable::Resource type '<%= type %>' <% attr_names.each do |attr| -%> attribute :<%= attr %>