Mats Persson
2006-Mar-03 19:35 UTC
[Rails] number_to_currency() helper == non DRY == could be improved
Hi all,
Apologies in advance if I got this one wrong, I''m still just a
newbie ;-)
Going through the Apple ADC RoR tutorial it suddenly occurred to me
that the ''number_to_currency()'' helper method was not DRY
streamlined.
Scenario::
The "number_to_currency()" methods options hash works great when I
need to dynamically display different currencies when I call
"number_to_currency()", as long a I have an idea of what the currency
should be each time ;-)
But, what if I want all instances of a currency to display as GBP, ?,
SEK or any other currency ? Then I would have to create a CONSTANT
for that currency and then include that option in every instance of
the ''number_to_currency()'' method.
number_to_currency(0.02) versus number_to_currency(0.02,
{:unit => MY_CURRENCY_CONSTANT} )
Not to bad some may say, but it''s still not exactly DRY nor elegant
is it ?
Instead I would propose as similar scheme to the ''session_key''
override functionality that I use a lot.
## add a custom session ID for this site (when developing with many
apps on local system)
ActionController::CgiRequest::DEFAULT_SESSION_OPTIONS[:session_key] =
''00_shows_at_top_of_sorted_cookies_list''
Whereby we could define the DEFAULT_CURRENCY_TYPE in the
environment.rb or something similar.
However, an app could also need to be localized, ie I might want the
default currency to be ? and someone else might want the ? (euro) in
their session of the same app.
So, I see this issue, but is not (yet) knowledgeable enough to figure
out a proper fix for it and submit it as a ticket, hence this post
here, for someone else to pick up and hopefully ''run'' with ;-)
As I
said above, apologies if this is the wrong approach or a stupid idea.
Kind regards,
Mats
----
"TextMate, coding with an incredible sense of joy and ease"
- www.macromates.com -
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
http://wrath.rubyonrails.org/pipermail/rails/attachments/20060303/b18d0798/attachment-0001.html
Carl-Johan Kihlbom
2006-Mar-04 09:19 UTC
[Rails] number_to_currency() helper == non DRY == could be improved
Why don''t you just define your own helper action that calls
number_to_currency with the proper options? Something like:
def number_to_pounds (number)
number_to_currency(number, {:unit => "£", :separator
=> ",",
:delimiter => ""})
end
/ CJ
On 3/3/06, Mats Persson <mats@imediatec.co.uk>
wrote:>
>
> Hi all,
>
> Apologies in advance if I got this one wrong, I''m still just a
newbie ;-)
>
> Going through the Apple ADC RoR tutorial it suddenly occurred to me that
the
> ''number_to_currency()'' helper method was not DRY
streamlined.
>
> Scenario::
> The "number_to_currency()" methods options hash works great when
I need to
> dynamically display different currencies when I call
"number_to_currency()",
> as long a I have an idea of what the currency should be each time ;-)
>
> But, what if I want all instances of a currency to display as GBP, ?, SEK
or
> any other currency ? Then I would have to create a CONSTANT for that
> currency and then include that option in every instance of the
> ''number_to_currency()'' method.
>
> number_to_currency(0.02) versus number_to_currency(0.02, {:unit
=>
> MY_CURRENCY_CONSTANT} )
>
> Not to bad some may say, but it''s still not exactly DRY nor
elegant is it ?
>
> Instead I would propose as similar scheme to the
''session_key'' override
> functionality that I use a lot.
>
> ## add a custom session ID for this site (when developing with many apps
on
> local system)
> ActionController::CgiRequest::DEFAULT_SESSION_OPTIONS[:session_key]
> = ''00_shows_at_top_of_sorted_cookies_list''
>
> Whereby we could define the DEFAULT_CURRENCY_TYPE in the environment.rb or
> something similar.
>
> However, an app could also need to be localized, ie I might want the
default
> currency to be ? and someone else might want the ? (euro) in their session
> of the same app.
>
> So, I see this issue, but is not (yet) knowledgeable enough to figure out a
> proper fix for it and submit it as a ticket, hence this post here, for
> someone else to pick up and hopefully ''run'' with ;-) As
I said above,
> apologies if this is the wrong approach or a stupid idea.
>
>
>
> Kind regards,
>
>
> Mats
>
>
> ----
> "TextMate, coding with an incredible sense of joy and ease"
> - www.macromates.com -
>
>
> _______________________________________________
> Rails mailing list
> Rails@lists.rubyonrails.org
> http://lists.rubyonrails.org/mailman/listinfo/rails
>
>
>