ydim 1.0.2 → 1.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/History.txt +4 -0
- data/bin/ydimd +4 -0
- data/lib/ydim/version.rb +1 -1
- data/lib/ydim/ydim-edit +61 -0
- data/lib/ydim/ydim-inject +34 -0
- data/lib/ydim/ydimd +61 -0
- metadata +4 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 90a5c5b25b62f89e7ca1befcf28f5c1725ebbfc3
|
4
|
+
data.tar.gz: 7ab7b0eb7d81c20f1f94cb39cf5ed0914a5114de
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 19aaa2dd84783ac4be344cf3a09fa1bef6c2ebe2aa706cf13fff41f1e5b9b45bcb04219520c9e51e49efdc2b6c196f007966f4558ce4cca8ff82f9d7a2ca52f0
|
7
|
+
data.tar.gz: 10dfc234b60cb74b21c2b2c3a69bddb0e3430ea31aebca051c8349411f40a234eec553d812b1b679887db95706c1f7f6309f5a6185d1df066aefa4d4d868be5f
|
data/History.txt
CHANGED
data/bin/ydimd
CHANGED
data/lib/ydim/version.rb
CHANGED
data/lib/ydim/ydim-edit
ADDED
@@ -0,0 +1,61 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# ypdmd -- ydim -- 09.11.2005 -- hwyss@ywesee.com
|
3
|
+
|
4
|
+
require 'yaml'
|
5
|
+
require 'syck'
|
6
|
+
require 'pg'
|
7
|
+
require 'dbi'
|
8
|
+
puts "YAML is now #{YAML} in #{__FILE__} at #{__LINE__}"
|
9
|
+
|
10
|
+
require 'ydim/server'
|
11
|
+
require 'ydim/odba'
|
12
|
+
require 'rclconf'
|
13
|
+
require 'odba/connection_pool'
|
14
|
+
require 'irb'
|
15
|
+
|
16
|
+
module YDIM
|
17
|
+
class Server
|
18
|
+
attr_reader :serv
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
ydim_default_dir = File.join(ENV['HOME'], '.ydim')
|
23
|
+
default_config_files = [
|
24
|
+
File.join(ydim_default_dir, 'ydimd.yml'),
|
25
|
+
'/etc/ydim/ydimd.yml',
|
26
|
+
]
|
27
|
+
defaults = {
|
28
|
+
'autoinvoice_hour' => nil,
|
29
|
+
'config' => default_config_files,
|
30
|
+
'conf_dir' => File.join(ydim_default_dir, 'conf'),
|
31
|
+
'currencies' => ['CHF', 'EUR', 'USD'],
|
32
|
+
'currency_update_hour' => nil,
|
33
|
+
'data_dir' => File.join(ydim_default_dir, 'data'),
|
34
|
+
'server_url' => 'druby://localhost:12375',
|
35
|
+
'db_driver_url' => 'DBI:pg:ydim',
|
36
|
+
'db_user' => 'ydim',
|
37
|
+
'db_auth' => '',
|
38
|
+
'invoice_number_start' => 10000,
|
39
|
+
'log_level' => 'INFO',
|
40
|
+
'log_file' => STDOUT,
|
41
|
+
'mail_sender' => '',
|
42
|
+
'mail_recipients' => [],
|
43
|
+
'root_name' => 'Root',
|
44
|
+
'root_email' => '',
|
45
|
+
'root_key' => 'root_dsa',
|
46
|
+
'smtp_from' => '',
|
47
|
+
'smtp_server' => 'localhost',
|
48
|
+
'vat_rate' => 8.0,
|
49
|
+
}
|
50
|
+
config = RCLConf::RCLConf.new(ARGV, defaults)
|
51
|
+
config.load(config.config)
|
52
|
+
|
53
|
+
ODBA.storage.dbi = ODBA::ConnectionPool.new(config.db_driver_url,
|
54
|
+
config.db_user, config.db_auth)
|
55
|
+
|
56
|
+
logger = Logger.new($stdout)
|
57
|
+
logger.level = Logger.const_get(config.log_level)
|
58
|
+
$server = YDIM::Server.new(config, logger)
|
59
|
+
$needle = $server.serv
|
60
|
+
|
61
|
+
IRB.start
|
@@ -0,0 +1,34 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
input = if(File.exist?(ARGV.first.to_s))
|
4
|
+
File.read(ARGV.unshift)
|
5
|
+
else
|
6
|
+
STDIN.read
|
7
|
+
end
|
8
|
+
|
9
|
+
require 'yaml'
|
10
|
+
require 'syck'
|
11
|
+
puts "YAML is now #{YAML} in #{__FILE__} at #{__LINE__}"
|
12
|
+
data = YAML.load(input) || exit(-1)
|
13
|
+
|
14
|
+
require 'openssl'
|
15
|
+
require 'rrba/error'
|
16
|
+
require 'ydim/config'
|
17
|
+
require 'ydim/client'
|
18
|
+
|
19
|
+
config = YDIM::Client::CONFIG
|
20
|
+
server = DRb::DRbObject.new(nil, config.server_url)
|
21
|
+
client = YDIM::Client.new(config)
|
22
|
+
key = OpenSSL::PKey::DSA.new(File.read(config.private_key))
|
23
|
+
|
24
|
+
DRb.start_service
|
25
|
+
|
26
|
+
client.login(server, key)
|
27
|
+
invoice = client.create_invoice(data['debitor'])
|
28
|
+
invoice.currency = data['currency'] || config.currency
|
29
|
+
invoice.description = data['description'] || config.invoice_description
|
30
|
+
invoice.payment_period = data['payment_period'] || config.payment_period
|
31
|
+
invoice.date = Date.today
|
32
|
+
client.add_items(invoice.unique_id, data['items'])
|
33
|
+
client.send_invoice(invoice.unique_id)
|
34
|
+
client.logout
|
data/lib/ydim/ydimd
ADDED
@@ -0,0 +1,61 @@
|
|
1
|
+
#!/usr/bin/env ruby231
|
2
|
+
# ypdmd -- ydim -- 12.01.2005 -- hwyss@ywesee.com
|
3
|
+
|
4
|
+
require 'yaml'
|
5
|
+
require 'syck'
|
6
|
+
|
7
|
+
require 'ydim/server'
|
8
|
+
require 'ydim/odba'
|
9
|
+
require 'logger'
|
10
|
+
require 'rclconf'
|
11
|
+
require 'drb'
|
12
|
+
require 'fileutils'
|
13
|
+
require 'odba/connection_pool'
|
14
|
+
require 'odba/drbwrapper'
|
15
|
+
require 'pg'
|
16
|
+
require 'dbi'
|
17
|
+
require 'dbi/version'
|
18
|
+
require 'dbd/Pg'
|
19
|
+
|
20
|
+
$0 = __FILE__
|
21
|
+
|
22
|
+
config = YDIM::Server.config
|
23
|
+
|
24
|
+
ODBA.storage.dbi = ODBA::ConnectionPool.new(config.db_driver_url,
|
25
|
+
config.db_user, config.db_auth, :client_encoding => 'LATIN1')
|
26
|
+
ODBA.cache.setup
|
27
|
+
|
28
|
+
DRb.install_id_conv ODBA::DRbIdConv.new
|
29
|
+
|
30
|
+
log_file = config.log_file
|
31
|
+
if(log_file.is_a?(String))
|
32
|
+
FileUtils.mkdir_p(File.dirname(log_file))
|
33
|
+
log_file = File.open(log_file, 'a')
|
34
|
+
at_exit { log_file.close }
|
35
|
+
end
|
36
|
+
logger = Logger.new(log_file)
|
37
|
+
logger.level = Logger.const_get(config.log_level)
|
38
|
+
|
39
|
+
server = YDIM::Server.new(config, logger)
|
40
|
+
server.extend(DRbUndumped)
|
41
|
+
|
42
|
+
if(config.detach)
|
43
|
+
pidfile = '/var/run/ydimd.pid'
|
44
|
+
File.open(pidfile, 'w') { |fh| fh.puts $$ }
|
45
|
+
at_exit { File.unlink(pidfile) }
|
46
|
+
Process.fork and exit!(0)
|
47
|
+
end
|
48
|
+
|
49
|
+
begin
|
50
|
+
url = config.server_url
|
51
|
+
url.untaint
|
52
|
+
DRb.start_service(url, server)
|
53
|
+
$SAFE = 1
|
54
|
+
logger.info('start') {
|
55
|
+
sprintf("starting ydim-server on %s", config.server_url) }
|
56
|
+
DRb.thread.join
|
57
|
+
rescue Exception => error
|
58
|
+
logger.error('fatal') { error }
|
59
|
+
raise
|
60
|
+
end
|
61
|
+
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ydim
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Masaomi Hatakeyama, Zeno R.R. Davatz, Niklaus Giger
|
@@ -304,6 +304,9 @@ files:
|
|
304
304
|
- lib/ydim/smtp_tls.rb
|
305
305
|
- lib/ydim/util.rb
|
306
306
|
- lib/ydim/version.rb
|
307
|
+
- lib/ydim/ydim-edit
|
308
|
+
- lib/ydim/ydim-inject
|
309
|
+
- lib/ydim/ydimd
|
307
310
|
- readme.md
|
308
311
|
- set_initial_ydim_db.sql
|
309
312
|
- test/data/config.yml
|