-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add color and size tag support #27
base: master
Are you sure you want to change the base?
Conversation
Thanks! Would it be better if, in addition to the global config, we were to allow config overrides when |
That wouldn't actually solve my design issue: Since the Grammar parser is abstracted away with Parslet and we only define the Nodes the parser is using, I don't know how to pass data from RbbCode#convert to the node instances. This is where my global config comes in at 9b3dda5#diff-3c56d0b32c0d74f930a5a545082ee319R200 |
I can pass the config options through. Would you like to be able to do the following?
|
Do you have an example? The more I think about it, the more I want to avoid @@options. if we have to keep the
Hm, I don't see how this would solve the @@options issue. Personally I don't see a gain in this right now. on the contrary, it'd break backwards-compatibilty for nothing. :/ |
Example usage would be:
So the question is whether you'd like to be able to call the API this way. That is, passing options on a per-convert basis, instead of only once upon instantiating The class variable |
lib/rbbcode.rb
Outdated
@@ -27,9 +27,10 @@ def self.parser_class | |||
end | |||
|
|||
def initialize(options = {}) | |||
@options = { | |||
@@options = { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am introducing @@options here as a class variable in order to be able to use it in a static RbbCode.options called in the new Node classes. These don't have any reference to the RbbCode instance and I don't know how to inject options into them.
You can introduce it. Personally I'm don't need it and if it replaces the options via initializer everyone using the gem would have to change. So I'll not integrate here. :) |
No worries, nobody have to change their calls to the existing API. The
per-convert options would be an override of the per-instance options. So
the order of precedence would be:
1. Options set with `convert` (per-convert)
2. Options set with `new` (per-instance)
3. Default options (built-in)
|
I updated the API on the master branch. As you'll see, this adds per-convert option overrides without breaking backwards compatibility. No class variable needed. |
Alright, I changed my branch to incorporate that. |
Sounds good. I’ll work on getting these merged into master.
On Thu, Jun 25, 2020 at 5:26 AM Daniel Senff ***@***.***> wrote:
Alright, I changed my branch to incorporate that. @@options is not
removed.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#27 (comment)>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAAD6UBWKHSDW4GYOV5JVYDRYMJ3ZANCNFSM4OEIXOFQ>
.
--
--
This message, including attachments, is confidential and may contain
privileged information. If you receive this message in error, please
destroy it and notify me immediately.
|
This is relating to #26
I opted to only have the options for
:span
and:remove
for now. I'm not entirely happy about the use of global option, but I didn't want to rebuild the whole configuration management.