Class: Venus::Generators::SimpleFormGenerator

Inherits:
Base
  • Object
show all
Defined in:
lib/generators/venus/simple_form/simple_form_generator.rb

Instance Method Summary collapse

Methods inherited from Base

next_migration_number, source_root

Instance Method Details

#asksObject



10
11
12
13
14
15
16
17
# File 'lib/generators/venus/simple_form/simple_form_generator.rb', line 10

def asks
  @gems = {}
  @simple_form_config = ask?('generate simple_form config?', true)
  @nested_form = ask?('install gem "nested_form"?', true) unless has_gem?('nested_form')
  if @nested_form
    @js_callback_target = ask?('JS event callback template target?', 'application.js')
  end
end

#nameObject



6
7
8
# File 'lib/generators/venus/simple_form/simple_form_generator.rb', line 6

def name
  "simple_form"
end

#nested_formObject



25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/generators/venus/simple_form/simple_form_generator.rb', line 25

def nested_form
  if @nested_form
    if @js_callback_target.present?
      to_file = "app/assets/javascripts/#{@js_callback_target}"
      line = "//= require jquery_nested_form"
      insert_line_into_file(to_file, line, :after => "//= require jquery_ujs")
      line = "//= require_self"
      insert_line_into_file(to_file, line, :after => "//= require jquery_nested_form")
      concat_template(to_file, "nested_form_event.js")
    else
      puts "see https://github.com/ryanb/nested_form for configuration"
    end
  end
end

#simple_formObject



19
20
21
22
23
# File 'lib/generators/venus/simple_form/simple_form_generator.rb', line 19

def simple_form
  add_gem('simple_form', '~> 2.0.4')
  add_gem('nested_form') if @nested_form
  bundle_install
end

#simple_form_generate_themeObject



40
41
42
43
44
45
# File 'lib/generators/venus/simple_form/simple_form_generator.rb', line 40

def simple_form_generate_theme
  if @simple_form_config
    generate 'simple_form:install'
    # TODO best template views
  end
end