Class: HotGlue::DropzoneInstallGenerator

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

Instance Method Summary collapse

Constructor Details

#initialize(*args) ⇒ DropzoneInstallGenerator

:nodoc:



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/generators/hot_glue/dropzone_install_generator.rb', line 11

def initialize(*args) #:nodoc:
  super
  system("./bin/rails generate stimulus Dropzone")
  copy_file "javascript/dropzone_controller.js", "#{filepath_prefix}app/javascript/controllers/dropzone_controller.js"
  puts "HOT GLUE --> copying dropzone stimulus controller into app/javascript/controllers/dropzone_controller.js"


  if File.exist?("#{filepath_prefix}app/assets/stylesheets/application.bootstrap.scss")
    scss_file = "#{filepath_prefix}app/assets/stylesheets/application.bootstrap.scss"
  elsif File.exist?("#{filepath_prefix}app/assets/stylesheets/application.scss")
    scss_file = "#{filepath_prefix}app/assets/stylesheets/application.scss"
  else
    raise HotGlue::Error, "Could not detect your stylesheet, aborting..."
  end

  file_contents = File.read(scss_file)

  if !file_contents.include?("@import \"dropzone/dist/dropzone\"")
    file_contents << "\n@import \"dropzone/dist/dropzone\";\n@import \"dropzone/dist/basic\";"


    File.write(scss_file, file_contents)
    puts "  HOTGLUE --> added to #{scss_file}: @import dropzone ... "
  else
    puts "  HOTGLUE --> #{scss_file} already contains @import dropzone"
  end
end

Instance Method Details

#filepath_prefixObject



5
6
7
8
# File 'lib/generators/hot_glue/dropzone_install_generator.rb', line 5

def filepath_prefix
  # todo: inject the context
  'spec/dummy/' if $INTERNAL_SPECS
end