api_object 0.0.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,88 @@
1
+ require 'api_object'
2
+ require_relative 'load_from_xml'
3
+ module TestObjects
4
+
5
+ module WeatherMethods
6
+ def to_s
7
+ inspect
8
+ end
9
+ end
10
+
11
+ class ForecastInfo < ActiveApi::ApiObject
12
+ include WeatherMethods
13
+ attr_reader :city, :current_date, :current_time
14
+
15
+ api_column :current_date, :forecast_date
16
+ api_column :current_time, :current_date_time
17
+
18
+ def inspect
19
+ "#{@city} #{@current_time}"
20
+ end
21
+
22
+ def ==(other_info)
23
+ return false if other_info.nil?
24
+ self.city == other_info.city
25
+ end
26
+
27
+ end
28
+
29
+ class CurrentWeather < ActiveApi::ApiObject
30
+ include WeatherMethods
31
+ attr_reader :sky, :temp_f, :temp_c, :humidity, :wind
32
+
33
+ api_column :sky, :condition
34
+ api_column :wind, :wind_condition
35
+
36
+ def inspect
37
+ "Today #{@temp_f}F (#{@temp_c}C), #{@sky}, #{@humidity}, #{@wind}"
38
+ end
39
+ end
40
+
41
+ class WeatherForecast < ActiveApi::ApiObject
42
+ include WeatherMethods
43
+ attr_reader :day_of_week, :temp_low, :temp_high, :sky
44
+
45
+ api_column :temp_low, :low
46
+ api_column :temp_high, :high
47
+ api_column :sky, :condition
48
+
49
+ def inspect
50
+ "#{@day_of_week} low #{@temp_low}, high #{@temp_high}, #{@sky}"
51
+ end
52
+
53
+
54
+ end
55
+
56
+ class Weather < ActiveApi::ApiObject
57
+ extend LoadFromXML
58
+ include WeatherMethods
59
+ attr_reader :forecast_information, :current_conditions, :forecast_conditions
60
+
61
+ initialize_from_api :url => "http://www.google.com/ig/", :action => 'api', :data_tags => :data
62
+
63
+ api_association :forecast_information, :as => ForecastInfo
64
+ api_association :current_conditions, :as => CurrentWeather
65
+ api_association :forecast_conditions, :as => WeatherForecast
66
+
67
+
68
+ def inspect
69
+ "#{@forecast_information} \n\t#{@current_conditions} \n\t#{@forecast_conditions.instance_of?(Array) ? (@forecast_conditions.inject('') {|str, e| (str + e.inspect + "\n\t")}) : @forecast_conditions}"
70
+ end
71
+
72
+ def ==(other_weather)
73
+ return false if other_weather.nil?
74
+ self.forecast_information == other_weather.forecast_information && self.current_conditions != nil && other_weather.current_conditions != nil && self.forecast_conditions.size == other_weather.forecast_conditions.size
75
+ end
76
+
77
+ class << self
78
+ alias_method :general_load_from_xml, :load_from_xml
79
+
80
+ def load_from_xml xml
81
+ general_load_from_xml(xml, 'xml_api_reply', 'weather')
82
+ end
83
+
84
+ end
85
+ end
86
+
87
+
88
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: api_object
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-04-12 00:00:00.000000000 Z
12
+ date: 2012-06-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activemodel
16
- requirement: &71094620 !ruby/object:Gem::Requirement
16
+ requirement: &84182880 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *71094620
24
+ version_requirements: *84182880
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rspec
27
- requirement: &70815040 !ruby/object:Gem::Requirement
27
+ requirement: &84182660 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70815040
35
+ version_requirements: *84182660
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: minitest
38
- requirement: &70814760 !ruby/object:Gem::Requirement
38
+ requirement: &84182340 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70814760
46
+ version_requirements: *84182340
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: activesupport
49
- requirement: &70814480 !ruby/object:Gem::Requirement
49
+ requirement: &84182020 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *70814480
57
+ version_requirements: *84182020
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: nori
60
- requirement: &70814230 !ruby/object:Gem::Requirement
60
+ requirement: &84181690 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '1.1'
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *70814230
68
+ version_requirements: *84181690
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rest-client
71
- requirement: &70813950 !ruby/object:Gem::Requirement
71
+ requirement: &84181440 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,7 +76,7 @@ dependencies:
76
76
  version: '1.6'
77
77
  type: :runtime
78
78
  prerelease: false
79
- version_requirements: *70813950
79
+ version_requirements: *84181440
80
80
  description: An interface to load objects from external APIs provided in XML and JSON
81
81
  formats
82
82
  email:
@@ -94,12 +94,17 @@ files:
94
94
  - lib/api_object/config_params.rb
95
95
  - lib/api_object/query.rb
96
96
  - lib/api_object/version.rb
97
+ - test/data/bus/muni_F.xml
98
+ - test/data/bus/muni_routes.xml
97
99
  - test/data/estimate/glen.xml
98
100
  - test/data/estimate/sixteenth.xml
99
101
  - test/data/estimate/twenty_fourth.xml
102
+ - test/data/weather/mountain_view.xml
100
103
  - test/unit/api_object_test.rb
101
104
  - test/unit/load_from_xml.rb
105
+ - test/unit/route.rb
102
106
  - test/unit/station.rb
107
+ - test/unit/weather.rb
103
108
  homepage: https://github.com/tmoskun/api_object
104
109
  licenses: []
105
110
  post_install_message: