class MoySklad::Client::Base
Public Class Methods
collection_name()
click to toggle source
# File lib/moy_sklad/client/base.rb, line 37 def collection_name @collection_name ||= "#{element_name.classify}/list" end
element_path(id, prefix_options = {}, query_options = nil)
click to toggle source
Custom path builder
# File lib/moy_sklad/client/base.rb, line 25 def element_path(id, prefix_options = {}, query_options = nil) check_prefix_options(prefix_options) prefix_options, query_options = split_options(prefix_options) if query_options.nil? "#{prefix(prefix_options)}#{element_name.classify}/" \ "#{URI.parser.escape id.to_s}#{query_string(query_options)}" end
find(*args)
click to toggle source
Calls superclass method
# File lib/moy_sklad/client/base.rb, line 18 def find(*args) # Little trick for correct baseclass name self.format.element_name = element_name.classify super(*args) end
new_element_path(prefix_options = {})
click to toggle source
# File lib/moy_sklad/client/base.rb, line 33 def new_element_path(prefix_options = {}) "#{prefix(prefix_options)}#{element_name.classify}" end
Public Instance Methods
applicable?()
click to toggle source
# File lib/moy_sklad/client/base.rb, line 56 def applicable? applicable.to_s == 'true' end
create()
click to toggle source
Override create method, this required because moysklad uses PUT instead of POST
# File lib/moy_sklad/client/base.rb, line 43 def create run_callbacks :create do _create end end
destroy()
click to toggle source
# File lib/moy_sklad/client/base.rb, line 47 def destroy run_callbacks :destroy do _destroy end end
save()
click to toggle source
Calls superclass method
# File lib/moy_sklad/client/base.rb, line 51 def save super self.error.is_a?(MoySklad::Client::Attribute::MissingAttr) end
Private Instance Methods
_create()
click to toggle source
# File lib/moy_sklad/client/base.rb, line 62 def _create connection.put(new_element_path, encode, self.class.headers).tap do |response| self.id = id_from_response(response) load_attributes_from_response(response) end end
_destroy()
click to toggle source
# File lib/moy_sklad/client/base.rb, line 69 def _destroy connection.delete(self.class.element_path(uuid), self.class.headers) end
compile_template()
click to toggle source
# File lib/moy_sklad/client/base.rb, line 80 def compile_template file_path = File.join("#{@@template_path}", "#{self.class.element_name}.builder") File.open(file_path) do |f| template = f.read self.class.module_eval(<<-CODE) def create_xml builder = ::Nokogiri::XML::Builder.new(encoding: 'utf-8') do |xml| #{template} end.to_xml() end CODE end end
encode()
click to toggle source
Custom data encoder Template compiled only ONCE !!!
# File lib/moy_sklad/client/base.rb, line 75 def encode compile_template unless respond_to?(:create_xml) create_xml end