Class: BetterService::Generators::PresenterGenerator
- Inherits:
-
Rails::Generators::NamedBase
- Object
- Rails::Generators::NamedBase
- BetterService::Generators::PresenterGenerator
- Defined in:
- lib/generators/better_service/presenter_generator.rb
Overview
PresenterGenerator - Generate presenter classes for BetterService
Usage:
rails generate better_service:presenter Product
rails generate better_service:presenter Product name:string price:decimal
This generates:
- app/presenters/product_presenter.rb
- test/presenters/product_presenter_test.rb
Instance Method Summary collapse
Instance Method Details
#create_presenter_file ⇒ Object
23 24 25 |
# File 'lib/generators/better_service/presenter_generator.rb', line 23 def create_presenter_file template "presenter.rb.tt", File.join("app/presenters", class_path, "#{file_name}_presenter.rb") end |
#create_test_file ⇒ Object
27 28 29 |
# File 'lib/generators/better_service/presenter_generator.rb', line 27 def create_test_file template "presenter_test.rb.tt", File.join("test/presenters", class_path, "#{file_name}_presenter_test.rb") end |
#display_info ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/generators/better_service/presenter_generator.rb', line 31 def display_info say say "Presenter created: app/presenters/#{file_name}_presenter.rb", :green say "Test created: test/presenters/#{file_name}_presenter_test.rb", :green say say "Usage in services:", :yellow say " class #{class_name.pluralize}::IndexService < IndexService" say " presenter #{class_name}Presenter" say say " presenter_options do" say " { current_user: user }" say " end" say " end" say say "Customize the as_json method in the presenter to format your data.", :cyan say end |