Judging from the test suite, the only issue in supporting Ruby 2.2.0+
was with the `mysql2` gem. Updating this to the latest 0.3.x allows
Lobsters to run with newer Rubies.
We can't update to the absolute latest `mysql2` gem without first
updating Rails, which is why I used the pessimistic version constraint
for `mysql2`.
I've changed this a few times because I didn't want to show
"discuss" to non-users, but they at least need a link to the story
to copy, so show a link with "no comments" to them.
We force a connection to a pre-resolved IP to avoid being tricked
into connecting to a local host, but hosts that use SNI need the
hostname in the SSL negotiation instead of an IP.
Fixes the problem with CloudFlare blocking requests to medium.com,
which prevented the URL canonicalization code from being run when a
medium URL was submitted, which prevented us from stripping off
those stupid referral codes medium attaches to URLs (which could
be stripped out in Story#url= but medium allows custom domains, so
that wouldn't work for things like m.signalvnoise.com).
Code from Pushover.
but not take them into its score, just its hotness value. this way
when a new winning story takes over an upvoted story, the hotness
value will be near the losing one.
brute forcing changes by regexps gets things wrong sometimes, so use
nokogiri to parse the html output of rdiscount and do changes on
individual nodes, then turn back into a string
we lose the ability to move punctuation inside of auto-generated
links, but i don't see any easy/definitive way to do this properly.
closes#242closes#209
i am not going to waste any more time cleaning up these specs that
were written by other people to be so crafty that they break or spew
tons of garbage every time something is updated.
i don't like showing "discuss" to logged out users, and now that we
have a story description icon that can link to the story text, back
out the change that made logged out users see discuss when they
can't discuss it.