Class: Jt::Generators::ScaffoldGenerator

Inherits:
Base
  • Object
show all
Defined in:
lib/generators/jt/scaffold/scaffold_generator.rb

Instance Method Summary collapse

Methods inherited from Base

banner, source_root

Constructor Details

#initialize(*args, &block) ⇒ ScaffoldGenerator

Returns a new instance of ScaffoldGenerator.



11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/generators/jt/scaffold/scaffold_generator.rb', line 11

def initialize(*args, &block)
  super

  print_usage unless scaffold_name.underscore =~ /^[a-z][a-z0-9_\/]+$/

  @model_attributes = []

  args_for_c_m.each do |arg|
    if arg.include?(':')
      @model_attributes << Rails::Generators::GeneratedAttribute.new(*arg.split(':'))
    end
  end
  puts @model_attributes
end

Instance Method Details

#create_domain_list_pageObject



43
44
45
46
47
# File 'lib/generators/jt/scaffold/scaffold_generator.rb', line 43

def create_domain_list_page
  content = File.read "#{template_root}/_list_page.haml"
  content = content.gsub "@{scaffold_name}", scaffold_name
  create_file "public/mobile/_#{scaffold_name}_list_page.haml", content
end

#create_domain_pageObject



35
36
37
38
39
40
41
# File 'lib/generators/jt/scaffold/scaffold_generator.rb', line 35

def create_domain_page
  content = File.read "#{template_root}/_page.haml"
  content = content.gsub "@{scaffold_name}", scaffold_name
  @model_attributes.map { |a| content +="\n      = text_input name:\"#{a.name}\"" }

  create_file "public/mobile/_#{scaffold_name}_page.haml", content
end

#define_go_to_pageObject



49
50
51
# File 'lib/generators/jt/scaffold/scaffold_generator.rb', line 49

def define_go_to_page
  insert_into_file "public/mobile/js/pages.js", "__define_go_to_page([\"#{scaffold_name}\", \"#{scaffold_name}_list\"])", {:after => "// pages"}
end


30
31
32
33
# File 'lib/generators/jt/scaffold/scaffold_generator.rb', line 30

def link_page
  insert_into_file "public/mobile/_pages.haml", "\n=render '#{scaffold_name}_page'", {:after => "// pages"}
  insert_into_file "public/mobile/_pages.haml", "\n=render '#{scaffold_name}_list_page'", {:after => "// pages"}
end

#template_rootObject



26
27
28
# File 'lib/generators/jt/scaffold/scaffold_generator.rb', line 26

def template_root
  @_template_root ||= File.expand_path('../templates', __FILE__)
end