Class: GeoblacklightSidecarImages::Install

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

Instance Method Summary collapse

Instance Method Details

#add_settings_varsObject



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/generators/geoblacklight_sidecar_images/install_generator.rb', line 16

def add_settings_vars
  settings_path = "config/settings.yml"
  unless File.exist?(settings_path)
    say_status :skip, "config/settings.yml not found", :yellow
    return
  end

  contents = File.read(settings_path)

  unless contents.include?("GBLSI_THUMBNAIL_FIELD")
    append_to_file settings_path, <<~YAML

      # GeoBlacklight Sidecar Images
      INSTITUTION_LOCAL_NAME: ''
      INSTITUTION_GEOSERVER_URL: ''
      PROXY_GEOSERVER_URL: ''
      PROXY_GEOSERVER_AUTH: 'Basic base64encodedusername:password'
      GBLSI_THUMBNAIL_FIELD: 'thumbnail_path_ss'
      # Optional: https://ogm.geo4lib.app/api/v1 (leave blank to harvest locally)
      GBLSI_OGM_API_URL: ''
    YAML
  end

  return if File.read(settings_path).include?("GBLSI_OGM_API_URL")

  append_to_file settings_path, <<~YAML

    # OpenGeoMetadata API thumbnails (optional). When set, views render
    # OGM thumbnail URLs and skip sidecar harvest / Active Storage.
    # Example: https://ogm.geo4lib.app/api/v1
    GBLSI_OGM_API_URL: ''
  YAML
end

#bundle_installObject



104
105
106
107
108
# File 'lib/generators/geoblacklight_sidecar_images/install_generator.rb', line 104

def bundle_install
  Bundler.with_unbundled_env do
    run "bundle install"
  end
end

#generate_action_storageObject



96
97
98
# File 'lib/generators/geoblacklight_sidecar_images/install_generator.rb', line 96

def generate_action_storage
  rake "active_storage:install"
end

#generate_gblsci_assetsObject



50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# File 'lib/generators/geoblacklight_sidecar_images/install_generator.rb', line 50

def generate_gblsci_assets
  return if options[:skip_assets]

  stylesheet = %w[
    app/assets/stylesheets/application.scss
    app/assets/stylesheets/application.css
  ].find { |path| File.exist?(path) }

  unless stylesheet
    say_status :skip, "No application stylesheet found; import geoblacklight_sidecar_images/gblsci if needed", :yellow
    return
  end

  contents = File.read(stylesheet)
  return if contents.include?("geoblacklight_sidecar_images/gblsci")

  if contents.include?("@import 'geoblacklight';")
    inject_into_file stylesheet, after: "@import 'geoblacklight';\n" do
      "@import 'geoblacklight_sidecar_images/gblsci';\n"
    end
  else
    append_to_file stylesheet, "\n@import 'geoblacklight_sidecar_images/gblsci';\n"
  end
end

#generate_gblsci_configObject



100
101
102
# File 'lib/generators/geoblacklight_sidecar_images/install_generator.rb', line 100

def generate_gblsci_config
  generate "geoblacklight_sidecar_images:config"
end

#generate_gblsci_example_docsObject



75
76
77
# File 'lib/generators/geoblacklight_sidecar_images/install_generator.rb', line 75

def generate_gblsci_example_docs
  generate "geoblacklight_sidecar_images:example_docs"
end

#generate_gblsci_jobsObject



79
80
81
# File 'lib/generators/geoblacklight_sidecar_images/install_generator.rb', line 79

def generate_gblsci_jobs
  generate "geoblacklight_sidecar_images:jobs"
end

#generate_gblsci_modelsObject



83
84
85
# File 'lib/generators/geoblacklight_sidecar_images/install_generator.rb', line 83

def generate_gblsci_models
  generate "geoblacklight_sidecar_images:models"
end

#generate_gblsci_viewsObject



87
88
89
90
91
92
93
94
# File 'lib/generators/geoblacklight_sidecar_images/install_generator.rb', line 87

def generate_gblsci_views
  if options[:skip_views]
    say_status :skip, "catalog views", :yellow
    return
  end

  generate "geoblacklight_sidecar_images:views"
end