forecast 0.0.7 → 0.0.8

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.
data/.README.md.html DELETED
@@ -1,480 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN" "http://www.w3.org/TR/html4/strict.dtd">
2
- <html>
3
- <head>
4
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5
- <title>/Users/aphorisme/Documents/Projekte/Kicks App/Workspace/forecast.rb/.README.md.html</title>
6
-
7
-
8
- <style type="text/css">
9
- body {
10
- color: #333;
11
- font: 13px/1.4 Helvetica,arial,freesans,clean,sans-serif;
12
- }
13
-
14
- .markdown-body {
15
- border: 1px solid #CACACA;
16
- padding: 30px;
17
- font-size: 15px;
18
- line-height: 1.7;
19
- word-wrap: break-word;
20
- }
21
- .markdown-body > *:first-child {
22
- margin-top: 0 !important;
23
- }
24
- .markdown-body > *:last-child {
25
- margin-bottom: 0 !important;
26
- }
27
- .markdown-body a.absent {
28
- color: #C00;
29
- }
30
- .markdown-body a.anchor {
31
- bottom: 0;
32
- cursor: pointer;
33
- display: block;
34
- left: 0;
35
- margin-left: -30px;
36
- padding-left: 30px;
37
- padding-right: 6px;
38
- position: absolute;
39
- top: 0;
40
- }
41
- .markdown-body a.anchor:focus {
42
- outline: medium none;
43
- }
44
- .markdown-body h1, .markdown-body h2, .markdown-body h3, .markdown-body h4, .markdown-body h5, .markdown-body h6 {
45
- cursor: text;
46
- font-weight: bold;
47
- line-height: 1.7;
48
- margin: 1em 0 15px;
49
- padding: 0;
50
- position: relative;
51
- }
52
-
53
- .markdown-body h1 .octicon-link, .markdown-body h2 .octicon-link, .markdown-body h3 .octicon-link, .markdown-body h4 .octicon-link, .markdown-body h5 .octicon-link, .markdown-body h6 .octicon-link {
54
- color: #000;
55
- display: none;
56
- }
57
- .markdown-body h1:hover a.anchor, .markdown-body h2:hover a.anchor, .markdown-body h3:hover a.anchor, .markdown-body h4:hover a.anchor, .markdown-body h5:hover a.anchor, .markdown-body h6:hover a.anchor {
58
- line-height: 1;
59
- margin-left: -22px;
60
- padding-left: 0;
61
- text-decoration: none;
62
- top: 15%;
63
- }
64
- .markdown-body h1:hover a.anchor .octicon-link, .markdown-body h2:hover a.anchor .octicon-link, .markdown-body h3:hover a.anchor .octicon-link, .markdown-body h4:hover a.anchor .octicon-link, .markdown-body h5:hover a.anchor .octicon-link, .markdown-body h6:hover a.anchor .octicon-link {
65
- display: inline-block;
66
- }
67
- .markdown-body h1 tt, .markdown-body h1 code, .markdown-body h2 tt, .markdown-body h2 code, .markdown-body h3 tt, .markdown-body h3 code, .markdown-body h4 tt, .markdown-body h4 code, .markdown-body h5 tt, .markdown-body h5 code, .markdown-body h6 tt, .markdown-body h6 code {
68
- font-size: inherit;
69
- }
70
- .markdown-body h1 {
71
- border-bottom: 1px solid #DDD;
72
- font-size: 2.5em;
73
- }
74
- .markdown-body h2 {
75
- border-bottom: 1px solid #EEE;
76
- font-size: 2em;
77
- }
78
- .markdown-body h3 {
79
- font-size: 1.5em;
80
- }
81
- .markdown-body h4 {
82
- font-size: 1.2em;
83
- }
84
- .markdown-body h5 {
85
- font-size: 1em;
86
- }
87
- .markdown-body h6 {
88
- color: #777;
89
- font-size: 1em;
90
- }
91
- .markdown-body p, .markdown-body blockquote, .markdown-body ul, .markdown-body ol, .markdown-body dl, .markdown-body table, .markdown-body pre {
92
- margin: 15px 0;
93
- }
94
- .markdown-body ul, .markdown-body ol {
95
- padding-left: 30px;
96
- }
97
- .markdown-body ul.no-list, .markdown-body ol.no-list {
98
- list-style-type: none;
99
- padding: 0;
100
- }
101
- .markdown-body ul ul, .markdown-body ul ol, .markdown-body ol ol, .markdown-body ol ul {
102
- margin-bottom: 0;
103
- margin-top: 0;
104
- }
105
- .markdown-body dl {
106
- padding: 0;
107
- }
108
- .markdown-body dl dt {
109
- font-size: 14px;
110
- font-style: italic;
111
- font-weight: bold;
112
- margin-top: 15px;
113
- padding: 0;
114
- }
115
- .markdown-body dl dd {
116
- margin-bottom: 15px;
117
- padding: 0 15px;
118
- }
119
- .markdown-body blockquote {
120
- border-left: 4px solid #DDD;
121
- color: #777;
122
- padding: 0 15px;
123
- }
124
- .markdown-body blockquote > *:first-child {
125
- margin-top: 0;
126
- }
127
- .markdown-body blockquote > *:last-child {
128
- margin-bottom: 0;
129
- }
130
- .markdown-body table {
131
- display: block;
132
- overflow: auto;
133
- width: 100%;
134
- border-collapse: collapse;
135
- }
136
- .markdown-body table th {
137
- font-weight: bold;
138
- }
139
- .markdown-body table th, .markdown-body table td {
140
- border: 1px solid #DDD;
141
- padding: 6px 13px;
142
- }
143
- .markdown-body table tr {
144
- background-color: #FFF;
145
- border-top: 1px solid #CCC;
146
- }
147
- .markdown-body table tr:nth-child(2n) {
148
- background-color: #F8F8F8;
149
- }
150
- .markdown-body img {
151
- -moz-box-sizing: border-box;
152
- -webkit-box-sizing: border-box;
153
- -o-box-sizing: border-box;
154
- box-sizing: border-box;
155
- max-width: 100%;
156
- border: 0px;
157
- }
158
- .markdown-body span.frame {
159
- display: block;
160
- overflow: hidden;
161
- }
162
- .markdown-body span.frame > span {
163
- border: 1px solid #DDD;
164
- display: block;
165
- float: left;
166
- margin: 13px 0 0;
167
- overflow: hidden;
168
- padding: 7px;
169
- width: auto;
170
- }
171
- .markdown-body span.frame span img {
172
- display: block;
173
- float: left;
174
- }
175
- .markdown-body span.frame span span {
176
- clear: both;
177
- color: #333;
178
- display: block;
179
- padding: 5px 0 0;
180
- }
181
- .markdown-body span.align-center {
182
- clear: both;
183
- display: block;
184
- overflow: hidden;
185
- }
186
- .markdown-body span.align-center > span {
187
- display: block;
188
- margin: 13px auto 0;
189
- overflow: hidden;
190
- text-align: center;
191
- }
192
- .markdown-body span.align-center span img {
193
- margin: 0 auto;
194
- text-align: center;
195
- }
196
- .markdown-body span.align-right {
197
- clear: both;
198
- display: block;
199
- overflow: hidden;
200
- }
201
- .markdown-body span.align-right > span {
202
- display: block;
203
- margin: 13px 0 0;
204
- overflow: hidden;
205
- text-align: right;
206
- }
207
- .markdown-body span.align-right span img {
208
- margin: 0;
209
- text-align: right;
210
- }
211
- .markdown-body span.float-left {
212
- display: block;
213
- float: left;
214
- margin-right: 13px;
215
- overflow: hidden;
216
- }
217
- .markdown-body span.float-left span {
218
- margin: 13px 0 0;
219
- }
220
- .markdown-body span.float-right {
221
- display: block;
222
- float: right;
223
- margin-left: 13px;
224
- overflow: hidden;
225
- }
226
- .markdown-body span.float-right > span {
227
- display: block;
228
- margin: 13px auto 0;
229
- overflow: hidden;
230
- text-align: right;
231
- }
232
- .markdown-body code, .markdown-body tt {
233
- background-color: #F8F8F8;
234
- border: 1px solid #DDD;
235
- border-radius: 3px;
236
- margin: 0 2px;
237
- padding: 0 5px;
238
- }
239
- .markdown-body code {
240
- white-space: nowrap;
241
- }
242
- .markdown-body pre > code {
243
- border: medium none;
244
- margin: 0;
245
- padding: 0;
246
- white-space: pre;
247
- }
248
- .markdown-body .highlight pre, .markdown-body pre {
249
- background-color: #F8F8F8;
250
- border: 1px solid #DDD;
251
- border-radius: 3px;
252
- font-size: 13px;
253
- line-height: 19px;
254
- overflow: auto;
255
- padding: 6px 10px;
256
- }
257
- .markdown-body pre code, .markdown-body pre tt {
258
- border: medium none;
259
- margin: 0;
260
- padding: 0;
261
- word-wrap: normal;
262
- }
263
-
264
- pre, code, tt {
265
- font-family: Consolas,"Liberation Mono",Courier,monospace;
266
- font-size: 12px;
267
- }
268
-
269
- .highlight {
270
- background: #FFF;
271
- }
272
- .highlight .k,
273
- .highlight .o,
274
- .highlight .cp,
275
- .highlight .cs,
276
- .highlight .gs,
277
- .highlight .gu,
278
- .highlight .kc,
279
- .highlight .kd,
280
- .highlight .kn,
281
- .highlight .kp,
282
- .highlight .kr,
283
- .highlight .kt,
284
- .highlight .nc,
285
- .highlight .ne,
286
- .highlight .nf,
287
- .highlight .ow {
288
- font-weight: bold;
289
- }
290
- .highlight .gd,
291
- .highlight .gd .x,
292
- .highlight .gi,
293
- .highlight .gi .x,
294
- .type-csharp .highlight .nf,
295
- .type-csharp .highlight .nn {
296
- color: #000;
297
- }
298
- .highlight .c,
299
- .highlight .cm,
300
- .highlight .c1 {
301
- color: #998;
302
- font-style: italic;
303
- }
304
- .highlight .err {
305
- background-color: #E3D2D2;
306
- color: #A61717;
307
- }
308
- .highlight .cp,
309
- .highlight .cs {
310
- color: #999;
311
- }
312
- .highlight .cs,
313
- .highlight .ge {
314
- font-style: italic;
315
- }
316
- .highlight .gd {
317
- background-color: #FDD;
318
- }
319
- .highlight .gd .x {
320
- background-color: #FAA;
321
- }
322
- .highlight .gr,
323
- .highlight .gt {
324
- color: #A00;
325
- }
326
- .highlight .gh {
327
- color: #999;
328
- }
329
- .highlight .gi {
330
- background-color: #DFD;
331
- }
332
- .highlight .gi .x {
333
- background-color: #AFA;
334
- }
335
- .highlight .go {
336
- color: #888;
337
- }
338
- .highlight .gp,
339
- .highlight .nn {
340
- color: #555;
341
- }
342
- .highlight .gu,
343
- .highlight .ni {
344
- color: #800080;
345
- }
346
- .highlight .kt {
347
- color: #458;
348
- }
349
- .highlight .m {
350
- color: #099;
351
- }
352
- .highlight .s {
353
- color: #D14;
354
- }
355
- .highlight .n {
356
- color: #333;
357
- }
358
- .highlight .na,
359
- .highlight .no,
360
- .highlight .nv,
361
- .highlight .vc,
362
- .highlight .vg,
363
- .highlight .vi {
364
- color: #008080;
365
- }
366
- .highlight .nb {
367
- color: #0086B3;
368
- }
369
- .highlight .nc {
370
- color: #458;
371
- }
372
- .highlight .ne,
373
- .highlight .nf {
374
- color: #900;
375
- }
376
- .highlight .nt {
377
- color: #000080;
378
- }
379
- .highlight .w {
380
- color: #BBB;
381
- }
382
- .highlight .mf,
383
- .highlight .mh,
384
- .highlight .mi,
385
- .highlight .mo {
386
- color: #099;
387
- }
388
- .highlight .sb,
389
- .highlight .sc,
390
- .highlight .sd,
391
- .highlight .s2,
392
- .highlight .se,
393
- .highlight .sh,
394
- .highlight .si,
395
- .highlight .sx,
396
- .highlight .s1 {
397
- color: #D14;
398
- }
399
- .highlight .sr {
400
- color: #009926;
401
- }
402
- .highlight .ss {
403
- color: #990073;
404
- }
405
- .highlight .bp {
406
- color: #999;
407
- }
408
- .highlight .il {
409
- color: #099;
410
- }
411
- .highlight .gc {
412
- background-color: #EAF2F5;
413
- color: #999;
414
- }
415
- .type-csharp .highlight .k,
416
- .type-csharp .highlight .kt {
417
- color: #00F;
418
- }
419
- .type-csharp .highlight .nf {
420
- font-weight: normal;
421
- }
422
- .type-csharp .highlight .nc {
423
- color: #2B91AF;
424
- }
425
- .type-csharp .highlight .s,
426
- .type-csharp .highlight .sc {
427
- color: #A31515;
428
- }
429
-
430
- </style>
431
-
432
-
433
- <script type="text/javascript">
434
-
435
- function getDocumentScrollTop()
436
- {
437
- var res = document.body.scrollTop || document.documentElement.scrollTop || window.pageYOffset || 0;
438
- // alert(res);
439
- return res;
440
- }
441
-
442
- function setDocumentScrollTop(ypos)
443
- {
444
- window.scrollTo(0, ypos);
445
- }
446
-
447
- </script>
448
-
449
-
450
- </head>
451
- <body class="markdown-body">
452
- <h1> <a name="user-content-forecast" class="anchor" href="..md.html#forecast" aria-hidden="true"><span class="octicon octicon-link"></span></a>forecast</h1>
453
- <p>A Forecast-Multi-API-Wrapper with a unified model and integrated caching</p>
454
- <h2> <a name="user-content-integrating-with-rails" class="anchor" href="..md.html#integrating-with-rails" aria-hidden="true"><span class="octicon octicon-link"></span></a>Integrating with rails</h2>
455
- <h4> <a name="user-content-quick-start" class="anchor" href="..md.html#quick-start" aria-hidden="true"><span class="octicon octicon-link"></span></a>Quick start</h4>
456
- <p>Add weather-icons theme to your stylesheets from cdn</p>
457
- <div class="highlight highlight-erb">
458
- <pre><span class="cp">&lt;%=</span> <span class="n">stylesheet_link_tag</span> <span class="s2">&quot;http://cdnjs.cloudflare.com/ajax/libs/weather-icons/1.2/css/weather-icons.css&quot;</span><span class="p">,</span> <span class="ss">media</span><span class="p">:</span> <span class="s2">&quot;all&quot;</span><span class="p">,</span> <span class="s2">&quot;data-turbolinks-track&quot;</span> <span class="o">=&gt;</span> <span class="kp">true</span> <span class="cp">%&gt;</span><span class="x"></span>
459
- </pre>
460
- </div>
461
- <p>Create a forecast-helper</p>
462
- <div class="highlight highlight-ruby">
463
- <pre><span class="k">module</span> <span class="nn">ApplicationHelper</span>
464
- <span class="k">def</span> <span class="nf">forecast</span><span class="p">(</span><span class="n">latitude</span><span class="p">,</span> <span class="n">longitude</span><span class="p">,</span> <span class="n">date</span><span class="p">)</span>
465
- <span class="n">forecast</span> <span class="o">=</span> <span class="no">Forecast</span><span class="o">.</span><span class="n">daily</span><span class="p">(</span><span class="n">latitude</span><span class="p">,</span> <span class="n">longitude</span><span class="p">)</span><span class="o">.</span><span class="n">select_date</span><span class="p">(</span><span class="n">date</span><span class="p">)</span>
466
- <span class="n">content_tag</span><span class="p">(</span><span class="s1">'span'</span><span class="p">,</span> <span class="n">content_tag</span><span class="p">(</span><span class="s1">'i'</span><span class="p">,</span> <span class="s1">' '</span><span class="p">,</span> <span class="ss">class</span><span class="p">:</span> <span class="s2">&quot;forecast-icon &quot;</span> <span class="o">+</span> <span class="n">forecast</span><span class="o">.</span><span class="n">icon</span><span class="p">)</span> <span class="o">+</span> <span class="s2">&quot; &quot;</span><span class="o">.</span><span class="n">html_safe</span> <span class="o">+</span> <span class="n">content_tag</span><span class="p">(</span><span class="s1">'span'</span><span class="p">,</span> <span class="p">(</span><span class="n">forecast</span><span class="o">.</span><span class="n">temp</span><span class="o">.</span><span class="n">to_s</span> <span class="o">+</span> <span class="s2">&quot;&amp;#176;&quot;</span><span class="p">)</span><span class="o">.</span><span class="n">html_safe</span><span class="p">,</span> <span class="ss">class</span><span class="p">:</span> <span class="s1">'forecast-temp'</span><span class="p">),</span> <span class="ss">class</span><span class="p">:</span> <span class="s1">'forecast'</span><span class="p">)</span>
467
- <span class="k">end</span>
468
- <span class="k">end</span>
469
- </pre>
470
- </div>
471
- <p>Create a view</p>
472
- <div class="highlight highlight-erb">
473
- <pre><span class="x">&lt;h1&gt;Forecast Test&lt;/h1&gt;</span>
474
- <span class="x">&lt;p&gt;</span>
475
- <span class="x"> The weather of tomorrow in New York: </span><span class="cp">&lt;%=</span> <span class="n">forecast</span><span class="p">(</span><span class="mi">41</span><span class="o">.</span><span class="mi">145495</span><span class="p">,</span> <span class="o">-</span><span class="mi">73</span><span class="o">.</span><span class="mi">994901</span><span class="p">,</span> <span class="no">Time</span><span class="o">.</span><span class="n">now</span> <span class="o">+</span> <span class="mi">60</span><span class="o">*</span><span class="mi">60</span><span class="o">*</span><span class="mi">24</span><span class="p">)</span> <span class="cp">%&gt;</span><span class="x"></span>
476
- <span class="x">&lt;/p&gt;</span>
477
- </pre>
478
- </div>
479
- </body>
480
- </html>
@@ -1,18 +0,0 @@
1
- forecast:
2
- adapters:
3
- open_weather_map:
4
- conditions:
5
- 200..210: Windy
6
- 211: Storm
7
- 212..299: 'Heavy Storm'
8
- 300..399: 'Light Rain'
9
- 500: 'Light Rain'
10
- 501: 'Rain'
11
- 502..599: 'Heavy Rain'
12
- 600: 'Light Snow'
13
- 601: 'Snow'
14
- 602..699: 'Heavy Snow'
15
- 800: 'Clear'
16
- 801: 'Partly Cloudy'
17
- 802..803: 210
18
- 804..899: 'Mostly Cloudy'
@@ -1,7 +0,0 @@
1
- class Forecast
2
- class Cache
3
- def initialize
4
-
5
- end
6
- end
7
- end
@@ -1,71 +0,0 @@
1
- class Forecast
2
- module Model
3
-
4
- def initialize(object_attribute_hash = {})
5
- object_attribute_hash.map do |(k, v)|
6
- send("#{k}=", v) if respond_to?("#{k}=")
7
- end
8
- end
9
-
10
- def icon
11
- if Forecast.config.theme.is_a? Hash
12
- icon = Forecast.config.theme[self.condition]
13
- return icon unless icon == nil
14
- end
15
- return slugify(self.condition)
16
- end
17
-
18
- def self.included(base)
19
- base.extend(ClassMethods)
20
- end
21
-
22
- def as_json options = {}
23
- serialized = Hash.new
24
- if self.class.attributes != nil
25
- self.class.attributes.each do |attribute|
26
- serialized[attribute] = self.public_send attribute
27
- end
28
- end
29
- serialized
30
- end
31
-
32
- def to_json *a
33
- as_json.to_json a
34
- end
35
-
36
- def from_json(json)
37
- self.class.attributes.each do |attribute|
38
- writer_m = "#{attribute}="
39
- value = json[attribute.to_s]
40
- if attribute == :date
41
- value = DateTime.parse(value)
42
- end
43
- send(writer_m, value) if respond_to?(writer_m)
44
- end
45
- end
46
-
47
- # end
48
-
49
- private
50
-
51
- def slugify(string)
52
- string.downcase.strip.gsub(' ', '-').gsub(/[^\w-]/, '')
53
- end
54
-
55
- module ClassMethods
56
-
57
- @attributes = []
58
-
59
- def attributes
60
- @attributes
61
- end
62
-
63
- def attr_accessor *attrs
64
- @attributes = Array attrs
65
- super
66
- end
67
-
68
- end
69
-
70
- end
71
- end