telasi-ruby 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +5 -0
- data/.project +11 -0
- data/.rspec +1 -0
- data/Gemfile +4 -0
- data/README.md +3 -0
- data/Rakefile +1 -0
- data/config/database.yml +7 -0
- data/lib/telasi-ruby.rb +6 -0
- data/lib/telasi-ruby/converter.rb +78 -0
- data/lib/telasi-ruby/ext/active_record.rb +17 -0
- data/lib/telasi-ruby/model.rb +92 -0
- data/lib/telasi-ruby/version.rb +7 -0
- data/spec/spec_helper.rb +35 -0
- data/spec/telasi-ruby/model_spec.rb +81 -0
- data/telasi-ruby.gemspec +30 -0
- metadata +149 -0
data/.gitignore
ADDED
data/.project
ADDED
data/.rspec
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--color
|
data/Gemfile
ADDED
data/README.md
ADDED
data/Rakefile
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
data/config/database.yml
ADDED
data/lib/telasi-ruby.rb
ADDED
@@ -0,0 +1,78 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
|
3
|
+
module Telasi
|
4
|
+
module SAP
|
5
|
+
|
6
|
+
# თელასის საიდენტიფიკაციო ნომერი.
|
7
|
+
TELASI_TIN = '202052580'
|
8
|
+
|
9
|
+
# თელასის ოფიციალური დასახელება.
|
10
|
+
TELASI_NAME = 'ს.ს. თელასი'
|
11
|
+
|
12
|
+
# თელასის გადამხდელის ID.
|
13
|
+
TELASI_ID = 1000
|
14
|
+
|
15
|
+
# აკონვერტებს მოცემული მასალის დოკუმენტს ზედნადების ფორმატში.
|
16
|
+
# მიღებული ზედნადების კლასი შესაძლოა ატვირთულ იქნას
|
17
|
+
# rs.ge ვებ-საიტზე.
|
18
|
+
def self.material_doc_to_waybill(doc)
|
19
|
+
waybill = RS::Waybill.new
|
20
|
+
|
21
|
+
not_auto = nil
|
22
|
+
#with_auto = nil
|
23
|
+
doc.items.each do |item|
|
24
|
+
not_auto = item and break unless item.auto?
|
25
|
+
#with_auto = item if item.auto?
|
26
|
+
#break if not_auto and with_auto
|
27
|
+
end
|
28
|
+
|
29
|
+
# operation type
|
30
|
+
case not_auto.ebeln[0..1]
|
31
|
+
when '45' #
|
32
|
+
waybill.type = doc.driver_info ? RS::WaybillType::TRANSPORTATION : RS::WaybillType::WITHOUT_TRANSPORTATION
|
33
|
+
when '49' # შიდა გადაზიდვა
|
34
|
+
waybill.type = RS::WaybillType::INNER
|
35
|
+
waybill.seller_id = TELASI_ID
|
36
|
+
waybill.seller_tin = TELASI_TIN
|
37
|
+
waybill.seller_name = TELASI_NAME
|
38
|
+
waybill.check_buyer_tin = true
|
39
|
+
waybill.buyer_tin = TELASI_TIN
|
40
|
+
waybill.buyer_name = TELASI_NAME
|
41
|
+
else
|
42
|
+
#raise RuntimeError.new("not supported: #{ebeln}")
|
43
|
+
end
|
44
|
+
|
45
|
+
if doc.driver_info
|
46
|
+
waybill.car_number = doc.driver_info.vehicle
|
47
|
+
waybill.transport_type_id = RS::TransportType::VEHICLE
|
48
|
+
waybill.driver_name = doc.driver_info.driver
|
49
|
+
waybill.driver_tin = doc.driver_info.drperno
|
50
|
+
waybill.check_driver_tin = true
|
51
|
+
end
|
52
|
+
|
53
|
+
# start/end address
|
54
|
+
if not_auto
|
55
|
+
address1 = not_auto.warehouse_address
|
56
|
+
address2 = not_auto.invoice_address
|
57
|
+
waybill.start_address = address1.address.to_s if address1
|
58
|
+
waybill.end_address = address2.address.to_s if address2
|
59
|
+
end
|
60
|
+
|
61
|
+
# items
|
62
|
+
items = []
|
63
|
+
doc.items.each do |doc_item|
|
64
|
+
item = RS::WaybillItem.new
|
65
|
+
item.bar_code = doc_item.matnr.match(/[1-9][0-9]*/)[0]
|
66
|
+
item.prod_name = doc_item.material_name_ka.maktx
|
67
|
+
item.unit_id = RS::WaybillUnit::OTHERS
|
68
|
+
item.unit_name = doc_item.meins
|
69
|
+
item.quantity = doc_item.menge
|
70
|
+
item.price = doc_item.dmbtr / item.quantity
|
71
|
+
items << item
|
72
|
+
end
|
73
|
+
waybill.items = items
|
74
|
+
|
75
|
+
waybill
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
|
3
|
+
module ActiveRecord
|
4
|
+
class Base
|
5
|
+
def self.date_fields(*fields)
|
6
|
+
fields.each do |field|
|
7
|
+
define_method("#{field}_date") do
|
8
|
+
date = send field.to_s
|
9
|
+
Date.strptime(date, '%Y%m%d') if date
|
10
|
+
end
|
11
|
+
define_method("#{field}_date=") do |value|
|
12
|
+
send( "#{field}=", value.strftime('%Y%m%d') ) if value
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,92 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
|
3
|
+
require 'active_record'
|
4
|
+
require 'composite_primary_keys'
|
5
|
+
|
6
|
+
module Telasi
|
7
|
+
|
8
|
+
# Module containint SAP models and operations.
|
9
|
+
module SAP
|
10
|
+
|
11
|
+
# ქართული ენის კონსტანტა.
|
12
|
+
LANG_KA = '뱁'
|
13
|
+
|
14
|
+
SCHEMA = 'SAPSR3'
|
15
|
+
|
16
|
+
# Base class for SAP database.
|
17
|
+
class Base < ActiveRecord::Base
|
18
|
+
self.abstract_class = true
|
19
|
+
end
|
20
|
+
|
21
|
+
# MKPF table.
|
22
|
+
class MaterialDocumentHeader < Base
|
23
|
+
self.table_name = "#{SCHEMA}.MKPF"
|
24
|
+
self.primary_keys = [:mandt, :mblnr, :mjahr]
|
25
|
+
has_many :items, :class_name => 'Telasi::SAP::MaterialItem', :foreign_key => [:mandt, :mblnr, :mjahr]
|
26
|
+
has_one :driver_info, :foreign_key => [:mandt, :mblnr, :mjahr]
|
27
|
+
self.date_fields :bldat, :budat
|
28
|
+
end
|
29
|
+
|
30
|
+
# MSEG table.
|
31
|
+
class MaterialItem < Base
|
32
|
+
self.table_name = "#{SCHEMA}.MSEG"
|
33
|
+
self.primary_keys = [:mandt, :mblnr, :mjahr, :zeile]
|
34
|
+
#has_one :material_name_ka, :class_name => 'Telasi::SAP::MaterialText', :foreign_key => [:mandt, :matnr], :conditions => ['SPRAS = ?', LANG_KA]
|
35
|
+
|
36
|
+
def material_name_ka
|
37
|
+
MaterialText.where(:mandt => self.mandt, :matnr => self.matnr, :spras => LANG_KA).first
|
38
|
+
end
|
39
|
+
|
40
|
+
# საწყობის მისამართი (გასვლა).
|
41
|
+
def warehouse_address
|
42
|
+
WarehouseAddress.where(:werks => self.werks, :lgort => self.lgort).first
|
43
|
+
end
|
44
|
+
|
45
|
+
# შესყიდვის მისამართი (დანიშნულება).
|
46
|
+
def invoice_address
|
47
|
+
item = InvoiceItem.where(:ebeln => self.ebeln).first
|
48
|
+
WarehouseAddress.where(:werks => item.werks, :lgort => item.lgort).first if item
|
49
|
+
end
|
50
|
+
|
51
|
+
# არის თუ არა ეს პოზიცია დაგენერირებული ავტომატურად?
|
52
|
+
def auto?
|
53
|
+
self.xauto.upcase == 'X'
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
# EKPO table.
|
58
|
+
class InvoiceItem < Base
|
59
|
+
self.table_name = "#{SCHEMA}.EKPO"
|
60
|
+
self.primary_keys = [:mandt, :ebeln, :ebelp]
|
61
|
+
end
|
62
|
+
|
63
|
+
# TWLAD table.
|
64
|
+
class WarehouseAddress < Base
|
65
|
+
self.table_name = "#{SCHEMA}.TWLAD"
|
66
|
+
self.primary_keys = [:mandt, :werks, :lgort, :lfdnr]
|
67
|
+
belongs_to :address, :foreign_key => :adrnr, :conditions => ['LANGU = ?', LANG_KA]
|
68
|
+
end
|
69
|
+
|
70
|
+
# ADRC table.
|
71
|
+
class Address < Base
|
72
|
+
self.table_name = "#{SCHEMA}.ADRC"
|
73
|
+
self.primary_keys = :addrnumber
|
74
|
+
def to_s
|
75
|
+
[self.city1, self.street].compact.join(' ').strip
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
# ZMIGOHEADERADD table.
|
80
|
+
class DriverInfo < Base
|
81
|
+
self.table_name = "#{SCHEMA}.ZMIGOHEADERADD"
|
82
|
+
self.primary_keys = [:mandt, :mblnr, :mjahr]
|
83
|
+
end
|
84
|
+
|
85
|
+
# MAKT table.
|
86
|
+
class MaterialText < Base
|
87
|
+
self.table_name = "#{SCHEMA}.MAKT"
|
88
|
+
self.primary_keys = [:mandt, :matnr, :spras]
|
89
|
+
end
|
90
|
+
|
91
|
+
end
|
92
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
|
3
|
+
# SimpleCov
|
4
|
+
|
5
|
+
require 'simplecov'
|
6
|
+
|
7
|
+
SimpleCov.start do
|
8
|
+
add_filter '/spec/'
|
9
|
+
end
|
10
|
+
|
11
|
+
# RSpec
|
12
|
+
|
13
|
+
require 'rspec'
|
14
|
+
|
15
|
+
RSpec.configure do |config|
|
16
|
+
config.include(RSpec::Matchers)
|
17
|
+
config.backtrace_clean_patterns = [
|
18
|
+
/\/lib\d*\/ruby\//,
|
19
|
+
/bin\//,
|
20
|
+
#/gems/,
|
21
|
+
/spec\/spec_helper\.rb/,
|
22
|
+
/lib\/rspec\/(core|expectations|matchers|mocks)/
|
23
|
+
]
|
24
|
+
end
|
25
|
+
|
26
|
+
ENV['NLS_LANG'] = 'AMERICAN_AMERICA.UTF8'
|
27
|
+
|
28
|
+
require 'active_record'
|
29
|
+
require 'telasi-ruby'
|
30
|
+
|
31
|
+
MANDT = '150'
|
32
|
+
|
33
|
+
ActiveRecord::Base.configurations = YAML::load(IO.read('config/database.yml'))
|
34
|
+
ActiveRecord::Base.establish_connection :sap
|
35
|
+
#Telasi::SAP::Base.establish_connection :sap
|
@@ -0,0 +1,81 @@
|
|
1
|
+
# -*- encoding : utf-8 -*-
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
require 'rs'
|
5
|
+
|
6
|
+
describe 'material document without driver' do
|
7
|
+
before(:all) do
|
8
|
+
@doc = Telasi::SAP::MaterialDocumentHeader.find(MANDT, '5000000058', 2011)
|
9
|
+
end
|
10
|
+
subject { @doc }
|
11
|
+
it { should_not be_nil }
|
12
|
+
its(:mandt) { should == MANDT }
|
13
|
+
its(:mblnr) { should == '5000000058' }
|
14
|
+
its(:items) { should_not be_empty }
|
15
|
+
its(:bldat_date) { should be_instance_of Date }
|
16
|
+
its(:budat_date) { should be_instance_of Date }
|
17
|
+
context 'convert into RS waybill' do
|
18
|
+
before(:all) do
|
19
|
+
@waybill = Telasi::SAP.material_doc_to_waybill(@doc)
|
20
|
+
end
|
21
|
+
subject { @waybill }
|
22
|
+
it { should_not be_nil }
|
23
|
+
it { should be_instance_of RS::Waybill }
|
24
|
+
its(:type) { should == RS::WaybillType::INNER }
|
25
|
+
its(:seller_id) { should == Telasi::SAP::TELASI_ID }
|
26
|
+
its(:seller_name) { should == Telasi::SAP::TELASI_NAME }
|
27
|
+
its(:seller_tin) { should == Telasi::SAP::TELASI_TIN }
|
28
|
+
its(:buyer_name) { should == Telasi::SAP::TELASI_NAME }
|
29
|
+
its(:buyer_tin) { should == Telasi::SAP::TELASI_TIN }
|
30
|
+
its(:check_buyer_tin) { should == true }
|
31
|
+
its(:start_address) { should == 'ვანის ქ.#3' }
|
32
|
+
its(:end_address) { should == 'ვანის ქ.#3' }
|
33
|
+
context "items" do
|
34
|
+
subject { @waybill.items }
|
35
|
+
it { should_not be_nil }
|
36
|
+
it { should_not be_empty }
|
37
|
+
its(:size) { should == @waybill.items.size }
|
38
|
+
context "first item" do
|
39
|
+
subject { @waybill.items.first }
|
40
|
+
its(:prod_name) { should == 'მაერთებელი განშტოების P2X-95' }
|
41
|
+
its(:quantity) { should == 50 }
|
42
|
+
its(:unit_id) { should == RS::WaybillUnit::OTHERS }
|
43
|
+
its(:bar_code) { should == '100002658' }
|
44
|
+
its(:unit_name) { should == 'ST' }
|
45
|
+
its(:price) { should == 0 }
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
describe 'material document without driver' do
|
52
|
+
before(:all) do
|
53
|
+
@doc = Telasi::SAP::MaterialDocumentHeader.find(MANDT, '4900042419', 2011)
|
54
|
+
end
|
55
|
+
subject { @doc }
|
56
|
+
it { should_not be_nil }
|
57
|
+
its(:mandt) { should == MANDT }
|
58
|
+
its(:mblnr) { should == '4900042419' }
|
59
|
+
context 'convert into RS waybill' do
|
60
|
+
before(:all) do
|
61
|
+
@waybill = Telasi::SAP.material_doc_to_waybill(@doc)
|
62
|
+
RS.print_waybill(@waybill, '/home/dimitri/Desktop/waybill.pdf')
|
63
|
+
end
|
64
|
+
subject { @waybill }
|
65
|
+
it { should_not be_nil }
|
66
|
+
its(:type) { should == RS::WaybillType::INNER }
|
67
|
+
its(:car_number) { should_not be_empty }
|
68
|
+
its(:transport_type_id) { should == RS::TransportType::VEHICLE }
|
69
|
+
its(:driver_tin) { should == '36001024775' }
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
describe Telasi::SAP::MaterialItem do
|
74
|
+
before(:all) do
|
75
|
+
@item = Telasi::SAP::MaterialItem.find(MANDT, '5000000058', 2011, 1)
|
76
|
+
end
|
77
|
+
subject { @item }
|
78
|
+
it { should_not be_nil }
|
79
|
+
its(:mandt) { should == MANDT }
|
80
|
+
its(:mblnr) { should == '5000000058' }
|
81
|
+
end
|
data/telasi-ruby.gemspec
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "telasi-ruby/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "telasi-ruby"
|
7
|
+
s.version = Telasi::Ruby::VERSION
|
8
|
+
s.authors = ["Dimitri Kurashvili"]
|
9
|
+
s.email = ["dimitri@c12.ge"]
|
10
|
+
s.homepage = ""
|
11
|
+
s.summary = %q{telasi ruby library}
|
12
|
+
s.description = %q{telasi ruby library}
|
13
|
+
|
14
|
+
s.rubyforge_project = "telasi-ruby"
|
15
|
+
|
16
|
+
s.files = `git ls-files`.split("\n")
|
17
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
18
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
19
|
+
s.require_paths = ["lib"]
|
20
|
+
|
21
|
+
s.add_development_dependency 'rspec', '~> 2'
|
22
|
+
s.add_development_dependency 'simplecov'
|
23
|
+
|
24
|
+
s.add_runtime_dependency 'composite_primary_keys', '~> 5'
|
25
|
+
s.add_runtime_dependency 'c12-commons', '~> 0.0.2'
|
26
|
+
s.add_runtime_dependency 'rs.ge', '~>0.0.7'
|
27
|
+
s.add_runtime_dependency 'activerecord', '~> 3.2.2'
|
28
|
+
s.add_runtime_dependency 'activerecord-oracle_enhanced-adapter', '~> 1.4.0'
|
29
|
+
s.add_runtime_dependency 'ruby-oci8', '~> 2.1.0'
|
30
|
+
end
|
metadata
ADDED
@@ -0,0 +1,149 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: telasi-ruby
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Dimitri Kurashvili
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2012-03-09 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: rspec
|
16
|
+
requirement: &82524230 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ~>
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '2'
|
22
|
+
type: :development
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *82524230
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: simplecov
|
27
|
+
requirement: &82524030 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
type: :development
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *82524030
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: composite_primary_keys
|
38
|
+
requirement: &82523760 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ~>
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '5'
|
44
|
+
type: :runtime
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *82523760
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: c12-commons
|
49
|
+
requirement: &82523510 !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ~>
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 0.0.2
|
55
|
+
type: :runtime
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: *82523510
|
58
|
+
- !ruby/object:Gem::Dependency
|
59
|
+
name: rs.ge
|
60
|
+
requirement: &82523280 !ruby/object:Gem::Requirement
|
61
|
+
none: false
|
62
|
+
requirements:
|
63
|
+
- - ~>
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: 0.0.7
|
66
|
+
type: :runtime
|
67
|
+
prerelease: false
|
68
|
+
version_requirements: *82523280
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: activerecord
|
71
|
+
requirement: &82523050 !ruby/object:Gem::Requirement
|
72
|
+
none: false
|
73
|
+
requirements:
|
74
|
+
- - ~>
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: 3.2.2
|
77
|
+
type: :runtime
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: *82523050
|
80
|
+
- !ruby/object:Gem::Dependency
|
81
|
+
name: activerecord-oracle_enhanced-adapter
|
82
|
+
requirement: &82522820 !ruby/object:Gem::Requirement
|
83
|
+
none: false
|
84
|
+
requirements:
|
85
|
+
- - ~>
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: 1.4.0
|
88
|
+
type: :runtime
|
89
|
+
prerelease: false
|
90
|
+
version_requirements: *82522820
|
91
|
+
- !ruby/object:Gem::Dependency
|
92
|
+
name: ruby-oci8
|
93
|
+
requirement: &82522590 !ruby/object:Gem::Requirement
|
94
|
+
none: false
|
95
|
+
requirements:
|
96
|
+
- - ~>
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: 2.1.0
|
99
|
+
type: :runtime
|
100
|
+
prerelease: false
|
101
|
+
version_requirements: *82522590
|
102
|
+
description: telasi ruby library
|
103
|
+
email:
|
104
|
+
- dimitri@c12.ge
|
105
|
+
executables: []
|
106
|
+
extensions: []
|
107
|
+
extra_rdoc_files: []
|
108
|
+
files:
|
109
|
+
- .gitignore
|
110
|
+
- .project
|
111
|
+
- .rspec
|
112
|
+
- Gemfile
|
113
|
+
- README.md
|
114
|
+
- Rakefile
|
115
|
+
- config/database.yml
|
116
|
+
- lib/telasi-ruby.rb
|
117
|
+
- lib/telasi-ruby/converter.rb
|
118
|
+
- lib/telasi-ruby/ext/active_record.rb
|
119
|
+
- lib/telasi-ruby/model.rb
|
120
|
+
- lib/telasi-ruby/version.rb
|
121
|
+
- spec/spec_helper.rb
|
122
|
+
- spec/telasi-ruby/model_spec.rb
|
123
|
+
- telasi-ruby.gemspec
|
124
|
+
homepage: ''
|
125
|
+
licenses: []
|
126
|
+
post_install_message:
|
127
|
+
rdoc_options: []
|
128
|
+
require_paths:
|
129
|
+
- lib
|
130
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
131
|
+
none: false
|
132
|
+
requirements:
|
133
|
+
- - ! '>='
|
134
|
+
- !ruby/object:Gem::Version
|
135
|
+
version: '0'
|
136
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
137
|
+
none: false
|
138
|
+
requirements:
|
139
|
+
- - ! '>='
|
140
|
+
- !ruby/object:Gem::Version
|
141
|
+
version: '0'
|
142
|
+
requirements: []
|
143
|
+
rubyforge_project: telasi-ruby
|
144
|
+
rubygems_version: 1.8.13
|
145
|
+
signing_key:
|
146
|
+
specification_version: 3
|
147
|
+
summary: telasi ruby library
|
148
|
+
test_files: []
|
149
|
+
has_rdoc:
|