Module: Card::Set::All::Utils::ClassMethods
- Defined in:
- tmpsets/set/mod001-core/all/utils.rb
Overview
~~ above autogenerated; below pulled from /Users/ethan/dev/wagn/gem/card/mod/core/set/all/utils.rb ~~
Instance Method Summary collapse
- #all_file_ids ⇒ Object
- #all_trashed_card_ids ⇒ Object
- #delete_tmp_files(id = nil) ⇒ Object
-
#delete_trashed_files ⇒ Object
deletes any file not associated with a real card.
- #empty_trash ⇒ Object
- #merge(name, attribs = {}, opts = {}) ⇒ Object
- #merge_list(attribs, opts = {}) ⇒ Object
- #report_unmerged_json(unmerged_json, output_file) ⇒ Object
- #seed_test_db ⇒ Object
Instance Method Details
#all_file_ids ⇒ Object
35 36 37 38 |
# File 'tmpsets/set/mod001-core/all/utils.rb', line 35 def all_file_ids dir = Card.paths["files"].existent.first Dir.entries(dir)[2..-1].map(&:to_i) end |
#all_trashed_card_ids ⇒ Object
40 41 42 43 44 |
# File 'tmpsets/set/mod001-core/all/utils.rb', line 40 def all_trashed_card_ids trashed_card_sql = %( select id from cards where trash is true ) sql_results = Card.connection.select_all(trashed_card_sql) sql_results.map(&:values).flatten.map(&:to_i) end |
#delete_tmp_files(id = nil) ⇒ Object
27 28 29 30 31 32 33 |
# File 'tmpsets/set/mod001-core/all/utils.rb', line 27 def delete_tmp_files id=nil dir = Cardio.paths["files"].existent.first + "/tmp" dir += "/#{id}" if id FileUtils.rm_rf dir, secure: true rescue Rails.logger.info "failed to remove tmp files" end |
#delete_trashed_files ⇒ Object
deletes any file not associated with a real card.
14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'tmpsets/set/mod001-core/all/utils.rb', line 14 def delete_trashed_files trashed_card_ids = all_trashed_card_ids file_ids = all_file_ids dir = Cardio.paths["files"].existent.first file_ids.each do |file_id| next unless trashed_card_ids.member?(file_id) if Card.exists?(file_id) # double check! raise Card::Error, "Narrowly averted deleting current file" end FileUtils.rm_rf "#{dir}/#{file_id}", secure: true end end |
#empty_trash ⇒ Object
5 6 7 8 9 10 11 |
# File 'tmpsets/set/mod001-core/all/utils.rb', line 5 def empty_trash Card.delete_trashed_files Card.where(trash: true).delete_all Card::Action.delete_cardless Card::Reference.unmap_if_referee_missing Card::Reference.delete_if_referer_missing end |
#merge(name, attribs = {}, opts = {}) ⇒ Object
74 75 76 77 78 79 80 81 82 83 84 85 86 |
# File 'tmpsets/set/mod001-core/all/utils.rb', line 74 def merge name, attribs={}, opts={} puts "merging #{name}" card = fetch name, new: {} [:image, :file].each do |attach| next unless attribs[attach] && attribs[attach].is_a?(String) attribs[attach] = ::File.open(attribs[attach]) end if opts[:pristine] && !card.pristine? false else card.update_attributes! attribs end end |
#merge_list(attribs, opts = {}) ⇒ Object
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'tmpsets/set/mod001-core/all/utils.rb', line 46 def merge_list attribs, opts={} unmerged = [] attribs.each do |row| result = begin merge row["name"], row, opts end unmerged.push row unless result == true end if unmerged.empty? Rails.logger.info "successfully merged all!" else unmerged_json = JSON.pretty_generate unmerged report_unmerged_json unmerged_json, opts[:output_file] end unmerged end |
#report_unmerged_json(unmerged_json, output_file) ⇒ Object
64 65 66 67 68 69 70 71 72 |
# File 'tmpsets/set/mod001-core/all/utils.rb', line 64 def report_unmerged_json unmerged_json, output_file if output_file ::File.open output_file, "w" do |f| f.write unmerged_json end else Rails.logger.info "failed to merge:\n\n#{unmerged_json}" end end |
#seed_test_db ⇒ Object
88 89 90 |
# File 'tmpsets/set/mod001-core/all/utils.rb', line 88 def seed_test_db system "env RAILS_ENV=test bundle exec rake db:fixtures:load" end |