Sha256: fba8fe15e3f380ab05e3b0cd5fb09b9a9f94594ff9e158ff2e44daeed2a2d2e6
Contents?: true
Size: 1.92 KB
Versions: 3
Compression:
Stored size: 1.92 KB
Contents
module Grape module Generators module Transformations class EntityGenerator < ::Rails::Generators::Base desc <<-DESC Create inherited Grape::Entity entity in your app/api/.../entities folder. this created entity will have related with grape-transformations naming conventions For example: rails generate entity user This will create a entity class at app/api/.../entities/users/default.rb like this: module TestApp module Entities module Users class Default < Grape::Entity end end end end DESC source_root File.expand_path('../../templates', __FILE__) argument :composed_entity_name, type: :string, required: true, desc: 'name of entity' argument :fields, :type => :array, required: false, desc: 'field set that you want to expose' def generate_layout @fields ||= [] template "entity.rb", "app/api/#{app_name}/entities/#{underscored_entity_name.pluralize}/#{class_name.underscore}.rb" end private # Returns the app name # @return [String] def app_name Rails.application.config.session_options[:key].sub(/^_/,'').sub(/_session/,'') end def class_name underscored_transformation_name.nil? ? 'Default' : underscored_transformation_name.classify end def entity_name composed_entity_name.split(':').first end def transformation_name composed_entity_name.split(':').second end def underscored_entity_name entity_name.underscore unless entity_name.nil? end def underscored_transformation_name transformation_name.underscore unless transformation_name.nil? end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems