Skip to content

Instantly share code, notes, and snippets.

@ifandelse
Created May 25, 2012 03:30
Show Gist options
  • Select an option

  • Save ifandelse/2785593 to your computer and use it in GitHub Desktop.

Select an option

Save ifandelse/2785593 to your computer and use it in GitHub Desktop.

Revisions

  1. ifandelse revised this gist May 25, 2012. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion changes.md
    Original file line number Diff line number Diff line change
    @@ -30,7 +30,7 @@
    * The \* matches only one word - that is the alpha-numeric value between periods, or the "leading" or "trailing" word on a topic:
    * "Home.\*" would match Home.Boy but **not** Home.Sweet.Home
    * "\*.Sweet.\*" would match Home.Sweet.Home and Cubicle.Sweet.Cubicle but **not** Something.Sweet.And.Salty
    * The \# matches any number of **words** in a topic, it will not match partial words
    * The \# matches 0 or more **words** in a topic, it will not match partial words
    * "Home#" would be an invalid **wilcard** binding. AMQP rules mean this will be matched as an exact string, so only topics with "Home#" as a topic would match.
    * "Home.#" would match "Home.Boy" and "Home.Sweet.Home" and "Home"
    * "#.Home" would match "Home.Sweet.Home" and "There.Is.No.Place.Like.Home" and "Home"
  2. ifandelse revised this gist May 25, 2012. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion changes.md
    Original file line number Diff line number Diff line change
    @@ -31,7 +31,7 @@
    * "Home.\*" would match Home.Boy but **not** Home.Sweet.Home
    * "\*.Sweet.\*" would match Home.Sweet.Home and Cubicle.Sweet.Cubicle but **not** Something.Sweet.And.Salty
    * The \# matches any number of **words** in a topic, it will not match partial words
    * "Home#" would be an invalid topic binding.
    * "Home#" would be an invalid **wilcard** binding. AMQP rules mean this will be matched as an exact string, so only topics with "Home#" as a topic would match.
    * "Home.#" would match "Home.Boy" and "Home.Sweet.Home" and "Home"
    * "#.Home" would match "Home.Sweet.Home" and "There.Is.No.Place.Like.Home" and "Home"

  3. ifandelse revised this gist May 25, 2012. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions changes.md
    Original file line number Diff line number Diff line change
    @@ -32,7 +32,7 @@
    * "\*.Sweet.\*" would match Home.Sweet.Home and Cubicle.Sweet.Cubicle but **not** Something.Sweet.And.Salty
    * The \# matches any number of **words** in a topic, it will not match partial words
    * "Home#" would be an invalid topic binding.
    * "Home.#" would match "Home.Boy" and "Home.Sweet.Home"
    * "#.Home" would match "Home.Sweet.Home" and "There.Is.No.Place.Like.Home" but not "Home"
    * "Home.#" would match "Home.Boy" and "Home.Sweet.Home" and "Home"
    * "#.Home" would match "Home.Sweet.Home" and "There.Is.No.Place.Like.Home" and "Home"

    ## Concerns? Please discuss!
  4. ifandelse revised this gist May 25, 2012. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions changes.md
    Original file line number Diff line number Diff line change
    @@ -22,8 +22,8 @@

    ## The plan:

    * Starting with postal v0.6.5, postal will include the AMQP style bindings resolver as something that can be opted into. It will still use the current implementation by default.
    * No later than postal v0.7.0, postal will ship with the AMQP style bindings resolver on by default, with the old version available to opt into for backwards compatibility.
    * Starting with postal v0.6.5, postal will include the AMQP style bindings resolver as something that can be opted into. **It will still use the current implementation by default.**
    * No later than postal v0.7.0, postal will ship with the AMQP style bindings resolver on by default, with the **old version available to opt into for backwards compatibility.**

    ### To Be Clear, here are the AMQP topic binding rules:

  5. ifandelse revised this gist May 25, 2012. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion changes.md
    Original file line number Diff line number Diff line change
    @@ -7,7 +7,7 @@
    * Current wildcard characters:
    * \* - an asterisk acts as a wildcard for any length of the topic.
    * "Home*" would match "Home.Sweet.Home" and "Homeless.Programmer"
    * "Home.*" would match "Home.Sweet.Home, but **not** "Homeless.Programmer"
    * "Home.\*" would match "Home.Sweet.Home, but **not** "Homeless.Programmer"
    * \# - a hash symbol current matches one "word" of a topic.
    * "Home.# would match "Home.Boy" but not "Home.Sweet.Home"

  6. ifandelse revised this gist May 25, 2012. 1 changed file with 6 additions and 6 deletions.
    12 changes: 6 additions & 6 deletions changes.md
    Original file line number Diff line number Diff line change
    @@ -5,10 +5,10 @@

    * Topics are period-delimited string values. Periods are **not** required, but if they are included, the section of alpha-numeric text between periods is referred to as a **word** or **topic segment**.
    * Current wildcard characters:
    * "*" - an asterisk acts as a wildcard for any length of the topic.
    * \* - an asterisk acts as a wildcard for any length of the topic.
    * "Home*" would match "Home.Sweet.Home" and "Homeless.Programmer"
    * "Home.*" would match "Home.Sweet.Home, but **not** "Homeless.Programmer"
    * "#" - a hash symbol current matches one "word" of a topic.
    * \# - a hash symbol current matches one "word" of a topic.
    * "Home.# would match "Home.Boy" but not "Home.Sweet.Home"

    #Y U WANT CHANGE POSTAL?
    @@ -27,10 +27,10 @@

    ### To Be Clear, here are the AMQP topic binding rules:

    * The "*" matches only one word - that is the alpha-numeric value between periods, or the "leading" or "trailing" word on a topic:
    * "Home.*" would match Home.Boy but **not** Home.Sweet.Home
    * "*.Sweet.*" would match Home.Sweet.Home and Cubicle.Sweet.Cubicle but **not** Something.Sweet.And.Salty
    * The "#" matches any number of **words** in a topic, it will not match partial words
    * The \* matches only one word - that is the alpha-numeric value between periods, or the "leading" or "trailing" word on a topic:
    * "Home.\*" would match Home.Boy but **not** Home.Sweet.Home
    * "\*.Sweet.\*" would match Home.Sweet.Home and Cubicle.Sweet.Cubicle but **not** Something.Sweet.And.Salty
    * The \# matches any number of **words** in a topic, it will not match partial words
    * "Home#" would be an invalid topic binding.
    * "Home.#" would match "Home.Boy" and "Home.Sweet.Home"
    * "#.Home" would match "Home.Sweet.Home" and "There.Is.No.Place.Like.Home" but not "Home"
  7. ifandelse revised this gist May 25, 2012. 1 changed file with 11 additions and 1 deletion.
    12 changes: 11 additions & 1 deletion changes.md
    Original file line number Diff line number Diff line change
    @@ -14,7 +14,7 @@
    #Y U WANT CHANGE POSTAL?

    ![postal.publish("Epic Fail")](http://4.bp.blogspot.com/-x_5MIxY3gtw/ToaHlNKwxuI/AAAAAAAAAD8/HtshNE6f1O0/s1600/triple-facepalm.jpg)
    ## Simple: The wildcard rules above are the flat **inverse** of the AMQP standard.
    ## Simple: The wildcard rules above are the **FLAT INVERSE** of the AMQP standard. :-(

    * I've borrowed key conceptual ideas from AMQP, and want to remove this mental 'impedance mismatch'
    * Future postal.js endeavors include bridging instances of postal with RabbitMQ and other 3rd party libraries that use the AMQP style approach. Consistency is key.
    @@ -25,4 +25,14 @@
    * Starting with postal v0.6.5, postal will include the AMQP style bindings resolver as something that can be opted into. It will still use the current implementation by default.
    * No later than postal v0.7.0, postal will ship with the AMQP style bindings resolver on by default, with the old version available to opt into for backwards compatibility.

    ### To Be Clear, here are the AMQP topic binding rules:

    * The "*" matches only one word - that is the alpha-numeric value between periods, or the "leading" or "trailing" word on a topic:
    * "Home.*" would match Home.Boy but **not** Home.Sweet.Home
    * "*.Sweet.*" would match Home.Sweet.Home and Cubicle.Sweet.Cubicle but **not** Something.Sweet.And.Salty
    * The "#" matches any number of **words** in a topic, it will not match partial words
    * "Home#" would be an invalid topic binding.
    * "Home.#" would match "Home.Boy" and "Home.Sweet.Home"
    * "#.Home" would match "Home.Sweet.Home" and "There.Is.No.Place.Like.Home" but not "Home"

    ## Concerns? Please discuss!
  8. ifandelse revised this gist May 25, 2012. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions changes.md
    Original file line number Diff line number Diff line change
    @@ -1,3 +1,4 @@
    ![Darn Straight - change is coming](http://www.soiwaslike.com/i/the-good-the-bad-and-the-ugly.gif)
    ## The Way Postal.js Handles Topic Bindings Is About to Change

    #### postal.js currently supports wildcard topic bindings by providing two special characters that can be used in a binding. The **current** implementation works as follows:
  9. ifandelse revised this gist May 25, 2012. 1 changed file with 2 additions and 1 deletion.
    3 changes: 2 additions & 1 deletion changes.md
    Original file line number Diff line number Diff line change
    @@ -12,6 +12,7 @@

    #Y U WANT CHANGE POSTAL?

    ![postal.publish("Epic Fail")](http://4.bp.blogspot.com/-x_5MIxY3gtw/ToaHlNKwxuI/AAAAAAAAAD8/HtshNE6f1O0/s1600/triple-facepalm.jpg)
    ## Simple: The wildcard rules above are the flat **inverse** of the AMQP standard.

    * I've borrowed key conceptual ideas from AMQP, and want to remove this mental 'impedance mismatch'
    @@ -23,4 +24,4 @@
    * Starting with postal v0.6.5, postal will include the AMQP style bindings resolver as something that can be opted into. It will still use the current implementation by default.
    * No later than postal v0.7.0, postal will ship with the AMQP style bindings resolver on by default, with the old version available to opt into for backwards compatibility.

    ## Concerns? Please discuss!
    ## Concerns? Please discuss!
  10. ifandelse revised this gist May 25, 2012. 1 changed file with 4 additions and 2 deletions.
    6 changes: 4 additions & 2 deletions changes.md
    Original file line number Diff line number Diff line change
    @@ -1,6 +1,8 @@
    ## postal.js currently supports wildcard topic bindings by providing two special characters that can be used in a binding. The **current** implementation works as follows:
    ## The Way Postal.js Handles Topic Bindings Is About to Change

    * topics are period-delimited string values. Periods are **not** required, but if they are included, the section of alpha-numeric text between periods is referred to as a **word** or **topic segment**.
    #### postal.js currently supports wildcard topic bindings by providing two special characters that can be used in a binding. The **current** implementation works as follows:

    * Topics are period-delimited string values. Periods are **not** required, but if they are included, the section of alpha-numeric text between periods is referred to as a **word** or **topic segment**.
    * Current wildcard characters:
    * "*" - an asterisk acts as a wildcard for any length of the topic.
    * "Home*" would match "Home.Sweet.Home" and "Homeless.Programmer"
  11. ifandelse created this gist May 25, 2012.
    24 changes: 24 additions & 0 deletions changes.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,24 @@
    ## postal.js currently supports wildcard topic bindings by providing two special characters that can be used in a binding. The **current** implementation works as follows:

    * topics are period-delimited string values. Periods are **not** required, but if they are included, the section of alpha-numeric text between periods is referred to as a **word** or **topic segment**.
    * Current wildcard characters:
    * "*" - an asterisk acts as a wildcard for any length of the topic.
    * "Home*" would match "Home.Sweet.Home" and "Homeless.Programmer"
    * "Home.*" would match "Home.Sweet.Home, but **not** "Homeless.Programmer"
    * "#" - a hash symbol current matches one "word" of a topic.
    * "Home.# would match "Home.Boy" but not "Home.Sweet.Home"

    #Y U WANT CHANGE POSTAL?

    ## Simple: The wildcard rules above are the flat **inverse** of the AMQP standard.

    * I've borrowed key conceptual ideas from AMQP, and want to remove this mental 'impedance mismatch'
    * Future postal.js endeavors include bridging instances of postal with RabbitMQ and other 3rd party libraries that use the AMQP style approach. Consistency is key.
    * postal.js is still young enough for this to not be a major disruption.

    ## The plan:

    * Starting with postal v0.6.5, postal will include the AMQP style bindings resolver as something that can be opted into. It will still use the current implementation by default.
    * No later than postal v0.7.0, postal will ship with the AMQP style bindings resolver on by default, with the old version available to opt into for backwards compatibility.

    ## Concerns? Please discuss!