Class: Harmonia::Generators::InstallGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Includes:
Rails::Generators::Migration
Defined in:
lib/generators/harmonia/install_generator.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.next_migration_number(dirname) ⇒ Object

Required for migration_template to work



59
60
61
# File 'lib/generators/harmonia/install_generator.rb', line 59

def self.next_migration_number(dirname)
  Time.now.utc.strftime("%Y%m%d%H%M%S")
end

Instance Method Details

#copy_application_record_extensionObject



18
19
20
# File 'lib/generators/harmonia/install_generator.rb', line 18

def copy_application_record_extension
  copy_file "application_record_extension.rb", "app/models/application_record.rb"
end

#copy_database_connectorObject



10
11
12
# File 'lib/generators/harmonia/install_generator.rb', line 10

def copy_database_connector
  copy_file "database_connector.rb", "app/services/database_connector.rb"
end

#copy_sync_modelObject



22
23
24
# File 'lib/generators/harmonia/install_generator.rb', line 22

def copy_sync_model
  copy_file "harmonia_sync.rb", "app/models/harmonia/sync.rb"
end

#copy_trophonius_extensionObject



14
15
16
# File 'lib/generators/harmonia/install_generator.rb', line 14

def copy_trophonius_extension
  copy_file "trophonius_model_extension.rb", "config/initializers/trophonius_model_extension.rb"
end

#generate_migrationObject



26
27
28
# File 'lib/generators/harmonia/install_generator.rb', line 26

def generate_migration
  migration_template "create_harmonia_syncs.rb", "db/migrate/create_harmonia_syncs.rb"
end

#show_readmeObject



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/generators/harmonia/install_generator.rb', line 30

def show_readme
  readme_content = <<~README

    ========================================
    Harmonia has been installed!
    ========================================

    Files created:
    - app/services/database_connector.rb
    - config/initializers/trophonius_model_extension.rb
    - app/models/application_record.rb (with to_fm extension)
    - app/models/harmonia/sync.rb
    - db/migrate/..._create_harmonia_syncs.rb

    Next steps:
    1. Run migrations: rails db:migrate
    2. Update database_connector.rb with your FileMaker database name
    3. Add FileMaker credentials to Rails credentials
    4. Replace all instances of YourTrophoniusModel with your actual model names
    5. Generate syncers:
       - rails generate harmonia:sync ModelName (FileMaker -> ActiveRecord)
       - rails generate harmonia:reverse_sync ModelName (ActiveRecord -> FileMaker)

  README

  say readme_content, :green if behavior == :invoke
end