tax_generator 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +21 -0
  3. data/.inch.yml +10 -0
  4. data/.reek +10 -0
  5. data/.rspec +1 -0
  6. data/.rubocop.yml +72 -0
  7. data/Gemfile +3 -0
  8. data/Gemfile.lock +154 -0
  9. data/LICENSE +20 -0
  10. data/README.md +131 -0
  11. data/Rakefile +26 -0
  12. data/bin/tax_generator +7 -0
  13. data/data/input/.gitignore +25 -0
  14. data/data/input/destinations.xml +1073 -0
  15. data/data/input/taxonomy.xml +78 -0
  16. data/data/output/.gitignore +4 -0
  17. data/init.rb +1 -0
  18. data/lib/tax_generator/all.rb +26 -0
  19. data/lib/tax_generator/application.rb +125 -0
  20. data/lib/tax_generator/classes/destination.rb +103 -0
  21. data/lib/tax_generator/classes/file_creator.rb +100 -0
  22. data/lib/tax_generator/classes/processor.rb +270 -0
  23. data/lib/tax_generator/classes/taxonomy_tree.rb +97 -0
  24. data/lib/tax_generator/cli.rb +14 -0
  25. data/lib/tax_generator/helpers/application_helper.rb +154 -0
  26. data/lib/tax_generator/version.rb +27 -0
  27. data/lib/tax_generator.rb +1 -0
  28. data/spec/lib/tax_generator/application_spec.rb +0 -0
  29. data/spec/lib/tax_generator/classes/destination_spec.rb +62 -0
  30. data/spec/lib/tax_generator/classes/file_creator_spec.rb +96 -0
  31. data/spec/lib/tax_generator/classes/processor_spec.rb +30 -0
  32. data/spec/lib/tax_generator/classes/taxonomy_tree_spec.rb +0 -0
  33. data/spec/lib/tax_generator/cli_spec.rb +0 -0
  34. data/spec/lib/tax_generator/helpers/application_helper_spec.rb +0 -0
  35. data/spec/spec_helper.rb +60 -0
  36. data/tax_generator.gemspec +40 -0
  37. data/templates/static/all.css +586 -0
  38. data/templates/template.html.erb +91 -0
  39. metadata +452 -0
@@ -0,0 +1,586 @@
1
+ * {margin:0;padding:0}
2
+ .clear { clear: both; height: 0; }
3
+
4
+ h1 { margin: 15px 0; font-size: 22px; font-weight: normal; }
5
+ h2 { font-size: 22px; margin: 15px 0; font-weight: normal;}
6
+ h3 { font-size: 18px; margin: 10px 0; font-weight: normal;}
7
+ h4 { font-size: 16px; margin: 10px 0; font-weight: normal;}
8
+ hr {height: 1px; border: 0; }
9
+ p { margin: 15px 0;}
10
+ a img { border: none; }
11
+
12
+ body {
13
+ font-size: 12px;
14
+ font-family: sans-serif;
15
+ }
16
+
17
+ #container {
18
+ min-width: 960px;
19
+ }
20
+
21
+ #header, #wrapper, #footer {
22
+ padding: 0 20px;
23
+ }
24
+
25
+ #header {
26
+ position: relative;
27
+ padding-top: 1px;
28
+ }
29
+
30
+ #header h1 {
31
+ margin: 0;
32
+ padding: 10px 0;
33
+ font-size: 30px;
34
+ color: #FFFFFF;
35
+ }
36
+
37
+ #header h1 a:link, #header h1 a:active, #header h1 a:hover, #header h1 a:visited {
38
+ text-decoration: none;
39
+ }
40
+
41
+ #main {
42
+ width: 70%;
43
+ float: left;
44
+ }
45
+
46
+ .actions-bar {
47
+ padding: 10px 1px;
48
+ }
49
+
50
+ .actions-bar .actions {
51
+ float: left;
52
+ margin-bottom: 10px;
53
+ }
54
+
55
+ .actions-bar .pagination {
56
+ float: right;
57
+ padding: 1px 0;
58
+ }
59
+
60
+ #sidebar {
61
+ width: 25%;
62
+ float: right;
63
+ }
64
+
65
+ #sidebar h3 {
66
+ padding: 10px 15px;
67
+ margin: 0;
68
+ font-size: 13px;
69
+ }
70
+
71
+ #sidebar .block {
72
+ margin-bottom: 20px;
73
+ padding-bottom: 10px;
74
+ }
75
+
76
+ #sidebar .block .content {
77
+ padding: 0 15px;
78
+ }
79
+
80
+ #sidebar ul.navigation li a:link, #sidebar ul.navigation li a:visited {
81
+ display: block;
82
+ padding: 10px 15px;
83
+ }
84
+
85
+ #sidebar .block .sidebar-block, #sidebar .notice {
86
+ padding:10px;
87
+ }
88
+
89
+ #wrapper {
90
+ padding-top: 20px;
91
+ }
92
+
93
+ #main .block {
94
+ margin-bottom: 20px;
95
+ padding-top: 1px;
96
+ }
97
+
98
+ #main .block .content .inner {
99
+ padding: 15px 15px 0 15px;
100
+ }
101
+
102
+ #main .main p.first {
103
+ margin-top: 0;
104
+ }
105
+
106
+ #user-navigation {
107
+ position: absolute;
108
+ top: 0px;
109
+ right: 20px;
110
+ }
111
+
112
+ #user-navigation ul, #main-navigation ul, .secondary-navigation ul, #sidebar ul.navigation {
113
+ margin: 0;
114
+ padding: 0;
115
+ list-style-type: none;
116
+ }
117
+
118
+ #user-navigation ul li, #main-navigation ul li, .secondary-navigation ul li {
119
+ float: left;
120
+ }
121
+
122
+ #main-navigation ul li {
123
+ margin-right: 5px;
124
+ }
125
+
126
+ #user-navigation ul li {
127
+ padding: 5px 10px;
128
+ }
129
+
130
+ #main-navigation ul li a:link, #main-navigation ul li a:visited, #main-navigation ul li a:hover, #main-navigation ul li a:active,
131
+ .secondary-navigation ul li a:link, .secondary-navigation ul li a:visited, .secondary-navigation ul li a:hover, .secondary-navigation ul li a:active,
132
+ #user-navigation ul li a:link, #user-navigation ul li a:visited, #user-navigation ul li a:hover, #user-navigation ul li a:active {
133
+ text-decoration: none;
134
+ }
135
+
136
+ #main-navigation ul li a {
137
+ font-size: 15px;
138
+ display: block;
139
+ padding: 8px 15px;
140
+ }
141
+
142
+ .secondary-navigation {
143
+ font-size: 13px;
144
+ border-bottom-width: 10px;
145
+ border-bottom-style: solid;
146
+ }
147
+
148
+ .secondary-navigation ul li a {
149
+ display: block;
150
+ padding: 10px 15px;
151
+ }
152
+
153
+ #footer {
154
+ padding-bottom: 20px;
155
+ }
156
+
157
+ /* pagination */
158
+
159
+ .pagination a, .pagination span {
160
+ padding: 2px 5px;
161
+ margin-right: 5px;
162
+ display: block;
163
+ float: left;
164
+ }
165
+
166
+ .pagination span.current {
167
+ font-weight: bold;
168
+ border-width: 1px;
169
+ border-style: solid;
170
+ }
171
+
172
+ .pagination a {
173
+ text-decoration: none;
174
+ border-width: 1px;
175
+ border-style: solid;
176
+ }
177
+
178
+ /* tables */
179
+ .table {
180
+ width: 100%;
181
+ border-collapse: collapse;
182
+ margin-bottom: 15px;
183
+ font-size: 12px;
184
+ }
185
+
186
+ .table th {
187
+ padding: 10px;
188
+ font-weight: bold;
189
+ text-align: left;
190
+ }
191
+
192
+ .table th.first {
193
+ width: 30px;
194
+ }
195
+
196
+ .table .checkbox {
197
+ margin-left: 10px;
198
+ }
199
+
200
+ .table td {
201
+ padding: 10px;
202
+ }
203
+
204
+
205
+ /* lists */
206
+
207
+ ul.list {
208
+ margin: 0;
209
+ padding: 0;
210
+ list-style-type: none;
211
+ }
212
+
213
+ ul.list li {
214
+ clear: left;
215
+ padding-bottom: 5px;
216
+ }
217
+
218
+ ul.list li .left {
219
+ float: left;
220
+ }
221
+
222
+ ul.list li .left .avatar {
223
+ width: 50px;
224
+ height: 50px;
225
+ }
226
+
227
+ ul.list li .item {
228
+ margin-left: 80px;
229
+ }
230
+
231
+ ul.list li .item .avatar {
232
+ float: left;
233
+ margin: 0 5px 5px 0;
234
+ width: 30px;
235
+ height: 30px;
236
+ }
237
+
238
+ /* box */
239
+
240
+ #box {
241
+ width: 500px;
242
+ margin: 50px auto;
243
+ }
244
+
245
+ #box .block {
246
+ margin-bottom: 20px;
247
+ }
248
+
249
+ #box .block h2 {
250
+ padding: 10px 15px;
251
+ margin: 0;
252
+ }
253
+
254
+ #box .block .content {
255
+ padding: 15px 20px;
256
+ }
257
+
258
+
259
+
260
+ .small { font-size:11px; }
261
+ .gray { color:#999999; }
262
+ .hightlight { background-color:#FFFFCC; }
263
+
264
+ a:link, a:visited, a:hover, a:active, h1, h2, h3 { color: #0A4F9C; }
265
+ a { -moz-outline: none; }
266
+
267
+ body {
268
+ color: #222;
269
+ background: #f0f0ee;
270
+ font-family: helvetica, arial, sans-serif;
271
+ }
272
+
273
+ hr {
274
+ background: #f0f0ee;
275
+ color: #f0f0ee;
276
+ }
277
+
278
+ #header {
279
+ background: #0A4F9C;
280
+ }
281
+
282
+ #header h1 {
283
+ padding: 20px 0;
284
+ }
285
+
286
+ #header h1 a:link, #header h1 a:active, #header h1 a:hover, #header h1 a:visited {
287
+ color: #FFF;
288
+ }
289
+
290
+ #user-navigation {
291
+ top: auto;
292
+ bottom: 5px;
293
+ right: 25px;
294
+ }
295
+
296
+ #main .block .content {
297
+ background: #FFF;
298
+ padding-top: 1px;
299
+ }
300
+
301
+ #main .block .content h2 {
302
+ margin-left: 15px;
303
+ }
304
+
305
+ #sidebar .block {
306
+ background: #FFF;
307
+ }
308
+
309
+ #sidebar h3 {
310
+ background: #0A4F9C;
311
+ color: #FFF;
312
+ border-bottom: 10px solid #262626;
313
+ }
314
+
315
+ .block h3.title {
316
+ background: #0A4F9C;
317
+ color: #FFF;
318
+ border-bottom: 10px solid #262626;
319
+ font-size:13px;
320
+ margin:0;
321
+ padding:10px 15px;
322
+ }
323
+
324
+ #main-navigation ul li {
325
+ padding-left: 15px;
326
+ }
327
+
328
+ #main-navigation ul li a {
329
+ padding: 8px 0;
330
+ }
331
+
332
+ #main-navigation ul li.active {
333
+ padding: 0;
334
+ margin-left: 15px;
335
+ }
336
+
337
+ #main-navigation ul li.active {
338
+ margin-left: 15px;
339
+ }
340
+
341
+ #main-navigation ul li.active a {
342
+ padding: 8px 15px;
343
+ }
344
+
345
+ #sidebar ul li a:link, #sidebar ul li a:visited {
346
+ background: #FFF;
347
+ border-bottom: 1px solid #F0F0EE;
348
+ text-decoration: none;
349
+ }
350
+
351
+ #sidebar ul li a:hover, #sidebar ul li a:active {
352
+ background: #470E0E;
353
+ color: #FFF;
354
+ }
355
+
356
+ #main-navigation {
357
+ background: #262626;
358
+ }
359
+
360
+ #main-navigation ul li {
361
+ background: #262626;
362
+ margin-right: 0;
363
+ }
364
+
365
+ #main-navigation ul li.active {
366
+ background: #f0f0ee;
367
+ }
368
+
369
+ #main-navigation ul li a:link, #main-navigation ul li a:visited, #main-navigation ul li a:hover, #main-navigation ul li a:active,
370
+ .secondary-navigation ul li a:link, .secondary-navigation ul li a:visited, .secondary-navigation ul li a:hover, .secondary-navigation ul li a:active,
371
+ #user-navigation ul li a:link, #user-navigation ul li a:visited, #user-navigation ul li a:hover, #user-navigation ul li a:active {
372
+ text-decoration: none;
373
+ color: #FFF;
374
+ }
375
+
376
+ .secondary-navigation li a:hover {
377
+ background: #470E0E;
378
+ }
379
+
380
+ #main-navigation ul li.active a:link, #main-navigation ul li.active a:visited, #main-navigation ul li.active a:hover, #main-navigation ul li.active a:active {
381
+ color: #262626;
382
+ }
383
+
384
+ .secondary-navigation {
385
+ background: #0A4F9C;
386
+ border-bottom-color: #262626;
387
+ }
388
+
389
+ .secondary-navigation ul li.active, .secondary-navigation ul li.active a:hover {
390
+ background-color: #262626;
391
+ }
392
+
393
+ #footer .block {
394
+ color: #FFF;
395
+ background: #262626;
396
+ width: 70%;
397
+ }
398
+
399
+ #footer .block p {
400
+ margin: 0;
401
+ padding: 10px;
402
+ }
403
+
404
+ /* pagination */
405
+
406
+ .pagination span.current {
407
+ background: #262626;
408
+ color: #FFF;
409
+ border-color: #262626;
410
+ }
411
+
412
+ .pagination a {
413
+ color: #262626;
414
+ border-color: #262626;
415
+ }
416
+
417
+ .pagination a:hover {
418
+ color: #FFF;
419
+ background: #262626;
420
+ }
421
+
422
+ /* tables */
423
+
424
+ .table th {
425
+ background: #262626;
426
+ color: #FFF;
427
+ }
428
+
429
+ .table td {
430
+ border-bottom:1px solid #F0F0EE;
431
+ }
432
+
433
+ /* forms */
434
+ .form label.label, .form input.text, .form textarea {
435
+ font-size: 1.0em;
436
+ }
437
+
438
+ .form input.text, .form textarea {
439
+ width: auto;
440
+ font-size: 0.9em;
441
+ border: 1px solid #262626;
442
+ }
443
+
444
+ .form input.button, .inline-form input.button {
445
+ background: #EEE;
446
+ color: #262626;
447
+ padding: 2px 5px;
448
+ border: 1px solid #262626;
449
+ cursor: pointer;
450
+ }
451
+
452
+ .form .description {
453
+ font-style: italic;
454
+ color: #8C8C8C;
455
+ font-size: .9em;
456
+ display: block;
457
+ }
458
+
459
+ /* lists */
460
+
461
+ ul.list li {
462
+ border-bottom-color: #F0F0EE;
463
+ border-bottom-width: 1px;
464
+ border-bottom-style: solid;
465
+ }
466
+
467
+ ul.list li .item .avatar {
468
+ border-color: #F0F0EE;
469
+ border-width: 1px;
470
+ border-style: solid;
471
+ padding: 2px;
472
+ }
473
+
474
+ /* box */
475
+
476
+ #box .block {
477
+ background: #FFF;
478
+ }
479
+
480
+ #box .block h2 {
481
+ background: #0A4F9C;
482
+ color: #FFF;
483
+ }
484
+
485
+
486
+ /* rounded borders */
487
+
488
+ #main, #main-navigation, #main-navigation li, .secondary-navigation, .block .title, #main .block, #sidebar .block, #sidebar h3, ul.list li,
489
+ #footer .block, .form input.button, .inline-form input.button, #box .block, #box .block h2 {
490
+ -moz-border-radius-topleft: 4px;
491
+ -webkit-border-top-left-radius: 4px;
492
+ -moz-border-radius-topright: 4px;
493
+ -webkit-border-top-right-radius: 4px;
494
+ }
495
+
496
+ .secondary-navigation li.first a, .secondary-navigation ul li.first, .table th.first, .table th.first {
497
+ -moz-border-radius-topleft: 4px;
498
+ -webkit-border-top-left-radius: 4px;
499
+ }
500
+
501
+ .table th.last {
502
+ -moz-border-radius-topright: 4px;
503
+ -webkit-border-top-right-radius: 4px;
504
+ }
505
+
506
+ .secondary-navigation ul li.first {
507
+ -moz-border-radius-topleft: 4px;
508
+ -webkit-border-top-left-radius: 4px;
509
+ }
510
+
511
+ #sidebar, #sidebar .block, #main .block, #sidebar ul.navigation, ul.list li, #footer .block, .form input.button, .inline-form input.button, #box .block {
512
+ -moz-border-radius-bottomleft: 4px;
513
+ -webkit-border-bottom-left-radius: 4px;
514
+ -moz-border-radius-bottomright: 4px;
515
+ -webkit-border-bottom-right-radius: 4px;
516
+ }
517
+
518
+ .actions-bar .page_entries .actions{
519
+ float: left;
520
+ margin: 3px 0 0 0;
521
+ }
522
+
523
+ .actions-bar .actions a{
524
+ margin: 0 10px 0 0;
525
+ }
526
+
527
+ .table th.numeric {
528
+ text-align: right;
529
+ }
530
+
531
+ .table td.numeric {
532
+ text-align: right;
533
+ }
534
+
535
+ .table th.centre {
536
+ text-align: center;
537
+ }
538
+
539
+ ul.list li .upload_file {
540
+ margin-left: 30px;
541
+ padding: 2px 0 0 0;
542
+ }
543
+
544
+ #dialog {
545
+ background: #f0f0ee;
546
+ }
547
+
548
+ #dialog .block {
549
+ background:#FFFFFF none repeat scroll 0 0;
550
+ margin-bottom: 20px;
551
+ padding-bottom: 10px;
552
+ }
553
+
554
+ #dialog .block .content {
555
+ padding: 0 15px;
556
+ }
557
+
558
+ .form input.full_width {
559
+ width: 100%;
560
+ }
561
+
562
+ .source_list {
563
+ float:left;
564
+ display: inline;
565
+ margin: 0 5px 0 0;
566
+ }
567
+
568
+ .date {
569
+ width:75px;
570
+ }
571
+
572
+ .source {
573
+ width:105px;
574
+ }
575
+
576
+ #main h3.title a {
577
+ color: #FFF;
578
+ }
579
+
580
+ form.bulk_poi_editor th a {
581
+ color: #FFF;
582
+ }
583
+
584
+ #sidebar .block .content .inner {
585
+ padding:15px 0 0 0;
586
+ }
@@ -0,0 +1,91 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta http-equiv="content-type" content="text/html; charset=UTF-8">
5
+ <title>Lonely Planet - <%= details.name %></title>
6
+ <link href="<%= root %>/templates/static/all.css" media="screen" rel="stylesheet" type="text/css">
7
+ </head>
8
+ <body>
9
+ <div id="container">
10
+ <div id="header">
11
+ <div id="logo"></div>
12
+ <h1>Lonely Planet: <%= details.content %></h1>
13
+ </div>
14
+ <div id="wrapper">
15
+ <div id="sidebar">
16
+ <div class="block">
17
+ <h3>Navigation</h3>
18
+
19
+ <div class="content">
20
+ <div class="inner">
21
+ <ul class="navigation">
22
+ <% unless details.parent.nil? %>
23
+ <li><a href="<%= details.parent.name %>.html">Up to <%= details.parent.content %></a>
24
+ <li/>
25
+ <% end %>
26
+ <% unless details.children.nil? %>
27
+ <% details.children.each do |child| %>
28
+ <li><a href="<%= child.name %>.html"><%= child.content %></a></li>
29
+ <% end %>
30
+ <% end %>
31
+ </ul>
32
+ </div>
33
+ </div>
34
+ </div>
35
+ </div>
36
+ <div id="main">
37
+ <div class="block">
38
+ <div class="secondary-navigation">
39
+ <ul>
40
+ <li class="first"><a href="<%= details.name %>.html"><%= details.content %></a></li>
41
+ </ul>
42
+ <div class="clear"></div>
43
+ </div>
44
+ <div class="content">
45
+ <div class="inner">
46
+ <% if defined?(introduction) && introduction.present? %>
47
+ <h3>Introduction</h3>
48
+ <p>
49
+ <%= introduction%>
50
+ </p>
51
+ <% end %>
52
+
53
+ <% if defined?(history) && history.present? %>
54
+ <h3>History</h3>
55
+ <p>
56
+ <%= history%>
57
+ </p>
58
+ <% end %>
59
+ <% if defined?(practical_information) && practical_information.present? %>
60
+ <h3>Practical Information</h3>
61
+ <p>
62
+ <%= practical_information %>
63
+ </p>
64
+ <% end %>
65
+ <% if defined?(transport) && transport.present? %>
66
+ <h3>Transport</h3>
67
+ <p>
68
+ <%= transport %>
69
+ </p>
70
+ <% end %>
71
+ <% if defined?(weather) && weather.present? %>
72
+ <h3>Weather</h3>
73
+ <p>
74
+ <%= weather %>
75
+ </p>
76
+ <% end %>
77
+ <% if defined?(work_live_study) && work_live_study.present? %>
78
+ <h3>Work Live Study</h3>
79
+ <p>
80
+ <%= work_live_study %>
81
+ </p>
82
+ <% end %>
83
+
84
+ </div>
85
+ </div>
86
+ </div>
87
+ </div>
88
+ </div>
89
+ </div>
90
+ </body>
91
+ </html>