Ecosyste.ms: OpenCollective
An open API service for software projects hosted on Open Collective.
github.com/shrinerb/shrine
File Attachment toolkit for Ruby applications
https://github.com/shrinerb/shrine
Attacher#column_data name much better indicates strong connection
Attacher#data. Attacher#column...
Shrine::Storage::Memory is something I use a lot, especially in
self-contained scripts where I d...
It will not log only "expensive" operations, it will log specific
operations regardless of wheth...
People have often missed that this plugin exists, and I think it's
partly because it's one of fe...
It's more important, so it should be higher.
19899a3831aca462dd6c65f51de796968e408a04 authored over 5 years ago by Janko Marohnić <[email protected]>375f4a2e1d8b60c3cb13e523d56c3cd7f059471b authored over 5 years ago by Janko Marohnić <[email protected]>
81e43c4c64a5281ba90d895c2345fd0d2290d960 authored over 5 years ago by Janko Marohnić <[email protected]>
7a618ff499c5a3eee33f558b5b48507b968f440f authored over 5 years ago by Janko Marohnić <[email protected]>
749e4c9b611e86292cb8f4de9cac86ba184de5d8 authored over 5 years ago by Janko Marohnić <[email protected]>
This is a reimplementation of the versions plugin. The versions plugin
had several problems:
* ...
0d1ae210ba99026a946ead879d83bbe443bc45ac authored over 5 years ago by Janko Marohnić <[email protected]>
Ruby developers like to use symbols and string interchangeably, and
Shrine supports this reasona...
We want Shrine to be as convenient as possible to use. This can be a lot
to write:
Shrine::At...
1ab58bf72c6ac300ebabe1be31da72322230e568 authored over 5 years ago by Janko Marohnić <[email protected]>
Previously Shrine.opts was duplicated only one level in depth, which
means that plugins needed t...
Some plugins might need to ensure a file is attached before performing
some operation. So we add...
There is no need to store it, as it's used only at time of
configuration. This simplifies option...
This is possible as of recently, and it obviously looks nicer than
string keys.
We have to work around Active Record's bad connection pool
implementation, which ties connection...
The API docs should serve as a method reference, plugin documentation
should be more high level.
That is more correct than a generic Shrine::Error.
264192ff6eb7d534791617e5b66d3380d3a967ae authored over 5 years ago by Janko Marohnić <[email protected]>
The main storage in the Attacher is the permanent storage, the temporary
storage is just there t...
We want to support the scenario when record data attribute value is a
symbolized hash, so we add...
One of the reasons why we've split Attacher#destroy_attached and
Attacher#destroy is so that we ...
This was removed in the big Attacher refactor, because entity/model is
loaded only after initial...
This idea was taken from Roda, but I don't see any advantage in using
this plugin over overridin...
890c463096e3f5477719a15ea3c631ddefa3cae9 authored over 5 years ago by Janko Marohnić <[email protected]>
34d723ab2ab059e7818b8e34f4c06ac78942480f authored over 5 years ago by Janko Marohnić <[email protected]>
e5594c91bb75b751cdca5e9fb300fbdb28adef4c authored over 5 years ago by Janko Marohnić <[email protected]>
ab98716a2e96ef59684822910aea3a60862c2060 authored over 5 years ago by Janko Marohnić <[email protected]>
d1d1a82d56424ca4a0993686e9bb1291939d0a09 authored over 5 years ago by Janko Marohnić <[email protected]>
Sometimes people might want to return only the storage identifiers of
temporary and permanent st...
924d0afb22b6f0b4479f98c700226e901ee497aa authored over 5 years ago by Janko Marohnić <[email protected]>
098e0301922f5f1a7984916219e4e88f4742ef3f authored over 5 years ago by Janko Marohnić <[email protected]>
YAML, Oj, MultiJson, MessagePack and probably many other libraries
implement the load/dump inter...
There are some conventions that are useful to follow when writing an ORM
plugin to make ORM plug...
There are some decisions made in database plugins specifically so that
they work with the backgr...
We're not actually using it, so it adds an unnecessary layer on top of
Minitest.
38589535c2d2e96f754b7e4c276dd8b4ffb0f8ce authored over 5 years ago by Janko Marohnić <[email protected]>
945943aa8be6966a4c6a3fcf808912553d9b4863 authored over 5 years ago by Janko Marohnić <[email protected]>
We have many guides that conceptually fall into different categories, so
we group them on the we...
8fdd95a21840f054c109722b6061e5eb634e0bdc authored over 5 years ago by Janko Marohnić <[email protected]>
50d6b3f498a111268b71632c57a869750d8cb332 authored over 5 years ago by Janko Marohnić <[email protected]>
68d38aa9b04fea0d8041ab5527e07f5bc56687fd authored over 5 years ago by Janko Marohnić <[email protected]>
883b0f292073f3f00b2804463b25a5763e0639c3 authored over 5 years ago by Janko Marohnić <[email protected]>
I think the previous categorization was too focused on the type of
plugin, rather than the area ...
59bda83bdb4a7a8c9f579877cefa43a54de013f9 authored over 5 years ago by Janko Marohnić <[email protected]>
MRI 2.4+ allows `nil.dup`, but in MRI 2.3 that still raises
TypeError: can't dup NilClass
So...
00c28feafdb8588571a161e399e5b4d48eac80c8 authored over 5 years ago by Janko Marohnić <[email protected]>
This override was unintentionally done inside the :callbacks
conditional, so we move it out.
6ecfc5408fc202cb6faa37f72c1ce7ec0b1ddc33 authored over 5 years ago by Janko Marohnić <[email protected]>
Storage#open not accepting options will be deprecated in Shrine 3.0, so
we update the storage li...
2edbd47e320ff04ac2cbf971b7f6f038ecdf5455 authored over 5 years ago by Janko Marohnić <[email protected]>
ef9f9f5a86db7a9c7cab0933ca3d50acba37af76 authored over 5 years ago by Janko Marohnić <[email protected]>
This was accidentally removed after the big Attacher refactoring, but we
can easily add it back.
People might still be overriding Shrine#process directly, and expecting
returning nil to be a no...
The #persist method will become a convention for ORM plugins starting
from Shrine 3.0, so we add...
This is consistent with Attacher#promote returning the promoted file.
3d0c2372ee2c5dbb28969d315db2204ea78e4e3a authored over 5 years ago by Janko Marohnić <[email protected]>80abe5af03c719cb5ae670e64e3754fae73da94b authored over 5 years ago by Janko Marohnić <[email protected]>
It's useful to be able to instantiate an UploadedFile object directly
using symbol keys. This ma...
We don't want UploadedFile implementation to couple to the exact data
hash that was passed in, s...
Supporting `Storage#open` that doesn't accept additional options
complicates implementation of S...
04e75787d89445e7561d6eea0f6492b0a36fd897 authored over 5 years ago by Janko Marohnić <[email protected]>
When using the model plugin, the user will usually want to have file
data with re-extracted meta...
Previously we were sending a `download.shrine` event whenever
UploadedFile#open is called, which...
This allows Shrine::Storage::Memory#open to accept any additional
arguments, which is useful in ...
This format was actually creating a newline, which I wasn't intended. So
we just inline it.
c5497c4b245f050fba0314456cc9d6e2ff563021 authored over 5 years ago by Janko Marohnić <[email protected]>
32b0945e79cd57e300dec7710d163aba621ad72e authored over 5 years ago by Janko Marohnić <[email protected]>
People might want to pass additional options for metadata extraction on
assignment.
There are many different attacher operations that could take options:
* attaching to cache
* at...
The generic validation functionality from Shrine::Attacher has been
extracted into the new valid...
b22b468a860e1934ef93c2347431beae112aa3cf authored over 5 years ago by Janko Marohnić <[email protected]>
13cbbf07c11a617f30047312b1955f389435cec3 authored over 5 years ago by Janko Marohnić <[email protected]>
Class#attr_writer is still private in those versions.
c43ffa9f2850f7a95e0a72cb6dec8f7f61fad42a authored over 5 years ago by Janko Marohnić <[email protected]>
Problem
=======
Shrine::Attacher has been coupled to usage with mutable structs, which
is assoc...
* Fix activerecord plugin's after_commit callbacks to work in Rails 3.
Because the transactio...
d1d8361805518d7b71fb794fbde9fb7444d06a82 authored over 5 years ago by Aurel Branzeanu <[email protected]>
This deletion will no longer be backgroundable with new backgrounding
API, so it doesn't pay off...
This functionality will be supported by default.
bcc2c5328f007a884fb6de15edc758fbc144544f authored over 5 years ago by Janko Marohnić <[email protected]>
It relies on the removed hooks plugin. With the new derivatives people
will be able to paralleli...
It's complicating the internal implementation, and it's not worth it
anymore, now that we'll hav...
5b8707a068a24f3f46f0ef485c6a74270a0b65fe authored over 5 years ago by Janko Marohnić <[email protected]>
ba0af8a5911d2627b8a654159cadc59d513e4fd1 authored over 5 years ago by Janko Marohnić <[email protected]>
By default, when copying an S3 object, the destination object will
retain any source object meta...
That's consistent with Shrine#storage_key which returns a Symbol as
well. And we also show using...
Capybara and Mail gem, both of which Rails depends on, switched from the
mime-types to the mini_...
Even though Ruby 2.3 is EOL, people still on Rails 3.2.x are stuck with
Ruby 2.3, because Ruby 2...
5ed2719c93eda4010c394ecbeaacb099a94afc54 authored over 5 years ago by Janko Marohnić <[email protected]>
8e8930d61fb61efb7d545c200fc5b4f98c882eff authored over 5 years ago by Janko Marohnić <[email protected]>
04a613e49b5db45f46c814613a0fc8530f34e91e authored over 5 years ago by Janko Marohnić <[email protected]>
15216aa7089d677ed3eb95369533ef63eb505be7 authored over 5 years ago by Janko Marohnić <[email protected]>
d3e7c85787aa3c75542f05d9bd0841da06b1ceb1 authored over 5 years ago by Janko Marohnić <[email protected]>
c3121333ca6ddbdb7877241924e4f55a0db3eb0f authored over 5 years ago by Janko Marohnić <[email protected]>
6fd9e93355d854914d15c97d7dcc687a05fda486 authored over 5 years ago by Janko Marohnić <[email protected]>
These were only there so that the user can override them, before we
transitioned to class method...
a62db5eec531751be1c82c5cf93304a2bc8f76db authored over 5 years ago by Janko Marohnić <[email protected]>
125093b4a0af5928f0fe2f344b98f3de1728de2b authored over 5 years ago by Janko Marohnić <[email protected]>
61f22ded0444f5e62530cd4bd57cc234ed6e8a61 authored over 5 years ago by Janko Marohnić <[email protected]>
7c7198e6f634d5b4cc56f39d55297d54bf6e8a14 authored over 5 years ago by Janko Marohnić <[email protected]>
377ec4d25a783c7cd6f37116d143c8915fb11ae4 authored over 5 years ago by Janko Marohnić <[email protected]>
2b5d99dc130fa62060f83fbea32c55937384b493 authored over 5 years ago by Janko Marohnić <[email protected]>
fad0d599dbf565e326b59b1dd050ea98bce21d28 authored over 5 years ago by Janko Marohnić <[email protected]>
721f0a3f0a964674c32b818ee93791f5cb92b4ad authored over 5 years ago by Janko Marohnić <[email protected]>