Coder Social home page Coder Social logo

Comments (4)

dush avatar dush commented on August 21, 2024 1

It works as expected

# Fix JSON serialization of Tod::TimeOfDay
module TimeOfDayAsJson
  def as_json(*)
    to_s
  end
end

Tod::TimeOfDay.include TimeOfDayAsJson
Tod::TimeOfDay("12:23:45").as_json
=> "12:23:45"

from tod.

jackc avatar jackc commented on August 21, 2024

I'm not exactly sure what your asking for, but I'm open to adding as_json to Tod::TimeOfDay. That might do what you want.

from tod.

chrismanderson avatar chrismanderson commented on August 21, 2024

That's pretty much what I'm looking for!

Should have clarified more, but say I have a class

class Reservation < ActiveRecord::Base
  attribute :name, :string
  attribute :time, :time_only
end

Outputting this class to JSON (without any custom serialization) would give me

{
  'name': 'My reservation',
  'time': {
    'hour': 11,
    'minute': 0,
    'second': 0,
    'second_of_day': 39600
  }
}

But I'd love to able to output something like

{
  'name': 'My reservation',
  'time': '11:00:00'
}

And, there are ways to do this with custom serializers and such for sure, but was looking for a way to avoid that, as I tend to output my Rails JSON objects without heavy serializers.

from tod.

jackc avatar jackc commented on August 21, 2024

I haven't looked into internals of ActiveRecord lately but I presume the all that would be necessary adding this method to Tod::TimeOfDay:

def as_json; to_s; end

Maybe you could try monkey patching to see if that does what you want. If it does, I could merge a PR with that method.

from tod.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.