Class: ArSync::InstallGenerator
- Inherits:
-
Rails::Generators::Base
- Object
- Rails::Generators::Base
- ArSync::InstallGenerator
- Defined in:
- lib/generators/ar_sync/install/install_generator.rb
Instance Method Summary collapse
- #create_api_controller ⇒ Object
- #create_config ⇒ Object
- #create_schema_class ⇒ Object
- #create_sync_channel ⇒ Object
- #setup_js ⇒ Object
- #setup_routes ⇒ Object
Instance Method Details
#create_api_controller ⇒ Object
31 32 33 34 35 36 37 38 39 40 |
# File 'lib/generators/ar_sync/install/install_generator.rb', line 31 def create_api_controller create_file 'app/controllers/sync_api_controller.rb', " class SyncApiController < ApplicationController\n include ArSync::ApiControllerConcern\n def schema\n SyncSchema.new\n end\n end\n CODE\nend\n" |
#create_config ⇒ Object
42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/generators/ar_sync/install/install_generator.rb', line 42 def create_config create_file 'config/initializers/ar_sync.rb', " ActiveRecord::Base.include ArSync::ModelBase\n ArSync.configure do |config|\n config.current_user_method = :current_user\n config.key_prefix = 'ar_sync_'\n config.key_secret = '\#{SecureRandom.hex}'\n config.key_expires_in = 30.seconds\n end\n CODE\nend\n" |
#create_schema_class ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/generators/ar_sync/install/install_generator.rb', line 3 def create_schema_class create_file 'app/models/sync_schema.rb', " class SyncSchema < ArSync::SyncSchemaBase\n # serializer_field :profile, type: User do |current_user|\n # current_user\n # end\n\n # serializer_field :post, type: Post do |current_user, id:|\n # Post.where(current_user_can_access).find_by id: id\n # end\n\n # Reload API for all types should be defined here.\n\n # serializer_field :User do |current_user, ids:|\n # User.where(current_user_can_access).where id: ids\n # end\n\n # serializer_field :Post do |current_user, ids:|\n # Post.where(current_user_can_access).where id: ids\n # end\n\n # serializer_field :Comment do |current_user, ids:|\n # Comment.where(current_user_can_access).where id: ids\n # end\n end\n CODE\nend\n" |
#create_sync_channel ⇒ Object
54 55 56 57 58 59 60 61 62 63 |
# File 'lib/generators/ar_sync/install/install_generator.rb', line 54 def create_sync_channel create_file 'app/channels/sync_channel.rb', " class SyncChannel < ApplicationCable::Channel\n def subscribed\n key = ArSync.validate_expiration params[:key]\n stream_from key if key\n end\n end\n CODE\nend\n" |
#setup_js ⇒ Object
75 76 77 78 79 80 81 82 83 84 85 86 |
# File 'lib/generators/ar_sync/install/install_generator.rb', line 75 def setup_js inject_into_file( 'app/assets/javascripts/application.js', [ '//= require ar_sync', '//= require action_cable', '//= require ar_sync_action_cable_adapter', 'ArSyncModel.setConnectionAdapter(new ArSyncActionCableAdapter(ActionCable))' ].join("\n") + "\n", before: '//= require_tree .' ) end |
#setup_routes ⇒ Object
65 66 67 68 69 70 71 72 73 |
# File 'lib/generators/ar_sync/install/install_generator.rb', line 65 def setup_routes inject_into_file( 'config/routes.rb', "\n post '/sync_api', to: 'sync_api#sync_call'" + "\n post '/static_api', to: 'sync_api#static_call'" + "\n post '/graphql', to: 'sync_api#graphql_call'", after: 'Rails.application.routes.draw do' ) end |