dopis_online_client 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +6 -0
- data/Gemfile +4 -0
- data/README.rdoc +2 -2
- data/Rakefile +31 -43
- data/dopis_online_client.gemspec +36 -0
- data/lib/dopis_online_client/request.rb +8 -20
- data/lib/dopis_online_client/response.rb +14 -0
- data/lib/dopis_online_client/status_request.rb +27 -0
- data/lib/dopis_online_client/version.rb +3 -0
- data/lib/dopis_online_client.rb +23 -8
- data/test/fixtures/letter.pdf +0 -0
- data/test/fixtures/status.xml +35 -0
- data/test/test_helper.rb +4 -5
- data/test/unit/dopis_online_client_test.rb +26 -0
- data/test/unit/request_test.rb +23 -0
- data/test/unit/response_test.rb +41 -0
- data/test/unit/status_request_test.rb +22 -0
- metadata +149 -15
- data/VERSION +0 -1
- data/test/dopis_online_response_test.rb +0 -38
data/.gitignore
ADDED
data/Gemfile
ADDED
data/README.rdoc
CHANGED
@@ -8,8 +8,8 @@ Vice informaci na https://online.postservis.cz/Download/DopisOnline/DopisOnline.
|
|
8
8
|
|
9
9
|
require 'lib/dopis_online_client'
|
10
10
|
|
11
|
-
DopisOnlineClient
|
12
|
-
DopisOnlineClient
|
11
|
+
DopisOnlineClient.base_uri 'https://online.postservis.cz/cmdedopis'
|
12
|
+
DopisOnlineClient.auth('jmeno','heslo')
|
13
13
|
|
14
14
|
DopisOnlineClient::Request.send(
|
15
15
|
:pdf_file_path=>"letter.pdf"
|
data/Rakefile
CHANGED
@@ -1,65 +1,53 @@
|
|
1
|
-
require '
|
2
|
-
|
1
|
+
require 'bundler'
|
2
|
+
Bundler::GemHelper.install_tasks
|
3
3
|
|
4
|
-
|
5
|
-
require 'jeweler'
|
6
|
-
Jeweler::Tasks.new do |gem|
|
7
|
-
gem.name = "dopis_online_client"
|
8
|
-
gem.summary = %Q{Dopis Online Client Library}
|
9
|
-
gem.email = "jiri.kubicek@kraxnet.cz"
|
10
|
-
gem.homepage = "http://github.com/kraxnet/dopis_online_client"
|
11
|
-
gem.authors = ["Jiri Kubicek"]
|
12
|
-
gem.description = "Klientská knihovna pro práci se službou Dopis Online České pošty"
|
13
|
-
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
14
|
-
end
|
15
|
-
|
16
|
-
rescue LoadError
|
17
|
-
puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
|
18
|
-
end
|
4
|
+
task :default => :test
|
19
5
|
|
20
6
|
require 'rake/testtask'
|
21
7
|
Rake::TestTask.new(:test) do |test|
|
22
8
|
test.libs << 'lib' << 'test'
|
23
|
-
test.
|
9
|
+
test.test_files = FileList['test/unit/*_test.rb', 'test/integration/*_test.rb']
|
24
10
|
test.verbose = true
|
11
|
+
# test.warning = true
|
25
12
|
end
|
26
13
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
test.
|
31
|
-
test.pattern = 'test/**/*_test.rb'
|
14
|
+
namespace :test do
|
15
|
+
Rake::TestTask.new(:unit) do |test|
|
16
|
+
test.libs << 'lib' << 'test'
|
17
|
+
test.pattern = 'test/unit/*_test.rb'
|
32
18
|
test.verbose = true
|
33
19
|
end
|
34
|
-
|
35
|
-
|
36
|
-
|
20
|
+
Rake::TestTask.new(:integration) do |test|
|
21
|
+
test.libs << 'lib' << 'test'
|
22
|
+
test.pattern = 'test/integration/*_test.rb'
|
23
|
+
test.verbose = true
|
37
24
|
end
|
38
25
|
end
|
39
26
|
|
27
|
+
# Generate documentation
|
40
28
|
begin
|
41
|
-
require '
|
42
|
-
Cucumber::Rake::Task.new(:features)
|
29
|
+
require 'sdoc'
|
43
30
|
rescue LoadError
|
44
|
-
task :features do
|
45
|
-
abort "Cucumber is not available. In order to run features, you must: sudo gem install cucumber"
|
46
|
-
end
|
47
31
|
end
|
48
|
-
|
49
|
-
task :default => :test
|
50
|
-
|
51
32
|
require 'rake/rdoctask'
|
52
33
|
Rake::RDocTask.new do |rdoc|
|
53
|
-
if File.exist?('VERSION.yml')
|
54
|
-
config = YAML.load(File.read('VERSION.yml'))
|
55
|
-
version = "#{config[:major]}.#{config[:minor]}.#{config[:patch]}"
|
56
|
-
else
|
57
|
-
version = ""
|
58
|
-
end
|
59
|
-
|
60
34
|
rdoc.rdoc_dir = 'rdoc'
|
61
|
-
rdoc.title = "
|
62
|
-
rdoc.rdoc_files.include('README
|
35
|
+
rdoc.title = "Tire"
|
36
|
+
rdoc.rdoc_files.include('README.rdoc')
|
63
37
|
rdoc.rdoc_files.include('lib/**/*.rb')
|
64
38
|
end
|
65
39
|
|
40
|
+
# Generate coverage reports
|
41
|
+
begin
|
42
|
+
require 'rcov/rcovtask'
|
43
|
+
Rcov::RcovTask.new do |test|
|
44
|
+
test.libs << 'test'
|
45
|
+
test.rcov_opts = ['--exclude', 'gems/*']
|
46
|
+
test.pattern = 'test/**/*_test.rb'
|
47
|
+
test.verbose = true
|
48
|
+
end
|
49
|
+
rescue LoadError
|
50
|
+
task :rcov do
|
51
|
+
abort "RCov is not available. In order to run rcov, you must: sudo gem install rcov"
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "dopis_online_client/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "dopis_online_client"
|
7
|
+
s.version = DopisOnlineClient::VERSION
|
8
|
+
s.platform = Gem::Platform::RUBY
|
9
|
+
s.authors = ["Jiri Kubicek"]
|
10
|
+
s.email = ["jiri.kubicek@kraxnet.cz"]
|
11
|
+
s.homepage = "http://github.com/kraxnet/dopis_online_client"
|
12
|
+
s.summary = %q{Dopis Online Client Library}
|
13
|
+
s.description = %q{Klientská knihovna pro práci se službou Dopis Online České pošty}
|
14
|
+
|
15
|
+
s.rubyforge_project = "dopis_online_client"
|
16
|
+
|
17
|
+
s.files = `git ls-files`.split("\n")
|
18
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
19
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
20
|
+
s.require_paths = ["lib"]
|
21
|
+
|
22
|
+
s.extra_rdoc_files = [ "README.rdoc", "LICENSE" ]
|
23
|
+
s.rdoc_options = [ "--charset=UTF-8" ]
|
24
|
+
|
25
|
+
s.required_rubygems_version = ">= 1.3.6"
|
26
|
+
|
27
|
+
s.add_dependency "rake", "~> 0.8.0"
|
28
|
+
s.add_dependency "bundler", "~> 1.0.0"
|
29
|
+
s.add_dependency "httmultiparty"
|
30
|
+
|
31
|
+
s.add_development_dependency "turn"
|
32
|
+
s.add_development_dependency "shoulda"
|
33
|
+
s.add_development_dependency "sdoc"
|
34
|
+
s.add_development_dependency "rcov"
|
35
|
+
s.add_development_dependency "fakeweb"
|
36
|
+
end
|
@@ -1,33 +1,30 @@
|
|
1
|
-
require 'httpclient'
|
2
|
-
|
3
1
|
module DopisOnlineClient
|
4
2
|
class Request
|
5
|
-
|
3
|
+
|
4
|
+
include HTTMultiParty
|
5
|
+
|
6
6
|
attr_reader :username, :password, :color, :postage_type, :payment_type, :response_format, :pdf_file
|
7
7
|
|
8
8
|
def initialize(params)
|
9
|
-
@username = params[:username]
|
10
|
-
@password = params[:password]
|
11
9
|
@color = params[:color] || 0 # cernobile
|
12
10
|
@postage_type = params[:postage_type] || 66 # obycejne
|
13
11
|
@payment_type = params[:payment_type] || 0 # fakturou
|
14
12
|
@format = params[:format] || :xml
|
15
13
|
@pdf_file_path = params[:pdf_file_path]
|
14
|
+
self.class.base_uri DopisOnlineClient.base_uri
|
16
15
|
end
|
17
16
|
|
18
17
|
def deliver
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
:user => @@username,
|
23
|
-
:passwd => @@password,
|
18
|
+
response = self.class.post '/dopisonline.php', :body => {
|
19
|
+
:user => DopisOnlineClient.username,
|
20
|
+
:passwd => DopisOnlineClient.password,
|
24
21
|
:barvatisku => @color,
|
25
22
|
:typvyplatneho => @postage_type,
|
26
23
|
:typuhrady => @payment_type,
|
27
24
|
:typvystupu => @format.to_s,
|
28
25
|
:soubor => File.new(@pdf_file_path)
|
29
26
|
}
|
30
|
-
parsed_response = parse_response(response.body
|
27
|
+
parsed_response = parse_response(response.body)
|
31
28
|
DopisOnlineClient::Response.new(parsed_response, response.body, response.code)
|
32
29
|
end
|
33
30
|
|
@@ -44,15 +41,6 @@ module DopisOnlineClient
|
|
44
41
|
def self.send(params)
|
45
42
|
@request = new(params).deliver
|
46
43
|
end
|
47
|
-
|
48
|
-
def self.base_uri(uri)
|
49
|
-
@@base_uri=uri
|
50
|
-
end
|
51
|
-
|
52
|
-
def self.auth(username, password)
|
53
|
-
@@username=username
|
54
|
-
@@password=password
|
55
|
-
end
|
56
44
|
|
57
45
|
end
|
58
46
|
end
|
@@ -13,38 +13,50 @@ module DopisOnlineClient
|
|
13
13
|
@delegate.send(name, *args, &block)
|
14
14
|
end
|
15
15
|
|
16
|
+
# Byl dopis úspěšně přijat k odeslání?
|
16
17
|
def success?
|
17
18
|
code==200 && !has_key?("chyba") && has_key?("zakazka")
|
18
19
|
end
|
19
20
|
|
21
|
+
# Jméno odeslaného souboru
|
20
22
|
def filename
|
21
23
|
success_result["soubor"]
|
22
24
|
end
|
23
25
|
|
26
|
+
# Počet stránek
|
24
27
|
def pages_count
|
25
28
|
success_result["pocetstranek"].to_i
|
26
29
|
end
|
27
30
|
|
31
|
+
# Kód objednávky
|
28
32
|
def order_code
|
29
33
|
success_result["kodobjednavky"].to_i
|
30
34
|
end
|
31
35
|
|
36
|
+
# Podací číslo
|
32
37
|
def tracking_number
|
33
38
|
success_result["podacicislo"]
|
34
39
|
end
|
35
40
|
|
41
|
+
# Datum podání
|
36
42
|
def posting_date
|
37
43
|
success_result["datumpodani"]
|
38
44
|
end
|
39
45
|
|
46
|
+
# PSČ podací pošty
|
40
47
|
def posting_zip
|
41
48
|
success_result["podaciposta"]
|
42
49
|
end
|
43
50
|
|
51
|
+
# Cena
|
44
52
|
def price
|
45
53
|
success_result["cena"]
|
46
54
|
end
|
47
55
|
|
56
|
+
# Barva tisku
|
57
|
+
#
|
58
|
+
# * Barevný <tt>true</tt>
|
59
|
+
# * černobílý <tt>false</tt>
|
48
60
|
def color
|
49
61
|
success_result["barvatisku"]=="1"
|
50
62
|
end
|
@@ -53,10 +65,12 @@ module DopisOnlineClient
|
|
53
65
|
success_result["typvyplatneho"]
|
54
66
|
end
|
55
67
|
|
68
|
+
# Popis chyby
|
56
69
|
def failure_message
|
57
70
|
failure_result["popis"]
|
58
71
|
end
|
59
72
|
|
73
|
+
# Kód chyby
|
60
74
|
def failure_code
|
61
75
|
failure_result["kod"].to_i
|
62
76
|
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module DopisOnlineClient
|
2
|
+
class StatusRequest
|
3
|
+
|
4
|
+
include HTTMultiParty
|
5
|
+
|
6
|
+
attr_reader :username, :password, :color, :postage_type, :payment_type, :response_format, :pdf_file
|
7
|
+
|
8
|
+
def initialize(params)
|
9
|
+
@format = params[:format] || :xml
|
10
|
+
@tracking_number = params[:tracking_number]
|
11
|
+
@date = params[:date]
|
12
|
+
self.class.base_uri DopisOnlineClient.base_uri
|
13
|
+
end
|
14
|
+
|
15
|
+
def deliver
|
16
|
+
response = self.class.post '/eprehledZak.php', :query => {
|
17
|
+
:user => DopisOnlineClient.username,
|
18
|
+
:passwd => DopisOnlineClient.password,
|
19
|
+
:typvystupu => @format,
|
20
|
+
:zasilka => @tracking_number,
|
21
|
+
:datum => @date
|
22
|
+
}
|
23
|
+
response.body
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
end
|
data/lib/dopis_online_client.rb
CHANGED
@@ -1,12 +1,27 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
end
|
1
|
+
require 'httmultiparty'
|
2
|
+
|
3
|
+
require 'dopis_online_client/request'
|
4
|
+
require 'dopis_online_client/response'
|
5
|
+
require 'dopis_online_client/status_request'
|
7
6
|
|
8
7
|
module DopisOnlineClient
|
8
|
+
|
9
|
+
def self.base_uri(path=nil)
|
10
|
+
path ? @base_uri = path : @base_uri
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.auth(username, password)
|
14
|
+
@username=username
|
15
|
+
@password=password
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.username
|
19
|
+
@username
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.password
|
23
|
+
@password
|
24
|
+
end
|
25
|
+
|
9
26
|
end
|
10
27
|
|
11
|
-
require File.dirname(__FILE__) + '/dopis_online_client/request.rb'
|
12
|
-
require File.dirname(__FILE__) + '/dopis_online_client/response.rb'
|
File without changes
|
@@ -0,0 +1,35 @@
|
|
1
|
+
<dopisonline>
|
2
|
+
<zakazka id="20110521067226">
|
3
|
+
<podacicislo type="string">neni</podacicislo>
|
4
|
+
<pocetstranek type="integer">1</pocetstranek>
|
5
|
+
<datumpodani type="datetime">2011-05-21 15:13:57</datumpodani>
|
6
|
+
<cena mena="CZK" type="decimal">12.60</cena>
|
7
|
+
<barvatisku type="integer">0</barvatisku>
|
8
|
+
<platba type="integer">0</platba>
|
9
|
+
<typvyplatneho type="integer">66</typvyplatneho>
|
10
|
+
<zpracovani type="integer">50</zpracovani>
|
11
|
+
<stav type="integer">0</stav>
|
12
|
+
</zakazka>
|
13
|
+
<zakazka id="20110521067227">
|
14
|
+
<podacicislo type="string">neni</podacicislo>
|
15
|
+
<pocetstranek type="integer">1</pocetstranek>
|
16
|
+
<datumpodani type="datetime">2011-05-21 15:14:25</datumpodani>
|
17
|
+
<cena mena="CZK" type="decimal">12.60</cena>
|
18
|
+
<barvatisku type="integer">0</barvatisku>
|
19
|
+
<platba type="integer">0</platba>
|
20
|
+
<typvyplatneho type="integer">66</typvyplatneho>
|
21
|
+
<zpracovani type="integer">50</zpracovani>
|
22
|
+
<stav type="integer">0</stav>
|
23
|
+
</zakazka>
|
24
|
+
<zakazka id="20110521067228">
|
25
|
+
<podacicislo type="string">neni</podacicislo>
|
26
|
+
<pocetstranek type="integer">1</pocetstranek>
|
27
|
+
<datumpodani type="datetime">2011-05-21 15:15:41</datumpodani>
|
28
|
+
<cena mena="CZK" type="decimal">12.60</cena>
|
29
|
+
<barvatisku type="integer">0</barvatisku>
|
30
|
+
<platba type="integer">0</platba>
|
31
|
+
<typvyplatneho type="integer">66</typvyplatneho>
|
32
|
+
<zpracovani type="integer">50</zpracovani>
|
33
|
+
<stav type="integer">0</stav>
|
34
|
+
</zakazka>
|
35
|
+
</dopisonline>
|
data/test/test_helper.rb
CHANGED
@@ -1,11 +1,10 @@
|
|
1
1
|
require 'rubygems'
|
2
2
|
require 'test/unit'
|
3
3
|
require 'shoulda'
|
4
|
-
require '
|
4
|
+
require 'turn' unless ENV["TM_FILEPATH"]
|
5
5
|
|
6
|
-
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
7
|
-
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
8
6
|
require 'dopis_online_client'
|
9
7
|
|
10
|
-
|
11
|
-
|
8
|
+
require "fakeweb"
|
9
|
+
|
10
|
+
FakeWeb.allow_net_connect = false
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
module DopisOnlineClient
|
4
|
+
class DopisOnlineClientTest < Test::Unit::TestCase
|
5
|
+
|
6
|
+
context "Client" do
|
7
|
+
setup do
|
8
|
+
DopisOnlineClient.base_uri 'http://mujdopisonline.cz/odeslat'
|
9
|
+
DopisOnlineClient.auth("mojejmeno", "mojeheslo")
|
10
|
+
end
|
11
|
+
|
12
|
+
should "have base_url set" do
|
13
|
+
assert_equal "http://mujdopisonline.cz/odeslat", DopisOnlineClient.base_uri
|
14
|
+
end
|
15
|
+
|
16
|
+
should "have username set" do
|
17
|
+
assert_equal "mojejmeno", DopisOnlineClient.username
|
18
|
+
end
|
19
|
+
|
20
|
+
should "have password set" do
|
21
|
+
assert_equal "mojeheslo", DopisOnlineClient.password
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
module DopisOnlineClient
|
4
|
+
class RequestTest < Test::Unit::TestCase
|
5
|
+
|
6
|
+
context "Request#deliver" do
|
7
|
+
|
8
|
+
setup do
|
9
|
+
FakeWeb.register_uri(:post, "https://online3.postservis.cz/cmdedopis/dopisonline.php", :body => File.read(File.join(File.dirname(__FILE__),'../fixtures/success.xml')))
|
10
|
+
|
11
|
+
DopisOnlineClient.base_uri 'https://online3.postservis.cz/cmdedopis'
|
12
|
+
DopisOnlineClient.auth('jmeno','heslo')
|
13
|
+
@response = DopisOnlineClient::Request.new(:pdf_file_path=>File.join(File.dirname(__FILE__),'../fixtures/letter.pdf')).deliver
|
14
|
+
end
|
15
|
+
|
16
|
+
should "return DopisOnlineClient::Response" do
|
17
|
+
assert_equal true, @response.kind_of?(DopisOnlineClient::Response)
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
module DopisOnlineClient
|
4
|
+
class ResponseTest < Test::Unit::TestCase
|
5
|
+
|
6
|
+
should "parse success correctly" do
|
7
|
+
response = load_response_from_file("success.xml")
|
8
|
+
|
9
|
+
assert_equal 200, response.code
|
10
|
+
assert_equal true, response.success?
|
11
|
+
|
12
|
+
assert_equal 0, response.failure_code
|
13
|
+
assert_nil response.failure_message
|
14
|
+
|
15
|
+
assert_equal "testing.pdf", response.filename
|
16
|
+
assert_equal 1, response.pages_count
|
17
|
+
assert_equal 20090608050001, response.order_code
|
18
|
+
assert_equal "", response.tracking_number
|
19
|
+
# assert_equal Date.parse("2009-06-08"), response.success_result["datumpodani"]
|
20
|
+
assert_not_nil response.price
|
21
|
+
assert_equal false, response.color
|
22
|
+
assert_equal 67, response.shipping_method
|
23
|
+
end
|
24
|
+
|
25
|
+
should "parse failure correctly" do
|
26
|
+
response = load_response_from_file("failure.xml")
|
27
|
+
|
28
|
+
assert_equal 200, response.code
|
29
|
+
assert_equal false, response.success?
|
30
|
+
assert_equal 8, response.failure_code
|
31
|
+
assert_not_nil response.failure_message
|
32
|
+
end
|
33
|
+
|
34
|
+
def load_response_from_file(filename)
|
35
|
+
body = File.read(File.join(File.dirname(__FILE__),'../fixtures',filename))
|
36
|
+
parsed_response = Crack::XML.parse(body)
|
37
|
+
DopisOnlineClient::Response.new(parsed_response, body, 200)
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
module DopisOnlineClient
|
4
|
+
class StatusRequestTest < Test::Unit::TestCase
|
5
|
+
|
6
|
+
context "Request#deliver" do
|
7
|
+
|
8
|
+
setup do
|
9
|
+
FakeWeb.register_uri(:post, "https://online3.postservis.cz/cmdedopis/eprehledZak.php", :body => File.read(File.join(File.dirname(__FILE__),'../fixtures/status.xml')))
|
10
|
+
DopisOnlineClient.base_uri 'https://online3.postservis.cz/cmdedopis'
|
11
|
+
DopisOnlineClient.auth('jmeno','heslo')
|
12
|
+
@response = DopisOnlineClient::StatusRequest.new(:date=>"20110521").deliver
|
13
|
+
end
|
14
|
+
|
15
|
+
should "return response" do
|
16
|
+
assert_not_nil @response
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dopis_online_client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 23
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
8
|
+
- 2
|
9
9
|
- 0
|
10
|
-
version: 0.
|
10
|
+
version: 0.2.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Jiri Kubicek
|
@@ -15,31 +15,156 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date:
|
18
|
+
date: 2011-05-21 00:00:00 +02:00
|
19
19
|
default_executable:
|
20
|
-
dependencies:
|
21
|
-
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
name: rake
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 63
|
30
|
+
segments:
|
31
|
+
- 0
|
32
|
+
- 8
|
33
|
+
- 0
|
34
|
+
version: 0.8.0
|
35
|
+
type: :runtime
|
36
|
+
version_requirements: *id001
|
37
|
+
- !ruby/object:Gem::Dependency
|
38
|
+
name: bundler
|
39
|
+
prerelease: false
|
40
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ~>
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
hash: 23
|
46
|
+
segments:
|
47
|
+
- 1
|
48
|
+
- 0
|
49
|
+
- 0
|
50
|
+
version: 1.0.0
|
51
|
+
type: :runtime
|
52
|
+
version_requirements: *id002
|
53
|
+
- !ruby/object:Gem::Dependency
|
54
|
+
name: httmultiparty
|
55
|
+
prerelease: false
|
56
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
hash: 3
|
62
|
+
segments:
|
63
|
+
- 0
|
64
|
+
version: "0"
|
65
|
+
type: :runtime
|
66
|
+
version_requirements: *id003
|
67
|
+
- !ruby/object:Gem::Dependency
|
68
|
+
name: turn
|
69
|
+
prerelease: false
|
70
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
71
|
+
none: false
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
hash: 3
|
76
|
+
segments:
|
77
|
+
- 0
|
78
|
+
version: "0"
|
79
|
+
type: :development
|
80
|
+
version_requirements: *id004
|
81
|
+
- !ruby/object:Gem::Dependency
|
82
|
+
name: shoulda
|
83
|
+
prerelease: false
|
84
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
85
|
+
none: false
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
hash: 3
|
90
|
+
segments:
|
91
|
+
- 0
|
92
|
+
version: "0"
|
93
|
+
type: :development
|
94
|
+
version_requirements: *id005
|
95
|
+
- !ruby/object:Gem::Dependency
|
96
|
+
name: sdoc
|
97
|
+
prerelease: false
|
98
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
99
|
+
none: false
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
hash: 3
|
104
|
+
segments:
|
105
|
+
- 0
|
106
|
+
version: "0"
|
107
|
+
type: :development
|
108
|
+
version_requirements: *id006
|
109
|
+
- !ruby/object:Gem::Dependency
|
110
|
+
name: rcov
|
111
|
+
prerelease: false
|
112
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
113
|
+
none: false
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
hash: 3
|
118
|
+
segments:
|
119
|
+
- 0
|
120
|
+
version: "0"
|
121
|
+
type: :development
|
122
|
+
version_requirements: *id007
|
123
|
+
- !ruby/object:Gem::Dependency
|
124
|
+
name: fakeweb
|
125
|
+
prerelease: false
|
126
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
127
|
+
none: false
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
hash: 3
|
132
|
+
segments:
|
133
|
+
- 0
|
134
|
+
version: "0"
|
135
|
+
type: :development
|
136
|
+
version_requirements: *id008
|
22
137
|
description: "Klientsk\xC3\xA1 knihovna pro pr\xC3\xA1ci se slu\xC5\xBEbou Dopis Online \xC4\x8Cesk\xC3\xA9 po\xC5\xA1ty"
|
23
|
-
email:
|
138
|
+
email:
|
139
|
+
- jiri.kubicek@kraxnet.cz
|
24
140
|
executables: []
|
25
141
|
|
26
142
|
extensions: []
|
27
143
|
|
28
144
|
extra_rdoc_files:
|
29
|
-
- LICENSE
|
30
145
|
- README.rdoc
|
146
|
+
- LICENSE
|
31
147
|
files:
|
148
|
+
- .gitignore
|
149
|
+
- Gemfile
|
32
150
|
- LICENSE
|
33
151
|
- README.rdoc
|
34
152
|
- Rakefile
|
35
|
-
-
|
153
|
+
- dopis_online_client.gemspec
|
36
154
|
- lib/dopis_online_client.rb
|
37
155
|
- lib/dopis_online_client/request.rb
|
38
156
|
- lib/dopis_online_client/response.rb
|
39
|
-
-
|
157
|
+
- lib/dopis_online_client/status_request.rb
|
158
|
+
- lib/dopis_online_client/version.rb
|
40
159
|
- test/fixtures/failure.xml
|
160
|
+
- test/fixtures/letter.pdf
|
161
|
+
- test/fixtures/status.xml
|
41
162
|
- test/fixtures/success.xml
|
42
163
|
- test/test_helper.rb
|
164
|
+
- test/unit/dopis_online_client_test.rb
|
165
|
+
- test/unit/request_test.rb
|
166
|
+
- test/unit/response_test.rb
|
167
|
+
- test/unit/status_request_test.rb
|
43
168
|
has_rdoc: true
|
44
169
|
homepage: http://github.com/kraxnet/dopis_online_client
|
45
170
|
licenses: []
|
@@ -63,17 +188,26 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
63
188
|
requirements:
|
64
189
|
- - ">="
|
65
190
|
- !ruby/object:Gem::Version
|
66
|
-
hash:
|
191
|
+
hash: 23
|
67
192
|
segments:
|
68
|
-
-
|
69
|
-
|
193
|
+
- 1
|
194
|
+
- 3
|
195
|
+
- 6
|
196
|
+
version: 1.3.6
|
70
197
|
requirements: []
|
71
198
|
|
72
|
-
rubyforge_project:
|
199
|
+
rubyforge_project: dopis_online_client
|
73
200
|
rubygems_version: 1.6.2
|
74
201
|
signing_key:
|
75
202
|
specification_version: 3
|
76
203
|
summary: Dopis Online Client Library
|
77
204
|
test_files:
|
78
|
-
- test/
|
205
|
+
- test/fixtures/failure.xml
|
206
|
+
- test/fixtures/letter.pdf
|
207
|
+
- test/fixtures/status.xml
|
208
|
+
- test/fixtures/success.xml
|
79
209
|
- test/test_helper.rb
|
210
|
+
- test/unit/dopis_online_client_test.rb
|
211
|
+
- test/unit/request_test.rb
|
212
|
+
- test/unit/response_test.rb
|
213
|
+
- test/unit/status_request_test.rb
|
data/VERSION
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
0.1.0
|
@@ -1,38 +0,0 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
class DopisOnlineResponseTest < Test::Unit::TestCase
|
4
|
-
|
5
|
-
should "parse success correctly" do
|
6
|
-
response = load_response_from_file("success.xml")
|
7
|
-
|
8
|
-
response.code.should == 200
|
9
|
-
response.success?.should == true
|
10
|
-
|
11
|
-
response.failure_code.should == 0
|
12
|
-
response.failure_message.should == nil
|
13
|
-
|
14
|
-
response.filename.should == "testing.pdf"
|
15
|
-
response.pages_count.should == 1
|
16
|
-
response.order_code.should == 20090608050001
|
17
|
-
response.tracking_number.should == ""
|
18
|
-
response.datumpodani.should == Date.parse("2009-06-08")
|
19
|
-
response.price.should_not == nil
|
20
|
-
response.color.should == false
|
21
|
-
response.shipping_method.should == 67
|
22
|
-
end
|
23
|
-
|
24
|
-
should "parse failure correctly" do
|
25
|
-
response = load_response_from_file("failure.xml")
|
26
|
-
|
27
|
-
response.code.should == 200
|
28
|
-
response.success?.should == false
|
29
|
-
response.failure_code.should == 8
|
30
|
-
response.failure_message.should_not == nil
|
31
|
-
end
|
32
|
-
|
33
|
-
def load_response_from_file(filename)
|
34
|
-
body = File.read(File.join(File.dirname(__FILE__),'fixtures',filename))
|
35
|
-
parsed_response = Crack::XML.parse(body)
|
36
|
-
DopisOnlineClient::Response.new(parsed_response, body, 200)
|
37
|
-
end
|
38
|
-
end
|