casper-client 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -3,7 +3,7 @@ $:.push File.expand_path("../lib", __FILE__)
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "casper-client"
6
- s.version = "0.0.6"
6
+ s.version = "0.0.7"
7
7
  s.platform = Gem::Platform::RUBY
8
8
  s.authors = ["Daniel Tamiosso"]
9
9
  s.email = ["email@danieltamiosso.com"]
data/lib/casper-client.rb CHANGED
@@ -7,14 +7,27 @@ module Casper
7
7
  class Client
8
8
 
9
9
  @@options = {
10
- :host => 'http://casper.jrs-labs.com:8080'
10
+ :host => 'http://casper.jrs-labs.com:8080',
11
+ :type => 'pdf'
11
12
  }
12
13
 
14
+ def self.pdf options={}
15
+ options[:type] = 'pdf'
16
+ self.report options
17
+ end
18
+
19
+ def self.xls options={}
20
+ options[:type] = 'xls'
21
+ self.report options
22
+ end
23
+
13
24
  def self.report options={}
25
+ options = @@options.merge!(options)
14
26
  Client.build options do |report|
15
27
  report.template = options[:template]
16
28
  report.xml = options[:xml]
17
29
  report.xpath = options[:xpath]
30
+ report.type = options[:type]
18
31
  end
19
32
  end
20
33
 
@@ -25,7 +38,6 @@ module Casper
25
38
  private
26
39
 
27
40
  def self.build(options={}, &block)
28
- options = @@options.merge!(options)
29
41
  report = Report.new
30
42
  report.instance_eval(&block)
31
43
  RestClient.post options[:host], report.to_json, :content_type => :json, :accept => :json
@@ -34,14 +46,15 @@ module Casper
34
46
  end
35
47
 
36
48
  class Report
37
- attr_accessor :xml, :template, :xpath
49
+ attr_accessor :xml, :template, :xpath, :type
38
50
 
39
51
  def to_json
40
52
  {:casper =>
41
53
  {
42
54
  :jrxml => Base64.encode64(self.template.read),
43
55
  :data => Base64.encode64((self.xml.kind_of? File) ? self.xml.read : xml),
44
- :xpath => self.xpath
56
+ :xpath => self.xpath,
57
+ :type => self.type
45
58
  }
46
59
  }.to_json
47
60
  end
@@ -15,7 +15,8 @@ describe Casper::Client do
15
15
  {
16
16
  :jrxml => Base64.encode64(open(File.join(File.dirname(__FILE__),'data/report.jrxml')).read),
17
17
  :data => Base64.encode64(open(File.join(File.dirname(__FILE__),'data/dataset.xml')).read),
18
- :xpath => '//root'
18
+ :xpath => '//root',
19
+ :type => 'pdf'
19
20
  }
20
21
  }.to_json, :content_type => :json, :accept => :json
21
22
  )
@@ -33,7 +34,8 @@ describe Casper::Client do
33
34
  {
34
35
  :jrxml => Base64.encode64(open(File.join(File.dirname(__FILE__),'data/report.jrxml')).read),
35
36
  :data => Base64.encode64(open(File.join(File.dirname(__FILE__),'data/dataset.xml')).read),
36
- :xpath => '//root'
37
+ :xpath => '//root',
38
+ :type => 'pdf'
37
39
  }
38
40
  }.to_json, :content_type => :json, :accept => :json
39
41
  )
@@ -52,7 +54,8 @@ describe Casper::Client do
52
54
  {
53
55
  :jrxml => Base64.encode64(open(File.join(File.dirname(__FILE__),'data/report.jrxml')).read),
54
56
  :data => Base64.encode64('<model/>'),
55
- :xpath => '//root'
57
+ :xpath => '//root',
58
+ :type => 'pdf'
56
59
  }
57
60
  }.to_json, :content_type => :json, :accept => :json
58
61
  )
@@ -73,7 +76,8 @@ describe Casper::Client do
73
76
  {
74
77
  :jrxml => Base64.encode64(open(File.join(File.dirname(__FILE__),'data/report.jrxml')).read),
75
78
  :data => Base64.encode64('<model/>'),
76
- :xpath => '//root'
79
+ :xpath => '//root',
80
+ :type => 'pdf'
77
81
  }
78
82
  }.to_json, :content_type => :json, :accept => :json
79
83
  )
@@ -85,6 +89,46 @@ describe Casper::Client do
85
89
  )
86
90
  end
87
91
 
92
+ it 'should be possible export as xls format' do
93
+ Casper::Client.options[:host] = 'http://host.config.com'
94
+ RestClient.should_receive(:post).with(
95
+ 'http://host.config.com',
96
+ {:casper =>
97
+ {
98
+ :jrxml => Base64.encode64(open(File.join(File.dirname(__FILE__),'data/report.jrxml')).read),
99
+ :data => Base64.encode64('<model/>'),
100
+ :xpath => '//root',
101
+ :type => 'xls'
102
+ }
103
+ }.to_json, :content_type => :json, :accept => :json
104
+ )
105
+ report = Casper::Client.xls(
106
+ :template => open(File.join(File.dirname(__FILE__),'data/report.jrxml')),
107
+ :xml => '<model/>',
108
+ :xpath => '//root'
109
+ )
110
+ end
111
+
112
+ it 'should be possible export as pdf format by alias method' do
113
+ Casper::Client.options[:host] = 'http://host.config.com'
114
+ RestClient.should_receive(:post).with(
115
+ 'http://host.config.com',
116
+ {:casper =>
117
+ {
118
+ :jrxml => Base64.encode64(open(File.join(File.dirname(__FILE__),'data/report.jrxml')).read),
119
+ :data => Base64.encode64('<model/>'),
120
+ :xpath => '//root',
121
+ :type => 'pdf'
122
+ }
123
+ }.to_json, :content_type => :json, :accept => :json
124
+ )
125
+ report = Casper::Client.pdf(
126
+ :template => open(File.join(File.dirname(__FILE__),'data/report.jrxml')),
127
+ :xml => '<model/>',
128
+ :xpath => '//root'
129
+ )
130
+ end
131
+
88
132
  end
89
133
 
90
134
  end
metadata CHANGED
@@ -1,13 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: casper-client
3
3
  version: !ruby/object:Gem::Version
4
- hash: 19
5
4
  prerelease:
6
- segments:
7
- - 0
8
- - 0
9
- - 6
10
- version: 0.0.6
5
+ version: 0.0.7
11
6
  platform: ruby
12
7
  authors:
13
8
  - Daniel Tamiosso
@@ -26,11 +21,6 @@ dependencies:
26
21
  requirements:
27
22
  - - ">="
28
23
  - !ruby/object:Gem::Version
29
- hash: 27
30
- segments:
31
- - 2
32
- - 5
33
- - 0
34
24
  version: 2.5.0
35
25
  type: :development
36
26
  version_requirements: *id001
@@ -42,9 +32,6 @@ dependencies:
42
32
  requirements:
43
33
  - - ">="
44
34
  - !ruby/object:Gem::Version
45
- hash: 3
46
- segments:
47
- - 0
48
35
  version: "0"
49
36
  type: :development
50
37
  version_requirements: *id002
@@ -56,9 +43,6 @@ dependencies:
56
43
  requirements:
57
44
  - - ">="
58
45
  - !ruby/object:Gem::Version
59
- hash: 3
60
- segments:
61
- - 0
62
46
  version: "0"
63
47
  type: :runtime
64
48
  version_requirements: *id003
@@ -70,9 +54,6 @@ dependencies:
70
54
  requirements:
71
55
  - - ">="
72
56
  - !ruby/object:Gem::Version
73
- hash: 3
74
- segments:
75
- - 0
76
57
  version: "0"
77
58
  type: :runtime
78
59
  version_requirements: *id004
@@ -112,25 +93,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
112
93
  requirements:
113
94
  - - ">="
114
95
  - !ruby/object:Gem::Version
115
- hash: 3
116
- segments:
117
- - 0
118
96
  version: "0"
119
97
  required_rubygems_version: !ruby/object:Gem::Requirement
120
98
  none: false
121
99
  requirements:
122
100
  - - ">="
123
101
  - !ruby/object:Gem::Version
124
- hash: 23
125
- segments:
126
- - 1
127
- - 3
128
- - 6
129
102
  version: 1.3.6
130
103
  requirements: []
131
104
 
132
105
  rubyforge_project: casper-client
133
- rubygems_version: 1.4.1
106
+ rubygems_version: 1.5.2
134
107
  signing_key:
135
108
  specification_version: 3
136
109
  summary: just a simple api for casper service