Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
R
rails_param
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Wiki
Wiki
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
ikcrm_common
rails_param
Commits
e0c42cb8
Commit
e0c42cb8
authored
Oct 23, 2014
by
Brad Urani
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #2 from stantoncbradley/develop
add BigDecimal conversion for formatted currency strings
parents
2ec350a8
86c2ca0a
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
11 additions
and
1 deletions
+11
-1
lib/rails_param/param.rb
+4
-1
spec/rails_param/param_spec.rb
+7
-0
No files found.
lib/rails_param/param.rb
View file @
e0c42cb8
...
@@ -56,7 +56,10 @@ module RailsParam
...
@@ -56,7 +56,10 @@ module RailsParam
return
Array
(
param
.
split
(
options
[
:delimiter
]
||
","
))
if
type
==
Array
return
Array
(
param
.
split
(
options
[
:delimiter
]
||
","
))
if
type
==
Array
return
Hash
[
param
.
split
(
options
[
:delimiter
]
||
","
).
map
{
|
c
|
c
.
split
(
options
[
:separator
]
||
":"
)}]
if
type
==
Hash
return
Hash
[
param
.
split
(
options
[
:delimiter
]
||
","
).
map
{
|
c
|
c
.
split
(
options
[
:separator
]
||
":"
)}]
if
type
==
Hash
return
(
/(false|f|no|n|0)$/i
===
param
.
to_s
?
false
:
(
/(true|t|yes|y|1)$/i
===
param
.
to_s
?
true
:
nil
))
if
type
==
TrueClass
||
type
==
FalseClass
||
type
==
:boolean
return
(
/(false|f|no|n|0)$/i
===
param
.
to_s
?
false
:
(
/(true|t|yes|y|1)$/i
===
param
.
to_s
?
true
:
nil
))
if
type
==
TrueClass
||
type
==
FalseClass
||
type
==
:boolean
return
BigDecimal
.
new
(
param
,
(
options
[
:precision
]
||
DEFAULT_PRECISION
))
if
type
==
BigDecimal
if
type
==
BigDecimal
param
=
param
.
delete
(
'$,'
).
strip
.
to_f
if
param
.
is_a?
(
String
)
return
BigDecimal
.
new
(
param
,
(
options
[
:precision
]
||
DEFAULT_PRECISION
))
if
type
==
BigDecimal
end
return
nil
return
nil
rescue
ArgumentError
rescue
ArgumentError
raise
InvalidParameterError
,
"'
#{
param
}
' is not a valid
#{
type
}
"
raise
InvalidParameterError
,
"'
#{
param
}
' is not a valid
#{
type
}
"
...
...
spec/rails_param/param_spec.rb
View file @
e0c42cb8
...
@@ -112,6 +112,13 @@ describe RailsParam::Param do
...
@@ -112,6 +112,13 @@ describe RailsParam::Param do
controller
.
param!
:foo
,
BigDecimal
,
precision:
6
controller
.
param!
:foo
,
BigDecimal
,
precision:
6
expect
(
controller
.
params
[
"foo"
]).
to
eql
12345.7
expect
(
controller
.
params
[
"foo"
]).
to
eql
12345.7
end
end
it
"converts formatted currency string to big decimal"
do
allow
(
controller
).
to
receive
(
:params
).
and_return
({
"foo"
=>
"$100,000"
})
controller
.
param!
:foo
,
BigDecimal
expect
(
controller
.
params
[
"foo"
]).
to
eql
100000.0
end
end
end
describe
"booleans"
do
describe
"booleans"
do
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment