{"push_id":1017918276,"size":7,"distinct_size":7,"ref":"refs/heads/master","head":"e0d7536125ac98e2032f309a57539792773cf3ff","before":"cffeb7f378ae39b6e86788b86b1a0f7b6fadacc1","commits":[{"sha":"2ca0c5dd4a32d9b84d72968d86d9a91bd5a7a980","author":{"email":"1e70908baa314345bbf67ecc18bb99bf93d99783@gmail.com","name":"Janko Marohnić"},"message":"Fix a YAML syntax error","distinct":true,"url":"https://api.github.com/repos/janko-m/shrine/commits/2ca0c5dd4a32d9b84d72968d86d9a91bd5a7a980"},{"sha":"a1109ee42aa627d269efc03b201828badff5eafc","author":{"email":"1e70908baa314345bbf67ecc18bb99bf93d99783@gmail.com","name":"Janko Marohnić"},"message":"Fix unordered list in Rdoc generation\n\nFor some reason, this specific unordered list the RDoc generator inlines\nall in a single line (there is another unordered list also with\nasterisks which turns out just fine). For some reason this issue is\nfixed when asterisks are replaced with dashes.","distinct":true,"url":"https://api.github.com/repos/janko-m/shrine/commits/a1109ee42aa627d269efc03b201828badff5eafc"},{"sha":"62756bff7e2522b347d5dbb39928b4d9e406f390","author":{"email":"1e70908baa314345bbf67ecc18bb99bf93d99783@gmail.com","name":"Janko Marohnić"},"message":"Make keep_files work better with backgrounding\n\nSince keep_files was overriding `Shrine`, when combined with\nbackgrounding plugin, the delete background job would always be spawned,\nregardless of whether the file will actually get deleted or not.\n\nMoving the plugin to Attacher scope has the advantage that we can get\nabove `Attacher#delete!` in the call chain, which is what backgrounding\noverrides. Additional reason why it shouldn't be overriding\n`Shrine#delete` is that `Shrine` should be the \"low-level\" uploader, so\n`Shrine#upload` and `Shrine#delete` should always upload and delete,\nregardless of which plugins are loaded.","distinct":true,"url":"https://api.github.com/repos/janko-m/shrine/commits/62756bff7e2522b347d5dbb39928b4d9e406f390"},{"sha":"6d542a601fee9b5fc9af7a0c97831e4208cd0c68","author":{"email":"1e70908baa314345bbf67ecc18bb99bf93d99783@gmail.com","name":"Janko Marohnić"},"message":"Inline Attacher.versions and Attacher.versions!\n\nIt doesn't make sense that these methods are part of public interface,\nsince they're really meaningless for external use, and internally each\nmethod is used only at one place, so it's better to inline them.","distinct":true,"url":"https://api.github.com/repos/janko-m/shrine/commits/6d542a601fee9b5fc9af7a0c97831e4208cd0c68"},{"sha":"4a7c5eab42bf9bf957b4fa7d3144fb30af62db7a","author":{"email":"1e70908baa314345bbf67ecc18bb99bf93d99783@gmail.com","name":"Janko Marohnić"},"message":"Add :fallbacks to versions for fallback URLs\n\nWhen using the recache plugin to generate some versions in the\nforeground and some in the background, it is useful to be able to\nspecify fallback URLs for versions that are processed later, so that\nthere can be graceful degradation until the background job finishes.\n\nWhile we can always achieve the same behaviour directly:\n\n  @attacher.url(:thumb_2x) || @attacher.url(:thumb)\n\nit is much nicer to keep the view level unaware of background jobs.","distinct":true,"url":"https://api.github.com/repos/janko-m/shrine/commits/4a7c5eab42bf9bf957b4fa7d3144fb30af62db7a"},{"sha":"6b7211619d14527e8eea603a366953b2a97df127","author":{"email":"1e70908baa314345bbf67ecc18bb99bf93d99783@gmail.com","name":"Janko Marohnić"},"message":"Store backup only after promoting\n\nCurrently the backup was done immediately after storing, and only\nafterwards promoting was done. This is not ideal, because then updating\nthe record with processed/stored files is delayed by the duration of\nbacking up. Since backup can be performed at any point, we move it to\nhappen after promoting instead.","distinct":true,"url":"https://api.github.com/repos/janko-m/shrine/commits/6b7211619d14527e8eea603a366953b2a97df127"},{"sha":"e0d7536125ac98e2032f309a57539792773cf3ff","author":{"email":"1e70908baa314345bbf67ecc18bb99bf93d99783@gmail.com","name":"Janko Marohnić"},"message":"Make deleting backup work with backgrounding\n\nWhen using the backup plugin with backgrounding, two scenarios could\nhappen when deleting a file:\n\n* if backgrounding plugin is loaded *before* backup plugin, deleting the\n  backup would happen in the foreground\n* if backgrounding plugin is loaded *after* backup plugin, the backup\n  wouldn't get deleted at all\n\nSo in both scenarios the behaviour was broken. So we move deleting of\nbackup higher in the call stack, so that it happens \"above\"\nbackgrounding (which overrides Attacher#delete!).\n\nIn Attacher#replace and Attacher#destroy we rely on the return value to\nknow whether a stored file was deleted. These methods can return nil if\nthere is no file or the file is cached, or if keep_files plugin is\nloaded. In backgrounding plugin we also explicitly return the stored\nfile after the job has been kicked off, so that we satisfy this\ncontract.","distinct":true,"url":"https://api.github.com/repos/janko-m/shrine/commits/e0d7536125ac98e2032f309a57539792773cf3ff"}]}