Class: Scaffolding::Build
- Inherits:
-
Object
- Object
- Scaffolding::Build
- Defined in:
- lib/scaffolding.rb
Instance Method Summary collapse
- #class_ref ⇒ Object
- #errors ⇒ Object
- #generate ⇒ Object
- #import_browser_data ⇒ Object
- #import_data ⇒ Object
-
#initialize(source, name, auto, migrate, import) ⇒ Build
constructor
A new instance of Build.
- #migrate_database ⇒ Object
- #parser ⇒ Object
- #stack ⇒ Object
- #time(method) ⇒ Object
- #upload? ⇒ Boolean
- #uri? ⇒ Boolean
Constructor Details
#initialize(source, name, auto, migrate, import) ⇒ Build
Returns a new instance of Build.
9 10 11 12 13 14 |
# File 'lib/scaffolding.rb', line 9 def initialize(source, name, auto, migrate, import) @source, @name, @auto, @migrate, @import = source, name, auto, migrate, import @uri = uri? upload? @parser = parser end |
Instance Method Details
#class_ref ⇒ Object
28 29 30 31 32 33 34 |
# File 'lib/scaffolding.rb', line 28 def class_ref if File.extname(@source) == ".csv" && @uri == nil "Csv" else "Raw" end end |
#errors ⇒ Object
54 55 56 57 58 59 60 61 |
# File 'lib/scaffolding.rb', line 54 def errors if @results.kind_of?(Array) @results.each do |error| puts "\e[31m#{error}\e[0m" end true end end |
#generate ⇒ Object
50 51 52 |
# File 'lib/scaffolding.rb', line 50 def generate Rails::Generators::Base.new.generate "scaffold", @results end |
#import_browser_data ⇒ Object
89 90 91 92 93 94 |
# File 'lib/scaffolding.rb', line 89 def import_browser_data @parser.groom_data @results = @parser.import_data return if errors {saved: @results[:saved], failed: @results[:failed]} end |
#import_data ⇒ Object
76 77 78 79 80 81 82 83 84 85 86 87 |
# File 'lib/scaffolding.rb', line 76 def import_data unless @import puts "\n\n\e[32mImport the data from #{@source}?(y/n)\e[0m\n" answer = STDIN.gets.chomp.downcase end if @import || answer == "y" @results = @parser.import_data return if errors puts "\e[32m#{@results[:saved]}\e[0m records saved" puts "\e[31m#{@results[:failed]}\e[0m records failed" end end |
#migrate_database ⇒ Object
63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/scaffolding.rb', line 63 def migrate_database unless @migrate puts "\n\n\e[32mMigrate the database?(y/n)\e[0m\n" answer = STDIN.gets.chomp.downcase end if @migrate || answer == "y" Rake::Task["db:migrate"].reenable Rake::Task["db:migrate"].invoke else false end end |
#parser ⇒ Object
24 25 26 |
# File 'lib/scaffolding.rb', line 24 def parser "Scaffolding::Parser::#{class_ref}".constantize.new(@source, @name, @auto, @uri) end |
#stack ⇒ Object
43 44 45 46 47 48 |
# File 'lib/scaffolding.rb', line 43 def stack @results = @parser.results return if errors generate import_data if migrate_database end |
#time(method) ⇒ Object
36 37 38 39 40 41 |
# File 'lib/scaffolding.rb', line 36 def time(method) beginning_time = Time.now self.send(method) end_time = Time.now puts "#{@parser.source_name} processed in #{(end_time - beginning_time).round(2)} seconds\n\n" end |
#upload? ⇒ Boolean
20 21 22 |
# File 'lib/scaffolding.rb', line 20 def upload? @source = @source.path if @source.class == ActionDispatch::Http::UploadedFile end |
#uri? ⇒ Boolean
16 17 18 |
# File 'lib/scaffolding.rb', line 16 def uri? @source =~ URI::regexp end |