Class: UiChanged::Screenshot
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- UiChanged::Screenshot
- Defined in:
- app/models/ui_changed/screenshot.rb
Class Method Summary collapse
- .async_crawl_and_compare ⇒ Object
- .delete_all_compares ⇒ Object
-
.delete_all_controls ⇒ Object
delete all entries & images.
- .delete_all_tests ⇒ Object
- .destroy_entries_and_images(ids) ⇒ Object
- .destroy_entry_and_image(id) ⇒ Object
- .move_all_test_images_to_control ⇒ Object
- .move_test_image_to_control(image_file_name_full) ⇒ Object
- .not_in_ignored ⇒ Object
- .remove_all_diffs_and_tests ⇒ Object
- .remove_diff_and_test(diff_id) ⇒ Object
- .remove_diffs_and_tests(diff_ids) ⇒ Object
- .search(search) ⇒ Object
- .set_all_tests_as_controls ⇒ Object
- .set_test_as_control(test_id) ⇒ Object
- .set_tests_as_controls(test_ids) ⇒ Object
- .start_async_compare ⇒ Object
- .start_async_crawl_for_control ⇒ Object
- .start_async_crawl_for_control_and_compare ⇒ Object
- .start_async_crawl_for_control_and_test ⇒ Object
- .start_async_crawl_for_test ⇒ Object
- .start_async_crawl_for_test_and_compare ⇒ Object
Instance Method Summary collapse
- #as_json(*a) ⇒ Object
- #check_compare_ids ⇒ Object
- #check_diff_found ⇒ Object
- #check_image_content_type ⇒ Object
- #check_only_one_type ⇒ Object
- #displayable_image_path_full ⇒ Object
- #displayable_image_path_small_full ⇒ Object
- #image_file_name_full ⇒ Object
- #image_file_name_small_full ⇒ Object
- #image_path_base ⇒ Object
- #image_path_full ⇒ Object
- #image_path_small_full ⇒ Object
- #move_test_image_to_control ⇒ Object
- #remove_image ⇒ Object
Class Method Details
.async_crawl_and_compare ⇒ Object
77 78 79 80 81 |
# File 'app/models/ui_changed/screenshot.rb', line 77 def async_crawl_and_compare start_async_crawl_for_control start_async_crawl_for_test start_async_compare end |
.delete_all_compares ⇒ Object
130 131 132 133 |
# File 'app/models/ui_changed/screenshot.rb', line 130 def delete_all_compares UiChanged::Screenshot.delete_all(:is_compare => true) FileUtils.rm_rf(Dir.glob(UiChanged::ConfigHelper.compare_path + '*')) end |
.delete_all_controls ⇒ Object
delete all entries & images
118 119 120 121 122 123 |
# File 'app/models/ui_changed/screenshot.rb', line 118 def delete_all_controls UiChanged::Screenshot.delete_all(:is_control => true) UiChanged::Screenshot.delete_all(:is_compare => true) FileUtils.rm_rf(Dir.glob(UiChanged::ConfigHelper.control_path + '*')) FileUtils.rm_rf(Dir.glob(UiChanged::ConfigHelper.compare_path + '*')) end |
.delete_all_tests ⇒ Object
124 125 126 127 128 129 |
# File 'app/models/ui_changed/screenshot.rb', line 124 def delete_all_tests UiChanged::Screenshot.delete_all(:is_test => true) UiChanged::Screenshot.delete_all(:is_compare => true) FileUtils.rm_rf(Dir.glob(UiChanged::ConfigHelper.test_path + '*')) FileUtils.rm_rf(Dir.glob(UiChanged::ConfigHelper.compare_path + '*')) end |
.destroy_entries_and_images(ids) ⇒ Object
135 136 137 138 139 |
# File 'app/models/ui_changed/screenshot.rb', line 135 def destroy_entries_and_images(ids) ids.each do |id| destroy_entry_and_image(id) end end |
.destroy_entry_and_image(id) ⇒ Object
140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 |
# File 'app/models/ui_changed/screenshot.rb', line 140 def destroy_entry_and_image(id) ss = UiChanged::Screenshot.find(id) # remove the corresponding compare screenshot if ss.is_control compare_ss = UiChanged::Screenshot.find_by_control_id(ss.id) if compare_ss compare_ss.remove_image compare_ss.destroy end elsif ss.is_test compare_ss = UiChanged::Screenshot.find_by_test_id(ss.id) if compare_ss compare_ss.remove_image compare_ss.destroy end end ss.remove_image ss.destroy end |
.move_all_test_images_to_control ⇒ Object
181 182 183 184 185 186 187 188 189 190 191 |
# File 'app/models/ui_changed/screenshot.rb', line 181 def move_all_test_images_to_control # delete all control images FileUtils.rm_rf(Dir.glob(UiChanged::ConfigHelper.control_path + '*')) # move all test images to control directory Dir.foreach(UiChanged::ConfigHelper.test_path) do |img| next if img == '.' || img == '..' # do work on real items UiChanged::Screenshot.move_test_image_to_control(img) end end |
.move_test_image_to_control(image_file_name_full) ⇒ Object
193 194 195 196 |
# File 'app/models/ui_changed/screenshot.rb', line 193 def move_test_image_to_control(image_file_name_full) FileUtils.mv(UiChanged::ConfigHelper.test_path + image_file_name_full, UiChanged::ConfigHelper.control_path + image_file_name_full) end |
.not_in_ignored ⇒ Object
198 199 200 |
# File 'app/models/ui_changed/screenshot.rb', line 198 def not_in_ignored UiChanged::Screenshot.joins("LEFT JOIN ui_changed_screenshot_ignore_urls siu ON siu.url = ui_changed_screenshots.url").where('siu.id is null') end |
.remove_all_diffs_and_tests ⇒ Object
162 163 164 165 |
# File 'app/models/ui_changed/screenshot.rb', line 162 def remove_all_diffs_and_tests delete_all_compares delete_all_tests end |
.remove_diff_and_test(diff_id) ⇒ Object
171 172 173 174 175 176 177 178 179 |
# File 'app/models/ui_changed/screenshot.rb', line 171 def remove_diff_and_test(diff_id) ss_diff = UiChanged::Screenshot.find(diff_id) ss_test = UiChanged::Screenshot.find(ss_diff.test_id) ss_diff.remove_image ss_diff.destroy ss_test.remove_image ss_test.destroy end |
.remove_diffs_and_tests(diff_ids) ⇒ Object
166 167 168 169 170 |
# File 'app/models/ui_changed/screenshot.rb', line 166 def remove_diffs_and_tests(diff_ids) diff_ids.split(",").each do |diff_id| remove_diff_and_test(diff_id.first.to_i) end end |
.search(search) ⇒ Object
83 84 85 |
# File 'app/models/ui_changed/screenshot.rb', line 83 def search(search) UiChanged::Screenshot.where('ui_changed_screenshots.url LIKE ?', "%#{search}%") end |
.set_all_tests_as_controls ⇒ Object
86 87 88 89 90 |
# File 'app/models/ui_changed/screenshot.rb', line 86 def set_all_tests_as_controls delete_all_controls move_all_test_images_to_control UiChanged::Screenshot.update_all({:is_control => true, :is_test => false}, {:is_test => true}) end |
.set_test_as_control(test_id) ⇒ Object
96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 |
# File 'app/models/ui_changed/screenshot.rb', line 96 def set_test_as_control(test_id) test_ss = UiChanged::Screenshot.find(test_id) control_ss = UiChanged::Screenshot.find_by_url_and_is_control(test_ss.url, true) compare_ss = UiChanged::Screenshot.find_by_test_id(test_ss.id) unless !control_ss control_ss.remove_image control_ss.destroy end unless !compare_ss compare_ss.remove_image compare_ss.destroy end test_ss.is_control = true test_ss.is_test = false test_ss.save # move test ss's to control dir test_ss.move_test_image_to_control end |
.set_tests_as_controls(test_ids) ⇒ Object
91 92 93 94 95 |
# File 'app/models/ui_changed/screenshot.rb', line 91 def set_tests_as_controls(test_ids) test_ids.each do |test_id| set_test_as_control(test_id) end end |
.start_async_compare ⇒ Object
73 74 75 |
# File 'app/models/ui_changed/screenshot.rb', line 73 def start_async_compare UiChanged::Compare.create end |
.start_async_crawl_for_control ⇒ Object
54 55 56 |
# File 'app/models/ui_changed/screenshot.rb', line 54 def start_async_crawl_for_control UiChanged::CrawlControl.create end |
.start_async_crawl_for_control_and_compare ⇒ Object
65 66 67 68 |
# File 'app/models/ui_changed/screenshot.rb', line 65 def start_async_crawl_for_control_and_compare start_async_crawl_for_control start_async_compare end |
.start_async_crawl_for_control_and_test ⇒ Object
61 62 63 64 |
# File 'app/models/ui_changed/screenshot.rb', line 61 def start_async_crawl_for_control_and_test start_async_crawl_for_control start_async_crawl_for_test end |
.start_async_crawl_for_test ⇒ Object
58 59 60 |
# File 'app/models/ui_changed/screenshot.rb', line 58 def start_async_crawl_for_test UiChanged::CrawlTest.create end |
.start_async_crawl_for_test_and_compare ⇒ Object
69 70 71 72 |
# File 'app/models/ui_changed/screenshot.rb', line 69 def start_async_crawl_for_test_and_compare start_async_crawl_for_test start_async_compare end |
Instance Method Details
#as_json(*a) ⇒ Object
253 254 255 |
# File 'app/models/ui_changed/screenshot.rb', line 253 def as_json(*a) self.attributes.merge({"displayable_image_path_full" => self.displayable_image_path_full}) end |
#check_compare_ids ⇒ Object
41 42 43 44 45 |
# File 'app/models/ui_changed/screenshot.rb', line 41 def check_compare_ids if is_compare && (control_id == nil || test_id == nil) errors[:base] << 'is_compare screenshots must have their control_id and test_id set' end end |
#check_diff_found ⇒ Object
36 37 38 39 40 |
# File 'app/models/ui_changed/screenshot.rb', line 36 def check_diff_found if diff_found && !( !is_control && !is_test && is_compare ) errors[:base] << 'when diff found is set it must be of type is_compare' end end |
#check_image_content_type ⇒ Object
46 47 48 |
# File 'app/models/ui_changed/screenshot.rb', line 46 def check_image_content_type errors.add(:image_content_type, "can only be png") unless image_content_type == "png" end |
#check_only_one_type ⇒ Object
30 31 32 33 34 35 |
# File 'app/models/ui_changed/screenshot.rb', line 30 def check_only_one_type types = [is_control, is_test, is_compare] if types.count(true) != 1 errors[:base] << 'screenshot can only have one is value set to true' end end |
#displayable_image_path_full ⇒ Object
223 224 225 |
# File 'app/models/ui_changed/screenshot.rb', line 223 def displayable_image_path_full image_path_full.sub('public','') end |
#displayable_image_path_small_full ⇒ Object
227 228 229 |
# File 'app/models/ui_changed/screenshot.rb', line 227 def displayable_image_path_small_full image_path_small_full.sub('public','') end |
#image_file_name_full ⇒ Object
239 240 241 242 243 244 |
# File 'app/models/ui_changed/screenshot.rb', line 239 def image_file_name_full if image_file_name == nil || image_content_type == nil return "default.png" end image_file_name + "." + image_content_type end |
#image_file_name_small_full ⇒ Object
246 247 248 249 250 251 |
# File 'app/models/ui_changed/screenshot.rb', line 246 def image_file_name_small_full if image_file_name == nil || image_content_type == nil return "default.png" end image_file_name + "_small." + image_content_type end |
#image_path_base ⇒ Object
213 214 215 216 217 218 219 220 221 |
# File 'app/models/ui_changed/screenshot.rb', line 213 def image_path_base if is_control UiChanged::ConfigHelper.control_path elsif is_compare UiChanged::ConfigHelper.compare_path else UiChanged::ConfigHelper.test_path end end |
#image_path_full ⇒ Object
231 232 233 |
# File 'app/models/ui_changed/screenshot.rb', line 231 def image_path_full image_path_base + image_file_name_full end |
#image_path_small_full ⇒ Object
235 236 237 |
# File 'app/models/ui_changed/screenshot.rb', line 235 def image_path_small_full image_path_base + image_file_name_small_full end |
#move_test_image_to_control ⇒ Object
208 209 210 211 |
# File 'app/models/ui_changed/screenshot.rb', line 208 def move_test_image_to_control UiChanged::Screenshot.move_test_image_to_control(image_file_name_full) UiChanged::Screenshot.move_test_image_to_control(image_file_name_small_full) end |
#remove_image ⇒ Object
203 204 205 206 |
# File 'app/models/ui_changed/screenshot.rb', line 203 def remove_image FileUtils.rm(image_path_full) FileUtils.rm(image_path_small_full) end |