sitra_client 0.0.3 → 0.0.4

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.
@@ -5,6 +5,25 @@ class TouristicObject
5
5
 
6
6
  include AttributeHelper
7
7
 
8
+ SPECIFIC_INFOS = {
9
+ 'ACTIVITE' => '@informationsActivite',
10
+ 'COMMERCE_ET_SERVICE' => '@informationsCommerceEtService',
11
+ 'DEGUSTATION' => '@informationsDegustation',
12
+ 'DOMAINE_SKIABLE' => '@informationsDomaineSkiable',
13
+ 'EQUIPEMENT' => '@informationsEquipement',
14
+ 'FETE_ET_MANIFESTATION' => '@informationsFeteEtManifestation',
15
+ 'HEBERGEMENT_COLLECTIF' => '@informationsHebergementCollectif',
16
+ 'HEBERGEMENT_LOCATIF' => '@informationsHebergementLocatif',
17
+ 'HOTELLERIE' => '@informationsHotellerie',
18
+ 'HOTELLERIE_PLEIN_AIR' => '@informationsHotelleriePleinAir',
19
+ 'PATRIMOINE_CULTUREL' => '@informationsPatrimoineCulturel',
20
+ 'PATRIMOINE_NATUREL' => '@informationsPatrimoineNaturel',
21
+ 'RESTAURATION' => '@informationsRestauration',
22
+ 'SEJOUR_PACKAGE' => '@informationsSejourPackage',
23
+ 'STRUCTURE' => '@informationsStructure',
24
+ 'TERRITOIRE' => '@informationsTerritoire'
25
+ }
26
+
8
27
  def initialize(hash)
9
28
  self.attributes = hash
10
29
  end
@@ -13,6 +32,10 @@ class TouristicObject
13
32
  @id.to_s
14
33
  end
15
34
 
35
+ def type
36
+ @type
37
+ end
38
+
16
39
  def title
17
40
  @nom[:libelleFr]
18
41
  end
@@ -25,16 +48,26 @@ class TouristicObject
25
48
  @presentation[:descriptifDetaille][:libelleFr] unless @presentation[:descriptifDetaille].nil?
26
49
  end
27
50
 
28
- def contact
51
+ def contact(fields = [])
29
52
  contact_details = {}
30
53
  contact_entries = @informations[:moyensCommunication].nil? ? [] : @informations[:moyensCommunication]
31
54
  contact_entries.each do |c|
32
55
  label = c[:type][:libelleFr]
33
- contact_details[c[:type][:libelleFr]] = c[:coordonnee] unless label == 'Fax'
56
+ if fields.include?(label)
57
+ contact_details[c[:type][:libelleFr]] = c[:coordonnee] unless label.downcase.include?('fax')
58
+ end
34
59
  end
35
60
  contact_details
36
61
  end
37
62
 
63
+ def information
64
+ specific_information = {}
65
+ unless @type.nil?
66
+ specific_information = instance_variable_get(SPECIFIC_INFOS[@type])
67
+ end
68
+ @informations.merge(specific_information)
69
+ end
70
+
38
71
  def picture_url(default_url)
39
72
  @imagePrincipale.nil? ? default_url : @imagePrincipale[:traductionFichiers][0][:url]
40
73
  end
@@ -1,3 +1,3 @@
1
1
  module SitraClient
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -28,18 +28,19 @@ class TouristicObjectTest < Test::Unit::TestCase
28
28
  assert_equal 'my_detailed_description', touristic_object.details
29
29
  end
30
30
 
31
- should 'populate contact details' do
31
+ should 'populate contact details for provided fields' do
32
32
  hash_result = {
33
33
  :informations => {
34
34
  :moyensCommunication => [
35
35
  {:type => {:libelleFr => "Téléphone"}, :coordonnee => "0123456789"},
36
+ {:type => {:libelleFr => "Mél"}, :coordonnee => "my@email.fr"},
36
37
  {:type => {:libelleFr => "Fax"}, :coordonnee => "9876543201"}
37
38
  ]
38
39
  }
39
40
  }
40
41
  touristic_object = TouristicObject.new(hash_result)
41
42
 
42
- assert_equal({'Téléphone' => '0123456789'}, touristic_object.contact)
43
+ assert_equal({'Téléphone' => '0123456789', 'Mél' => 'my@email.fr'}, touristic_object.contact(['Téléphone', 'Mél']))
43
44
  end
44
45
 
45
46
  should 'populate image details' do
@@ -131,4 +132,25 @@ class TouristicObjectTest < Test::Unit::TestCase
131
132
  assert_true touristic_object.adapted_tourism.include?('Accessible en fauteuil roulant en autonomie')
132
133
  end
133
134
 
135
+ should 'retrieve merged general and specific information' do
136
+ hash_result = {
137
+ :type => 'ACTIVITE',
138
+ :informations => {
139
+ :moyensCommunication => [
140
+ {:type => {:libelleFr => "Téléphone"}, :coordonnee => "0123456789"}
141
+ ]
142
+ },
143
+ :informationsActivite => {
144
+ :commerceEtServicePrestataire => {
145
+ :nom => {:libelleFr => "my_service"}
146
+ }
147
+ }
148
+ }
149
+
150
+ touristic_object = TouristicObject.new(hash_result)
151
+
152
+ assert_equal "0123456789", touristic_object.information[:moyensCommunication][0][:coordonnee]
153
+ assert_equal "my_service", touristic_object.information[:commerceEtServicePrestataire][:nom][:libelleFr]
154
+ end
155
+
134
156
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sitra_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-07-02 00:00:00.000000000 Z
12
+ date: 2014-07-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler