travis-ci
5 of 5 new or added lines in 1 file covered. (100.0%)
326 of 770 relevant lines covered (42.34%)
1.79 hits per line
1 |
require 'hanami/utils/hash'
|
3 all except jruby-9.0.5.0 ✔ |
2 |
|
|
3 |
module Hanami |
3 all except jruby-9.0.5.0 ✔ |
4 |
module Helpers |
3 all except jruby-9.0.5.0 ✔ |
5 |
module FormHelper |
3 all except jruby-9.0.5.0 ✔ |
6 |
class Values |
3 all except jruby-9.0.5.0 ✔ |
7 |
GET_SEPARATOR = '.'.freeze |
3 all except jruby-9.0.5.0 ✔ |
8 |
|
|
9 |
def initialize(values, params) |
3 all except jruby-9.0.5.0 ✔ |
10 |
@values = Utils::Hash.new(values).stringify! |
× |
11 |
@params = params
|
× |
12 |
end
|
|
13 |
|
|
14 |
def get(key) |
3 all except jruby-9.0.5.0 ✔ |
15 |
@params.get(key) || _get_from_values(key)
|
× |
16 |
end
|
|
17 |
|
|
18 |
private |
3 all except jruby-9.0.5.0 ✔ |
19 |
def _get_from_values(key) |
3 all except jruby-9.0.5.0 ✔ |
20 |
initial_key, *keys = key.to_s.split(GET_SEPARATOR)
|
× |
21 |
result = @values[initial_key]
|
× |
22 |
|
|
23 |
Array(keys).each do |k|
|
× |
24 |
break if result.nil? |
× |
25 |
|
|
26 |
result = if result.respond_to?(k)
|
× |
27 |
result.public_send(k) |
× |
28 |
else
|
|
29 |
nil
|
× |
30 |
end
|
× |
31 |
end
|
|
32 |
|
|
33 |
result |
× |
34 |
end
|
|
35 |
end
|
|
36 |
end
|
|
37 |
end
|
|
38 |
end
|