Code Monkey home page Code Monkey logo

Comments (9)

nesquena avatar nesquena commented on July 17, 2024

Hey thanks for your feedback, much appreciated. Here is some thoughts and answers.

  1. I am the first to admit my API isn't perfect but the way you demonstrated is how I do it too. I use extends in the object to inherit the properties. I don't view that inheritance case as a place for partials. I tend to use partials exclusively in code blocks when I want access to the json hash for another object. I tend to use extends in most other cases as you showed there. I don't view it as too clumsy but if you have a better approach I am happy to consider it for the future.
  2. I like this idea but for implementation reasons (when dealing with a collection of objects) with the way RABL is currently set up having access to the object in a collection directly isn't easily possible. It can only be accessed in a lambda and passed it at the time each object is rendered. I can imagine a refactoring of RABL that could support an current_object helper that achieves the effect but I probably won't be doing that personally anytime soon unless it becomes an essential use case for me. Thanks for the suggestion and I welcome a patch :)
  3. I completely agree that child should accept an if lambda. In fact I am pretty sure it does or did. I use child with if blocks in a couple of my APIs. Are you absolutely certain that they don't work? Notice the call to resolve_conditions here: https://github.com/nesquena/rabl/blob/master/lib/rabl/builder.rb#L77. If this doesn't work it is a bug and I will fix that soon hopefully.

Thanks again for your feedback and for trying RABL.

from rabl.

wtn avatar wtn commented on July 17, 2024

This post was very helpful. It was not immediately clear how to reuse templates from the README.

from rabl.

xecutioner avatar xecutioner commented on July 17, 2024

child (:auto_judge, :if => lambda {|station| station._type == "HumanWorker"}) {....}

gives out <pre><code>(eval):7: syntax error, unexpected ',', expecting ')' child (:auto_judge, :if =&gt; lambda {|station| sta... ^

from rabl.

nesquena avatar nesquena commented on July 17, 2024

Is that a space after child? Might be the issue

child(:auto_judge, :if => lambda {|station| station._type == "HumanWorker"}) {....}

should work fine...what ruby are you using?

from rabl.

xecutioner avatar xecutioner commented on July 17, 2024

i'm using 1.9.2
child(:line,:if => lambda {@line!=nil}){... } still no effect??? i'm really stuck on this, am i doing something wrong???

from rabl.

nesquena avatar nesquena commented on July 17, 2024

@xecutioner If it really doesn't work, hopefully I can fix it in the next release, I will have to play around. In the meantime try to use:

child @line => :line do
  # ...
end unless @line.nil?

from rabl.

nesquena avatar nesquena commented on July 17, 2024

Closing this but adding a link the wiki, the bugs mentioned here should be fixed.

from rabl.

tymate-team avatar tymate-team commented on July 17, 2024

Seems bug is back
child (@products, :if => lambda {|product| product.active?}) do

eval):4: syntax error, unexpected ',', expecting ')'
child (@products, :if => lambda {|product| product.active?}) do

from rabl.

nesquena avatar nesquena commented on July 17, 2024

It might be the space before the paranthesis, can you try:

child @products, :if => lambda {|product| product.active?} do
# ...
end

from rabl.

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.