Class: LcpRuby::Generators::ImportGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Includes:
FormatSupport, Prerequisites
Defined in:
lib/generators/lcp_ruby/import_generator.rb

Constant Summary

Constants included from FormatSupport

FormatSupport::VALID_FORMATS

Instance Method Summary collapse

Methods included from FormatSupport

included, #validate_format

Methods included from Prerequisites

included, #lcp_format_missing_prereqs

Instance Method Details

#copy_data_import_jobObject



50
51
52
# File 'lib/generators/lcp_ruby/import_generator.rb', line 50

def copy_data_import_job
  template "data_import_job.yml", "config/lcp_ruby/jobs/data_import.yml"
end

#copy_import_profile_modelObject



24
25
26
27
28
# File 'lib/generators/lcp_ruby/import_generator.rb', line 24

def copy_import_profile_model
  copy_dsl_or_yaml "import_profile_model.rb",
    dsl_target: "config/lcp_ruby/models/import_profile.rb",
    yaml_target: "config/lcp_ruby/models/import_profile.yml"
end

#copy_import_profile_permissionsObject



46
47
48
# File 'lib/generators/lcp_ruby/import_generator.rb', line 46

def copy_import_profile_permissions
  template "import_profile_permissions.yml", "config/lcp_ruby/permissions/import_profile.yml"
end

#copy_import_profiles_presenterObject



36
37
38
39
40
# File 'lib/generators/lcp_ruby/import_generator.rb', line 36

def copy_import_profiles_presenter
  copy_dsl_or_yaml "import_profiles_presenter.rb",
    dsl_target: "config/lcp_ruby/presenters/import_profiles.rb",
    yaml_target: "config/lcp_ruby/presenters/import_profiles.yml"
end

#copy_import_row_modelObject



18
19
20
21
22
# File 'lib/generators/lcp_ruby/import_generator.rb', line 18

def copy_import_row_model
  copy_dsl_or_yaml "import_row_model.rb",
    dsl_target: "config/lcp_ruby/models/import_row.rb",
    yaml_target: "config/lcp_ruby/models/import_row.yml"
end

#copy_import_row_permissionsObject



42
43
44
# File 'lib/generators/lcp_ruby/import_generator.rb', line 42

def copy_import_row_permissions
  template "import_row_permissions.yml", "config/lcp_ruby/permissions/import_row.yml"
end

#copy_import_rows_presenterObject



30
31
32
33
34
# File 'lib/generators/lcp_ruby/import_generator.rb', line 30

def copy_import_rows_presenter
  copy_dsl_or_yaml "import_rows_presenter.rb",
    dsl_target: "config/lcp_ruby/presenters/import_rows.rb",
    yaml_target: "config/lcp_ruby/presenters/import_rows.yml"
end

#show_post_install_messageObject



54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
# File 'lib/generators/lcp_ruby/import_generator.rb', line 54

def show_post_install_message
  say ""
  say "LCP Ruby import feature installed!", :green
  say ""
  say "Next steps:"
  say "  1. Add import config to your presenter YAML:"
  say "     import:"
  say "       formats: [csv, xlsx]"
  say "       max_rows: 10000"
  say ""
  say "  2. Add import action to your presenter actions:"
  say "     actions:"
  say "       collection:"
  say "         - { name: import, type: built_in, icon: upload }"
  say ""
  say "  3. Add import permission to roles:"
  say "     actions:"
  say "       allowed: [import]"
  say ""
  say "  4. For XLSX support, add to Gemfile: gem 'roo'"
  say ""
  say "  5. Add import navigation to your job_execution presenter's show block:"
  say ""
  say "     section \"Import Results\", columns: 2,"
  say "       visible_when: { field: :job_type, operator: :eq, value: \"data_import\" } do"
  say "       field :id, renderer: :record_link, options: {"
  say "         slug: \"import-rows\","
  say "         filter: { \"job_execution_id_eq\" => \":id\" },"
  say "         label: \"View Import Rows\", icon: \"list\""
  say "       }"
  say "       field :target_model, renderer: :record_link, options: {"
  say "         model_field: \"target_model\","
  say "         filter: { \"import_rows_job_execution_id_eq\" => \":id\" },"
  say "         label: \"View Imported Records\", icon: \"external-link\""
  say "       }"
  say "     end"
  say ""
  say "  6. Start server: rails s"
  say ""
end