Module: AssOle::Snippets::Shared

Defined in:
lib/ass_ole/snippets/shared.rb,
lib/ass_ole/snippets/shared/array.rb,
lib/ass_ole/snippets/shared/mapped.rb,
lib/ass_ole/snippets/shared/version.rb,
lib/ass_ole/snippets/shared/binary_data.rb,
lib/ass_ole/snippets/shared/value_table.rb,
lib/ass_ole/snippets/shared/in_transaction_do.rb

Overview

Shared Ole snippets.

Object included snippets must respond_to? ole_connector and returns 1C OLE connector or includes AssOle runtime using: like_ole_runtime method defined in ass_ole gem.

Examples:

require 'ass_ole'
require 'ass_ole/snippets/shared'
require 'ass_maintainer/info_base'

# External connection runtime
module ExternalRuntime
  is_ole_runtime :external
end

class Worker
  like_ole_runtime ExternalRuntime
  include AssOle::Snippets::Shared::Query

  def initialize(connection_string)
    ole_runtime_get.run AssMaintainer::InfoBase.new('ib_name', connection_string)
  end

  def select(value)
    query('select &arg as arg', arg: value).Execute.Unload.Get(0).arg
  end
end

Worker.new('File="path"').select('Hello') #=> "Hello"

Defined Under Namespace

Modules: Array, BinaryData, InTransactionDo, Map, Query, Structure, Transaction, ValueTable, XMLSerializer

Constant Summary collapse

VERSION =
'0.4.0'

Class Method Summary collapse

Class Method Details

.mapped_mixin(module_) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/ass_ole/snippets/shared/mapped.rb', line 6

def self.mapped_mixin(module_)
  module_.instance_eval do
    define_method :_hash_to_object do |hash_, object_|
      hash_.each_with_object(object_) do |k_v, obj|
        key = (k_v[0].is_a?(Symbol) ? k_v[0].to_s : k_v[0])
        value = k_v[1]
        if value.nil?
          obj.Insert(key)
        else
          obj.Insert(key, value)
        end
      end
    end
    private :_hash_to_object
  end
end