Friday, 20 September 2013

Rails 4: Patch JSON encoding to support emojis

Add this to file under `config/initializers/`

module ActiveSupport::JSON::Encoding
  class << self
    def escape(string)
      if string.ascii_only?
        string = string.encode(::Encoding::UTF_8, :undef => :replace).force_encoding(::Encoding::BINARY)
      end
      json = string.gsub(escape_regex) { |s| ESCAPED_CHARS[s] }
      json = %("#{json}")
      json.force_encoding(::Encoding::UTF_8) if json.ascii_only?
      json
    end
  end
end

Friday, 5 July 2013

List all tasks from your custom rake file

namespace :my_application do |ns|
  desc "Lists all tasks available"
  task :tasklist do
    ns.tasks.each do |t|
      name   = t.name_with_args
      spaces = name.length >= 25 ? "\t" : "\t\t" # hack for spacing
      puts name + spaces + t.comment.to_s
    end
  end
end

Thursday, 4 July 2013