Sha256: 7e79320cd7d85efb0ff24d8bd040c9da497b273628507e9d9fecda61a17ffc66

Contents?: true

Size: 1009 Bytes

Versions: 5

Compression:

Stored size: 1009 Bytes

Contents

module Netprint
  class Options
    attr_reader :options

    def initialize(options = {})
      @options = {
        :paper_size  => PAPERSIZE::A4,
        :color       => COLOR::BW,
        :code_type   => CODE_TYPE::ALNUM,
        :secret_code => nil,
        :email       => nil
      }.merge(options)
    end

    def apply(form)
      check_radiobutton(form, 'papersize',    options[:paper_size])
      check_radiobutton(form, 'color',        options[:color])
      check_radiobutton(form, 'number',       options[:code_type])
      check_radiobutton(form, 'secretcodesw', options[:secret_code] =~ /^\d{4}$/ ? '1' : '0')
      check_radiobutton(form, 'mailsw',       options[:email] ? '1' : '0')

      form['secretcode'] = options[:secret_code] if options[:secret_code] =~ /^\d{4}$/
      form['mailaddr']   = options[:email]       if options[:email]
    end

    private

    def check_radiobutton(form, name, value)
      form.radiobutton_with(:name => name, :value => value).check
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
netprint-0.2.0 lib/netprint/options.rb
netprint-0.1.1 lib/netprint/options.rb
netprint-0.1.0 lib/netprint/options.rb
netprint-0.0.4 lib/netprint/options.rb
netprint-0.0.3 lib/netprint/options.rb