skiplan_client 0.0.1

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.
@@ -0,0 +1,3 @@
1
+ module SkiplanClient
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,79 @@
1
+ class WeatherObject
2
+
3
+ attr_accessor :name,
4
+ :langue,
5
+ :date_heur_maj,
6
+ :zone_nom,
7
+ :zone_altitude,
8
+ :date_maj,
9
+ :reference_zone,
10
+ :rsq_reel,
11
+ :val_risque,
12
+ :lib_risque,
13
+ :temperature_mtn,
14
+ :temperature_apm,
15
+ :temperature_rst,
16
+ :neige,
17
+ :cumul,
18
+ :neige_horspiste,
19
+ :lib_qualite,
20
+ :id_qualite,
21
+ :id_qualitehorspiste,
22
+ :date_dern_neige,
23
+ :vitesse_vent,
24
+ :direction_vent,
25
+ :rafales_vent,
26
+ :visibilite,
27
+ :id_ciel_mtn,
28
+ :id_ciel_apm,
29
+ :indice_uv,
30
+ :risque_orage,
31
+ :commentaire,
32
+ :meteo_jour,
33
+ :meteo_lendemain,
34
+ :meteo_semaine,
35
+ :auj_ciel_id_matin,
36
+ :auj_ciel_id_apm,
37
+ :dem_ciel_id_matin,
38
+ :dem_ciel_id_apm
39
+
40
+ def initialize(attributes = {})
41
+ @nom = attributes[:name]
42
+ @langue = attributes[:langue]
43
+ @dateheur = attributes[:date_heur_maj]
44
+ @zonenom = attributes[:zone_nom]
45
+ @zonealtitude = attributes[:zone_altitude]
46
+ @datemaj = attributes[:date_maj]
47
+ @reference = attributes[:reference_zone]
48
+ @wrsqreel = attributes[:rsq_reel]
49
+ @valrisque = attributes[:val_risque]
50
+ @librisque = attributes[:lib_risque]
51
+ @temperaturemtn = attributes[:temperature_mtn]
52
+ @temperatureapm = attributes[:temperature_apm]
53
+ @temperaturerst = attributes[:temperature_rst]
54
+ @neige = attributes[:neige]
55
+ @cumul = attributes[:cumul]
56
+ @neigehorspiste = attributes[:neige_horspiste]
57
+ @libqualite = attributes[:lib_qualite]
58
+ @idqualite = attributes[:id_qualite]
59
+ @idqualitehorspiste = attributes[:id_qualitehorspiste]
60
+ @datelastsnow = attributes[:date_dern_neige]
61
+ @vitesse = attributes[:vitesse_vent]
62
+ @direction = attributes[:direction_vent]
63
+ @rafales = attributes[:rafales_vent]
64
+ @visibilite = attributes[:visibilite]
65
+ @id_ciel_mtn = attributes[:id_ciel_mtn]
66
+ @id_ciel_apm = attributes[:id_ciel_apm]
67
+ @indice_uv = attributes[:indice_uv]
68
+ @risque_orage = attributes[:risque_orage]
69
+ @commentaire = attributes[:commentaire]
70
+ @meteo_jour = attributes[:meteo_jour]
71
+ @meteo_lendemain = attributes[:meteo_lendemain]
72
+ @meteo_semaine = attributes[:meteo_semaine]
73
+ @auj_ciel_id_matin = attributes[:auj_ciel_id_matin]
74
+ @auj_ciel_id_apm = attributes[:auj_ciel_id_apm]
75
+ @dem_ciel_id_matin = attributes[:dem_ciel_id_matin]
76
+ @dem_ciel_id_apm = attributes[:dem_ciel_id_apm]
77
+
78
+ end
79
+ end
@@ -0,0 +1,32 @@
1
+ require 'skiplan_client/version'
2
+ require 'open-uri'
3
+ require 'nokogiri'
4
+
5
+ module SkiplanClient
6
+
7
+ # Configuration defaults
8
+ @config = {
9
+ :base_url => 'http://www.skiplan.com/php/genererXml.php?pays=france&region=alpes& station=legrandbornand&v=1'
10
+ }
11
+
12
+ def self.configure(url)
13
+ @config[:base_url] = url
14
+ end
15
+
16
+ def self.get_weather
17
+ @info = []
18
+
19
+ xml = Nokogiri::XML(open(@config[:base_url]))
20
+
21
+ ciel_id_auj_mat = xml.xpath('//ZONE[@nom="CHINAILLON"]/CIEL_ID').text
22
+ ciel_id_auj_apm = xml.xpath('//ZONE[@nom="CHINAILLON"]/CIEL_ID_APM').text
23
+ ciel_id_dem_mat = xml.xpath('//ZONE[@nom="J+1"]/CIEL_ID').text
24
+ ciel_id_dem_apm = xml.xpath('//ZONE[@nom="J+1"]/CIEL_ID_APM').text
25
+
26
+ @info = WeatherObject.new(:auj_ciel_id_matin => ciel_id_auj_mat,
27
+ :auj_ciel_id_apm => ciel_id_auj_apm,
28
+ :dem_ciel_id_matin => ciel_id_dem_mat,
29
+ :dem_ciel_id_apm => ciel_id_dem_apm)
30
+ @info
31
+ end
32
+ end
@@ -0,0 +1,27 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'skiplan_client/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "skiplan_client"
8
+ spec.version = SkiplanClient::VERSION
9
+ spec.authors = ["SimonRonzani"]
10
+ spec.email = ["ronzani.simon@gmail.com"]
11
+ spec.description = "SkiPlan API client gem"
12
+ spec.summary = "A simple Ruby wrapper for the SkiPlan XML api"
13
+ spec.homepage = "https://github.com/jeanbaptistevilain/skiplan_client"
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files`.split($/)
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_development_dependency "bundler", "~> 1.0"
22
+ spec.add_development_dependency "rake"
23
+ spec.add_development_dependency "test-unit"
24
+ spec.add_development_dependency "shoulda"
25
+ spec.add_runtime_dependency "rails", "~> 3.2.14"
26
+ spec.add_runtime_dependency "nokogiri"
27
+ end
@@ -0,0 +1,39 @@
1
+ # encoding : UTF-8
2
+ require 'rubygems'
3
+ gem 'shoulda'
4
+ require 'test/unit'
5
+ require 'shoulda'
6
+ require 'skiplan_client'
7
+ require 'skiplan_client/weather_object'
8
+
9
+ class SkiplanClientTest < Test::Unit::TestCase
10
+
11
+ should 'test nokogiri open and xpath text function' do
12
+
13
+ xml = Nokogiri::XML(open('http://api.openweathermap.org/data/2.5/forecast/daily?q=tokyo&mode=xml&units=metric&cnt=1'))
14
+ city = xml.xpath('//name').text
15
+ country = xml.xpath('//country').text
16
+
17
+ assert_equal 'Tokyo', city
18
+ assert_equal 'JP', country
19
+
20
+ end
21
+
22
+ should 'test get_weather founction' do
23
+
24
+ weather = SkiplanClient.get_weather
25
+
26
+ assert_equal '101' , weather.auj_ciel_id_matin
27
+ assert_equal '101' , weather.auj_ciel_id_apm
28
+ assert_equal '104' , weather.dem_ciel_id_matin
29
+ assert_equal '106' , weather.dem_ciel_id_apm
30
+ end
31
+
32
+ should 'change config url' do
33
+
34
+ config = SkiplanClient.configure('http://api.openweathermap.org/data/2.5/forecast/daily?q=tokyo&mode=xml&units=metric&cnt=1')
35
+
36
+ assert_equal 'http://api.openweathermap.org/data/2.5/forecast/daily?q=tokyo&mode=xml&units=metric&cnt=1', config
37
+ end
38
+
39
+ end
@@ -0,0 +1,25 @@
1
+ # encoding : UTF-8
2
+ require 'rubygems'
3
+ gem 'shoulda'
4
+ require 'test/unit'
5
+ require 'shoulda'
6
+ require 'skiplan_client/weather_object'
7
+
8
+ class WeatherObjectTest < Test::Unit::TestCase
9
+
10
+ should 'test information completed' do
11
+ @weather_object = []
12
+ hash_result = {:auj_ciel_id_matin => 'id_ciel_test1',
13
+ :auj_ciel_id_apm => 'id_ciel_test2',
14
+ :dem_ciel_id_matin => 'id_ciel_test3',
15
+ :dem_ciel_id_apm => 'id_ciel_test4'}
16
+
17
+ @weather_object = WeatherObject.new(hash_result)
18
+
19
+ assert_equal 'id_ciel_test1', @weather_object.auj_ciel_id_matin
20
+ assert_equal 'id_ciel_test2', @weather_object.auj_ciel_id_apm
21
+ assert_equal 'id_ciel_test3', @weather_object.dem_ciel_id_matin
22
+ assert_equal 'id_ciel_test4', @weather_object.dem_ciel_id_apm
23
+
24
+ end
25
+ end
metadata ADDED
@@ -0,0 +1,142 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: skiplan_client
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - SimonRonzani
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-07-10 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '1.0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '1.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ! '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: test-unit
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ! '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: shoulda
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ! '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rails
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ~>
74
+ - !ruby/object:Gem::Version
75
+ version: 3.2.14
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ~>
81
+ - !ruby/object:Gem::Version
82
+ version: 3.2.14
83
+ - !ruby/object:Gem::Dependency
84
+ name: nokogiri
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ! '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ! '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ description: SkiPlan API client gem
98
+ email:
99
+ - ronzani.simon@gmail.com
100
+ executables: []
101
+ extensions: []
102
+ extra_rdoc_files: []
103
+ files:
104
+ - .gitignore
105
+ - Gemfile
106
+ - LICENSE.txt
107
+ - README.md
108
+ - Rakefile
109
+ - data/lumi_response.xml
110
+ - lib/skiplan_client.rb
111
+ - lib/skiplan_client/version.rb
112
+ - lib/skiplan_client/weather_object.rb
113
+ - skiplan_client.gemspec
114
+ - test/skiplan_client/skiplan_client_test.rb
115
+ - test/skiplan_client/weather_object_test.rb
116
+ homepage: https://github.com/jeanbaptistevilain/skiplan_client
117
+ licenses:
118
+ - MIT
119
+ metadata: {}
120
+ post_install_message:
121
+ rdoc_options: []
122
+ require_paths:
123
+ - lib
124
+ required_ruby_version: !ruby/object:Gem::Requirement
125
+ requirements:
126
+ - - ! '>='
127
+ - !ruby/object:Gem::Version
128
+ version: '0'
129
+ required_rubygems_version: !ruby/object:Gem::Requirement
130
+ requirements:
131
+ - - ! '>='
132
+ - !ruby/object:Gem::Version
133
+ version: '0'
134
+ requirements: []
135
+ rubyforge_project:
136
+ rubygems_version: 2.3.0
137
+ signing_key:
138
+ specification_version: 4
139
+ summary: A simple Ruby wrapper for the SkiPlan XML api
140
+ test_files:
141
+ - test/skiplan_client/skiplan_client_test.rb
142
+ - test/skiplan_client/weather_object_test.rb