Module: Magentwo

Defined in:
lib/model/stock_item.rb,
lib/filter.rb,
lib/adapter.rb,
lib/dataset.rb,
lib/magentwo.rb,
lib/connection.rb,
lib/model/base.rb,
lib/model/cart.rb,
lib/model/order.rb,
lib/model/coupon.rb,
lib/model/product.rb,
lib/model/category.rb,
lib/model/customer.rb,
lib/util/validator.rb,
lib/model/sales_rule.rb

Overview

Defined Under Namespace

Modules: Filter Classes: Adapter, Base, Cart, Category, Connection, Coupon, Customer, Dataset, Order, Product, SalesRule, StockItem, Validator

Constant Summary collapse

Models =
%w(base product customer order coupon sales_rule category cart stock_item)
@@mutex =
Mutex.new

Class Method Summary collapse

Class Method Details

.connect(host = nil, user_name = nil, password = nil) ⇒ Object

Raises:

  • (ArgumentError)


10
11
12
13
14
15
# File 'lib/magentwo.rb', line 10

def self.connect host=nil, user_name=nil, password=nil
  raise ArgumentError, "no host specified" unless host
  raise ArgumentError, "no user_name specified" unless user_name
  raise ArgumentError, "no password specified" unless password
  Base.adapter = Adapter.new ({uri: host, user: user_name, password: password})
end

.connect_with_token(host = nil, token = nil) ⇒ Object

Raises:

  • (ArgumentError)


17
18
19
20
21
# File 'lib/magentwo.rb', line 17

def self.connect_with_token host=nil, token=nil
  raise ArgumentError, "no host specified" unless host
  raise ArgumentError, "no token specified" unless token
  Base.adapter = Adapter.new(token: token, uri: host)
end

.default_page_sizeObject



57
58
59
# File 'lib/magentwo.rb', line 57

def self.default_page_size
  @@default_page_size ||= 20
end

.default_page_size=(page_size) ⇒ Object



61
62
63
# File 'lib/magentwo.rb', line 61

def self.default_page_size= page_size
  @@default_page_size = page_size
end

.log_level=(level) ⇒ Object



44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/magentwo.rb', line 44

def self.log_level= level
  new_log_level = case level
  when :debug then Logger::DEBUG
  when :info  then Logger::INFO
  when :warn then Logger::WARN
  when :error then Logger::ERROR
  when :fatal then Logger::FATAL
  else
    raise ArgumentError, "invalid log_level"
  end
  self.logger= Logger.new STDOUT, {:level => new_log_level}
end

.loggerObject



40
41
42
# File 'lib/magentwo.rb', line 40

def self.logger
  @@logger ||= Logger.new STDOUT, {:level => Logger::INFO}
end

.logger=(logger) ⇒ Object



36
37
38
# File 'lib/magentwo.rb', line 36

def self.logger= logger
  @@logger = logger
end

.modelsObject



65
66
67
68
69
70
71
72
# File 'lib/magentwo.rb', line 65

def self.models
  Models.map do |model_file_name|
    model_file_name
    .split('_')
    .map(&:capitalize)
    .join
  end
end

.with(connection) ⇒ Object

Raises:

  • (ArgumentError)


23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/magentwo.rb', line 23

def self.with connection
  raise ArgumentError, "no connection specified" unless connection
  @@mutex.synchronize do
    old_connection = Magentwo::Base.adapter
    begin
      Magentwo::Base.adapter = connection
      yield
    ensure
      Magentwo::Base.adapter = old_connection
    end
  end
end