caren-api 0.4.29 → 0.4.30

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.29
1
+ 0.4.30
data/caren-api.gemspec CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "caren-api"
8
- s.version = "0.4.29"
8
+ s.version = "0.4.30"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Andre Foeken"]
@@ -37,6 +37,7 @@ Gem::Specification.new do |s|
37
37
  "lib/caren/client.rb",
38
38
  "lib/caren/error.rb",
39
39
  "lib/caren/event.rb",
40
+ "lib/caren/event_slot.rb",
40
41
  "lib/caren/external_message.rb",
41
42
  "lib/caren/link.rb",
42
43
  "spec/.DS_Store",
@@ -45,6 +46,7 @@ Gem::Specification.new do |s|
45
46
  "spec/care_provider_spec.rb",
46
47
  "spec/caren_spec.rb",
47
48
  "spec/client_spec.rb",
49
+ "spec/event_slot_spec.rb",
48
50
  "spec/event_spec.rb",
49
51
  "spec/external_message_spec.rb",
50
52
  "spec/fixtures/bacon.jpg",
data/lib/caren-api.rb CHANGED
@@ -1,28 +1,19 @@
1
- begin
2
- require "rubygems"
3
- rescue LoadError
4
- end
5
-
6
- require "active_support"
7
- require "active_support/core_ext"
8
-
9
- begin
10
- require "active_support/secure_random"
11
- rescue LoadError
12
- end
1
+ require "active_support/core_ext/hash/conversions"
2
+ require "active_support/core_ext/array/conversions"
13
3
 
14
4
  require "builder"
15
5
  require "rest_client"
16
6
  require "rexml/document"
17
7
  require "base64"
18
8
 
19
- require "#{File.dirname(__FILE__)}/caren/caren.rb"
20
- require "#{File.dirname(__FILE__)}/caren/error.rb"
21
- require "#{File.dirname(__FILE__)}/caren/base.rb"
22
- require "#{File.dirname(__FILE__)}/caren/event.rb"
23
- require "#{File.dirname(__FILE__)}/caren/client.rb"
24
- require "#{File.dirname(__FILE__)}/caren/care_provider.rb"
25
- require "#{File.dirname(__FILE__)}/caren/external_message.rb"
26
- require "#{File.dirname(__FILE__)}/caren/link.rb"
27
- require "#{File.dirname(__FILE__)}/caren/billable.rb"
28
- require "#{File.dirname(__FILE__)}/caren/billable_category.rb"
9
+ require "caren/caren.rb"
10
+ require "caren/error.rb"
11
+ require "caren/base.rb"
12
+ require "caren/event.rb"
13
+ require "caren/event_slot.rb"
14
+ require "caren/client.rb"
15
+ require "caren/care_provider.rb"
16
+ require "caren/external_message.rb"
17
+ require "caren/link.rb"
18
+ require "caren/billable.rb"
19
+ require "caren/billable_category.rb"
data/lib/caren/base.rb CHANGED
@@ -2,9 +2,9 @@
2
2
  # The class provides basic functionality to convert objects to and from xml based
3
3
  # on the default Caren API format.
4
4
  class Caren::Base
5
-
5
+
6
6
  attr_accessor :attributes
7
-
7
+
8
8
  # Basic initializer, handles quick setting of passed attributes.
9
9
  def initialize args={}
10
10
  self.attributes = {}
@@ -21,32 +21,32 @@ class Caren::Base
21
21
  self.instance_eval('undef id') if self.respond_to?(:id)
22
22
  self.instance_eval('undef type') if self.respond_to?(:type)
23
23
  end
24
-
24
+
25
25
  # List of available attributes for this object
26
26
  def self.keys
27
27
  [ :updated_at, :created_at, :action ]
28
28
  end
29
-
29
+
30
30
  # Root name of the XML array of objects
31
31
  def self.array_root
32
32
  :objects
33
33
  end
34
-
34
+
35
35
  # Name of each XML if converted to XML
36
36
  def self.node_root
37
37
  :object
38
38
  end
39
-
39
+
40
40
  # The relative location of this resource.
41
41
  def self.resource_location
42
42
  raise "No resource location found"
43
43
  end
44
-
44
+
45
45
  # Convert an array of these objects to XML
46
46
  def self.to_xml array
47
47
  array.to_xml( :root => self.array_root )
48
48
  end
49
-
49
+
50
50
  # Convert a XML string to a single object or an array of objects
51
51
  def self.from_xml xml
52
52
  return nil if xml == ''
@@ -60,45 +60,45 @@ class Caren::Base
60
60
  return self.new( hash )
61
61
  end
62
62
  end
63
-
63
+
64
64
  # Convert this object to XML
65
65
  def to_xml options={}
66
66
  self.as_xml.to_xml(options.merge( :root => self.class.node_root ))
67
67
  end
68
-
68
+
69
69
  # Overridable hash of attributes that is used for converting to XML.
70
70
  def as_xml
71
71
  attributes.reject{ |k,v| k == :action }
72
72
  end
73
-
73
+
74
74
  # The absolute (constructed url) to the resource.
75
75
  def self.resource_url id=nil
76
76
  [self.resource_location,id].compact.join("/")
77
77
  end
78
-
78
+
79
79
  def self.search_url key, value
80
80
  "#{self.resource_url}?key=#{key.to_s.dasherize}&value=#{value}"
81
81
  end
82
-
82
+
83
83
  # The absolute (constructed url) to the resource.
84
84
  def resource_url id=nil
85
85
  self.class.resource_url(id)
86
86
  end
87
-
87
+
88
88
  def self.hash_from_image hash_or_path
89
89
  return hash_or_path if hash_or_path.is_a?(Hash)
90
90
  { :name => File.basename(hash_or_path),
91
91
  :content => Base64.encode64(File.open(hash_or_path).read),
92
92
  :content_type => `file -b --mime-type #{hash_or_path}`.gsub(/\n/,"").split(";")[0] }
93
93
  end
94
-
94
+
95
95
  private
96
-
96
+
97
97
  # Method missing calls to enable getters/setters
98
98
  def method_missing args, value=nil
99
99
  return self.attributes[args] if self.class.keys.include?(args)
100
100
  return self.attributes[args.to_s.gsub('=','').to_sym] = value if self.class.keys.include?(args.to_s.gsub('=','').to_sym)
101
101
  super
102
102
  end
103
-
103
+
104
104
  end
@@ -0,0 +1,20 @@
1
+ # This class is just an intermediate for representing potential event occurences.
2
+ class Caren::EventSlot < Caren::Base
3
+
4
+ def self.keys
5
+ [ :date, # Date
6
+ :start, # String
7
+ :duration, # Integer
8
+ ] + super
9
+ end
10
+
11
+ def self.array_root
12
+ :event_slots
13
+ end
14
+
15
+ def self.node_root
16
+ :event_slot
17
+ end
18
+
19
+ end
20
+
data/lib/caren/link.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  class Caren::Link < Caren::Base
2
-
2
+
3
3
  def self.keys
4
4
  [:id, # Integer (Caren id)
5
5
  :person_name, # String (Caren person name)
@@ -11,19 +11,19 @@ class Caren::Link < Caren::Base
11
11
  :status # String (pending,confirmed,cancelled)
12
12
  ] + super
13
13
  end
14
-
14
+
15
15
  def self.search key, value, session
16
16
  from_xml session.get( self.search_url(key,value) )
17
17
  end
18
-
18
+
19
19
  def self.find id, session
20
20
  from_xml session.get(self.resource_url(id))
21
21
  end
22
-
22
+
23
23
  def self.all session
24
24
  from_xml session.get(self.resource_url)
25
25
  end
26
-
26
+
27
27
  # Request to create a new link. Example:
28
28
  # Caren::Link.new( :patient_number => 1234 ).create
29
29
  def create session
@@ -31,20 +31,20 @@ class Caren::Link < Caren::Base
31
31
  end
32
32
 
33
33
  def as_xml
34
- { :patient_number => self.patient_number,
34
+ { :patient_number => self.patient_number,
35
35
  :external_id => self.external_id }
36
36
  end
37
-
37
+
38
38
  def self.array_root
39
39
  :links
40
40
  end
41
-
41
+
42
42
  def self.node_root
43
43
  :link
44
44
  end
45
-
45
+
46
46
  def self.resource_location
47
47
  "/api/pro/links"
48
48
  end
49
-
50
- end
49
+
50
+ end
@@ -0,0 +1,18 @@
1
+ require 'spec_helper'
2
+
3
+ describe "Event", "converting to xml" do
4
+
5
+ before do
6
+ @slot_a = Caren::EventSlot.new( :date => Date.today, :start => "10:00", :duration => 3600)
7
+ @slot_b = Caren::EventSlot.new( :date => Date.today + 1, :start => "10:00", :duration => 7200)
8
+ end
9
+
10
+ it "should be able to convert an event to valid xml" do
11
+ @slot_a.should convert_to_valid_caren_xml
12
+ end
13
+
14
+ it "should be able to convert an array of events to valid xml" do
15
+ [@slot_a,@slot_b].should convert_to_valid_caren_array_xml
16
+ end
17
+
18
+ end
data/spec/event_spec.rb CHANGED
@@ -1,23 +1,23 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe "Event", "converting to xml" do
4
-
4
+
5
5
  before do
6
- @event_a = Caren::Event.new( :external_id => 1, :name => "Washing", :comment => "Real good", :start => "12:00",
7
- :duration => 30, :valid_from => Date.today, :valid_to => Date.today+1.day,
6
+ @event_a = Caren::Event.new( :external_id => 1, :name => "Washing", :comment => "Real good", :start => "12:00",
7
+ :duration => 30, :valid_from => Date.today, :valid_to => Date.today+1.day,
8
8
  :person_first_name => "Andre", :person_last_name => "Foeken", :person_male => true, :external_person_id => 100 )
9
-
10
- @event_b = Caren::Event.new( :external_id => 2, :name => "Clothing", :comment => "Real bad",
11
- :start => "13:00", :duration => 30, :valid_from => Date.today, :valid_to => Date.today+1.day,
9
+
10
+ @event_b = Caren::Event.new( :external_id => 2, :name => "Clothing", :comment => "Real bad",
11
+ :start => "13:00", :duration => 30, :valid_from => Date.today, :valid_to => Date.today+1.day,
12
12
  :person_first_name => "Oscar", :person_last_name => "Foeken", :person_male => true, :external_person_id => 101 )
13
13
  end
14
-
14
+
15
15
  it "should be able to convert an event to valid xml" do
16
16
  @event_a.should convert_to_valid_caren_xml
17
17
  end
18
-
18
+
19
19
  it "should be able to convert an array of events to valid xml" do
20
20
  [@event_a,@event_b].should convert_to_valid_caren_array_xml
21
21
  end
22
-
23
- end
22
+
23
+ end
data/spec/spec_helper.rb CHANGED
@@ -5,11 +5,11 @@ require 'fakeweb'
5
5
  require 'capybara'
6
6
 
7
7
  class Integer
8
-
8
+
9
9
  def euros
10
10
  self*100
11
11
  end
12
-
12
+
13
13
  end
14
14
 
15
15
  # For the tests we need to know both the public and private key, so we share them here.
@@ -39,5 +39,5 @@ RSpec::Matchers.define :convert_to_valid_caren_array_xml do
39
39
  end
40
40
 
41
41
  RSpec.configure do |config|
42
-
43
- end
42
+
43
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: caren-api
3
3
  version: !ruby/object:Gem::Version
4
- hash: 53
4
+ hash: 51
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 4
9
- - 29
10
- version: 0.4.29
9
+ - 30
10
+ version: 0.4.30
11
11
  platform: ruby
12
12
  authors:
13
13
  - Andre Foeken
@@ -175,6 +175,7 @@ files:
175
175
  - lib/caren/client.rb
176
176
  - lib/caren/error.rb
177
177
  - lib/caren/event.rb
178
+ - lib/caren/event_slot.rb
178
179
  - lib/caren/external_message.rb
179
180
  - lib/caren/link.rb
180
181
  - spec/.DS_Store
@@ -183,6 +184,7 @@ files:
183
184
  - spec/care_provider_spec.rb
184
185
  - spec/caren_spec.rb
185
186
  - spec/client_spec.rb
187
+ - spec/event_slot_spec.rb
186
188
  - spec/event_spec.rb
187
189
  - spec/external_message_spec.rb
188
190
  - spec/fixtures/bacon.jpg