Plugins naar Github

Gepubliceerd op: 3.IX.2008 22:13 CEST
Categorieën: active_form, dutchify, git, plugin, rails

In blinde opruimwoede heb ik m’n huis plugins op GitHub gezet.

  • ActiveForm; zie ook active_form
    ruby script/plugin install git://github.com/remvee/active_form.git
  • Dutchify; zie ook dutchify
    ruby script/plugin install git://github.com/remvee/dutchify.git
  • Labelify; Yet Another Form Builder
    ruby script/plugin install git://github.com/remvee/labelify.git
  • NullableBooleans; boolean attributen gemakkelijker op nil zetten
    ruby script/plugin install git://github.com/remvee/nullable_booleans.git
p3t0r @ ongeveer 22 uur later

Cool, kan ik lekker makkelijk meegluren.

Ik vroeg me af waarom je in die NullableBooleans die extra if in het begin hebt staan. Dit als die weg laat en nil aan de derde when toevoegt werkt het ook.. met minder code:

def self.value_to_boolean(value)
  case value.to_s.downcase
    when 'true', 't', '1'
      true
    when 'false', 'f', '0'
      false
    when 'nil', ''
      nil
    else
      false
  end
end

Of is dat performancewise niet zo slim?

p3t0r @ ongeveer 22 uur later

Hmmm nu ik er nog eens over nadenk is dit eigenlijk nog korter:

def self.value_to_boolean(value)
  case value.to_s.downcase
    when 'true', 't', '1'
      true
    when 'nil', ''
      nil
    else
      false
  end
end

aangezien je default returnvalue toch false is. Bovendien ben je dan twee branches kwijt waardoor performance misschien nog beter is dan met die passthrough if.

p3t0r @ 1 dag later

ik kon het niet laten:

def self.value_to_boolean(value)
  [nil, ''].include?(value) ? nil : ['true', 't', '1'].include?(value.to_s.downcase) ? true : false
end

ik geef toe dat de leesbaarheid niet optimaal meer is…

Remco @ 1 dag later

Leesbaarheid (mijn versie) vind ik belangrijker dan branches of feestjes met de ternary operator. Overigens is het gebruik van ternary operators in Ruby vaak lelijk:

hungry? ? :food : :drinks

Argh.. te veel vraagtekens en dubbele punten!

Reageer: