Class: ImporterController
- Inherits:
-
ApplicationController
- Object
- ApplicationController
- ImporterController
- Defined in:
- app/controllers/importer_controller.rb
Instance Attribute Summary collapse
-
#dumper ⇒ Object
Returns the value of attribute dumper.
-
#user_map ⇒ Object
Returns the value of attribute user_map.
Instance Method Summary collapse
Instance Attribute Details
#dumper ⇒ Object
Returns the value of attribute dumper.
6 7 8 |
# File 'app/controllers/importer_controller.rb', line 6 def dumper @dumper end |
#user_map ⇒ Object
Returns the value of attribute user_map.
5 6 7 |
# File 'app/controllers/importer_controller.rb', line 5 def user_map @user_map end |
Instance Method Details
#dump ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'app/controllers/importer_controller.rb', line 40 def dump login, password, repo = params[:login], params[:password], params[:repo] dumper = Octomine::Dumper.new login, password, repo logger.info "Dumper found #{dumper.issues.length} issues on GitHub repo #{repo}" github_dump = File.open(Rails.root.join('tmp/github_dump'), 'w') github_dump.print(YAML.dump(dumper)) session[:github_dump] = github_dump.path github_dump.flush logger.info "#{File.size(session[:github_dump])} bytes written to #{session[:github_dump]}" flash[:notice] = t(:dump_complete) redirect_to :controller => :importer, :action => :index end |
#fresh_dump ⇒ Object
55 56 57 58 59 60 61 62 63 64 |
# File 'app/controllers/importer_controller.rb', line 55 def fresh_dump return nil unless session[:github_dump] unless File.exists?(session[:github_dump]) flash[:warning] = "Dump file expired #{session[:github_dump]}" session[:github_dump] = nil return nil end return @dumper if @dumper @dumper = YAML.load(File.read(session[:github_dump])) end |
#import ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'app/controllers/importer_controller.rb', line 17 def import unless dump = fresh_dump flash[:notice] = t(:no_dump_to_import) redirect_to :controller => :importer, :action => :index return end importer = Octomine::Importer.new logger user_map = importer.import_users YAML.load(params[:user_map]), User.current, params[:create_missing_users] user_map.each do |k, v| logger.info "#{k}: [#{v.id}, #{v.login}]" end default_tracker_id = Tracker.first.id closed_status_id = IssueStatus.find_by_is_closed(true).id open_status_id = IssueStatus.find_by_is_default(true).id importer.import_issues @project.id, default_tracker_id, user_map, dump.issues, closed_status_id, open_status_id flash[:notice] = t(:import_complete) redirect_to :controller => :importer, :action => :index end |
#index ⇒ Object
8 9 10 11 12 13 14 15 |
# File 'app/controllers/importer_controller.rb', line 8 def index if dump = fresh_dump @user_map = {} dump.users.each do |login| @user_map[login] = nil end end end |