Module: QBWC

Defined in:
lib/qbwc.rb,
lib/qbwc/worker.rb,
lib/qbwc/railtie.rb,
lib/qbwc/version.rb,
lib/qbwc/controller.rb,
lib/qbwc/active_record.rb,
lib/generators/qbwc/install/install_generator.rb

Defined Under Namespace

Modules: ActiveRecord, Controller, Generators Classes: Job, Railtie, Request, Session, Worker

Constant Summary collapse

VERSION =
"0.1.0"
@@username =
nil
@@password =
nil
@@company_file_path =
""
@@authenticator =
nil
@@min_version =
"3.0"
@@api =
:qb
@@storage =
:active_record
@@support_site_url =
nil
@@owner_id =
'{57F3B9B1-86F1-4fcc-B1EE-566DE1813D20}'
@@minutes_to_run =
nil
@@session_initializer =
nil
@@on_error =
'stopOnError'
@@logger =
Rails.logger
@@log_requests_and_responses =
Rails.env == 'production' ? false : true

Class Method Summary collapse

Class Method Details

.add_job(name, enabled = true, company = nil, klass = QBWC::Worker, requests = nil, data = nil) ⇒ Object



79
80
81
# File 'lib/qbwc.rb', line 79

def add_job(name, enabled = true, company = nil, klass = QBWC::Worker, requests = nil, data = nil)
  storage_module::Job.add_job(name, enabled, company, klass, requests, data)
end

.api=(api) ⇒ Object



109
110
111
112
# File 'lib/qbwc.rb', line 109

def api=(api)
  raise 'Quickbooks type must be :qb or :qbpos' unless [:qb, :qbpos].include?(api)
  @@api = api
end

.clear_jobsObject



123
124
125
# File 'lib/qbwc.rb', line 123

def clear_jobs
  storage_module::Job.clear_jobs
end

.configure {|_self| ... } ⇒ Object

Allow configuration overrides

Yields:

  • (_self)

Yield Parameters:

  • _self (QBWC)

    the object that the method was called on



119
120
121
# File 'lib/qbwc.rb', line 119

def configure
  yield self
end

.delete_job(object_or_name) ⇒ Object



87
88
89
90
# File 'lib/qbwc.rb', line 87

def delete_job(object_or_name)
  name = (object_or_name.is_a?(Job) ? object_or_name.name : object_or_name)
  storage_module::Job.delete_job_with_name(name)
end

.get_job(name) ⇒ Object



83
84
85
# File 'lib/qbwc.rb', line 83

def get_job(name)
  storage_module::Job.find_job_with_name(name)
end

.jobsObject



75
76
77
# File 'lib/qbwc.rb', line 75

def jobs
  storage_module::Job.list_jobs
end

.on_error=(reaction) ⇒ Object



103
104
105
106
107
# File 'lib/qbwc.rb', line 103

def on_error=(reaction)
  raise 'Quickbooks on_error must be :stop or :continue' unless [:stop, :continue].include?(reaction)
  @@on_error = "stopOnError" if reaction == :stop
  @@on_error = "continueOnError" if reaction == :continue
end

.parserObject



114
115
116
# File 'lib/qbwc.rb', line 114

def parser
  @@parser ||= Qbxml.new(api, min_version)
end

.pending_jobs(company) ⇒ Object



92
93
94
95
96
# File 'lib/qbwc.rb', line 92

def pending_jobs(company)
  js = jobs
  QBWC.logger.info "#{js.length} jobs exist, checking for pending jobs for company '#{company}'."
  storage_module::Job.sort_in_time_order(js.select {|job| job.company == company && job.pending?})
end

.set_session_initializer(&block) ⇒ Object



98
99
100
101
# File 'lib/qbwc.rb', line 98

def set_session_initializer(&block)
  @@session_initializer = block
  self
end

.storage_moduleObject



71
72
73
# File 'lib/qbwc.rb', line 71

def storage_module
  const_get storage.to_s.camelize
end