Module: JdPay::Util
- Defined in:
- lib/jd_pay/util.rb
Constant Summary collapse
- XML_HEAD =
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
Class Method Summary collapse
- .build_pay_form(url, form_attributes) ⇒ Object
- .denilize(h) ⇒ Object
- .to_uri(params) ⇒ Object
- .to_xml(params, options = {}) ⇒ Object
- .xml_out(params) ⇒ Object
Class Method Details
.build_pay_form(url, form_attributes) ⇒ Object
37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/jd_pay/util.rb', line 37 def build_pay_form(url, form_attributes) inputs = '' "<html> <body onload=document.getElementById('payForm').submit(); style='display: none;'> <form action=#{url} method='post' id='payForm'> #{form_attributes.each do |k, v| inputs << "<input type='text' name=#{k} value=#{v}>" end and inputs} </form> </body> </html>".gsub(/>[[:space:]]+/, ">") end |
.denilize(h) ⇒ Object
32 33 34 35 |
# File 'lib/jd_pay/util.rb', line 32 def denilize(h) h.each_with_object({}) { | (k, v), g | g[k] = (Hash === v) ? denilize(v) : v ? v : '' } end |
.to_uri(params) ⇒ Object
26 27 28 29 30 |
# File 'lib/jd_pay/util.rb', line 26 def to_uri(params) params.sort.map do |k, v| "#{k}=#{v}" end.compact.join('&') end |
.to_xml(params, options = {}) ⇒ Object
5 6 7 8 |
# File 'lib/jd_pay/util.rb', line 5 def to_xml(params, = {}) [:root] = [:root] || 'jdpay' XML_HEAD + xml_out({ [:root] => denilize(params) }) end |
.xml_out(params) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/jd_pay/util.rb', line 10 def xml_out(params) xml = [] params.each do |k, v| if v.is_a?(Array) v.each do |ary| xml << "<#{k}>#{xml_out(ary)}</#{k}>" end elsif v.is_a?(Hash) xml << "<#{k}>#{xml_out(v)}</#{k}>" else xml << "<#{k}>#{v}</#{k}>" end end xml.join end |