Class: OICFiscalPrinterLib

Inherits:
Object
  • Object
show all
Defined in:
lib/errors.rb,
lib/OICFiscalPrinterLibOCX.rb

Defined Under Namespace

Classes: ArgumentError, ConnectionError, Error

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(args) ⇒ OICFiscalPrinterLib

Returns a new instance of OICFiscalPrinterLib.



8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/OICFiscalPrinterLibOCX.rb', line 8

def initialize(args)
  @connection = WIN32OLE.new('OICFiscalPrinterLib.OICFiscalPrinter')

  @connection.PortConfigString = ConnectionFactory.new(args).port_config_string
  
  @connection.PrinterDriver = args[:printerdriver] || default_printerdriver

  @connection.LogTransmission = args.fetch(:logtransmission, default_logtransmission) 
  @connection.LogFolderName   = args[:logfoldername] || default_logfoldername

  initialize_extra(args)
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method_name, *args) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/OICFiscalPrinterLibOCX.rb', line 25

def method_missing(method_name, *args)
  is_property = false
  if method_name.match(/=$/)
    method_name = method_name.to_s.gsub(/=$/,'')
    is_property = true
  else
    method_name = method_name.to_s
  end    

  if respond_to?(method_name)
    if is_property
      connection.setproperty(method_name, *args)
    else  
      connection.send(method_name, *args) #if ready?
    end
  else
    raise NoMethodError, "undefined method `#{method_name}' for OICFiscalPrinterLib interface"
  end  
end

Instance Attribute Details

#connectionObject

Returns the value of attribute connection.



6
7
8
# File 'lib/OICFiscalPrinterLibOCX.rb', line 6

def connection
  @connection
end

Instance Method Details

#initialize_extra(args) ⇒ Object



21
22
# File 'lib/OICFiscalPrinterLibOCX.rb', line 21

def initialize_extra(args)
end

#respond_to?(method_name) ⇒ Boolean

Returns:

  • (Boolean)


45
46
47
# File 'lib/OICFiscalPrinterLibOCX.rb', line 45

def respond_to?(method_name)
  @connection.ole_respond_to?(method_name)
end