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 =
"1.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
@@session_complete_success =
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



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

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



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

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

.clear_jobsObject



132
133
134
# File 'lib/qbwc.rb', line 132

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



128
129
130
# File 'lib/qbwc.rb', line 128

def configure
  yield self
end

.delete_job(object_or_name) ⇒ Object



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

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



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

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

.jobsObject



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

def jobs
  storage_module::Job.list_jobs
end

.on_error=(reaction) ⇒ Object



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

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



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

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

.pending_jobs(company, session = QBWC::Session.get) ⇒ Object



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

def pending_jobs(company, session = QBWC::Session.get)
  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?(session)})
end

.set_session_complete_success(&block) ⇒ Object



107
108
109
110
# File 'lib/qbwc.rb', line 107

def set_session_complete_success(&block)
  @@session_complete_success = block
  self
end

.set_session_initializer(&block) ⇒ Object



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

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

.storage_moduleObject



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

def storage_module
  const_get storage.to_s.camelize
end