tin_opener 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +6 -1
  3. data/app/controllers/tin_opener/data_sets_controller.rb +2 -1
  4. data/app/models/tin_opener/data_set.rb +2 -1
  5. data/app/views/tin_opener/data_sets/index.html.erb +1 -1
  6. data/lib/tin_opener/data_file_processor.rb +25 -11
  7. data/lib/tin_opener/data_file_processors/csv_processor.rb +24 -0
  8. data/lib/tin_opener/data_file_processors/xls_processor.rb +36 -0
  9. data/lib/tin_opener/version.rb +1 -1
  10. data/lib/tin_opener.rb +4 -0
  11. data/spec/dummy/log/development.log +516 -0
  12. data/spec/dummy/log/test.log +5894 -0
  13. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/3MR1DJHzwOb48EQrXsHiHJ7IjgDYaKg8TF_1oluekCU.cache +1 -0
  14. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/9JAtmrE8gkN4Ll_ses1H_M5ylPg_rV75JTy-LInDW5A.cache +0 -0
  15. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/BqwVbEXQReJqZ1O-vYl0bgDgn5AjRFyVyu26OlZSeDk.cache +0 -0
  16. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/Jow55IN5o80YnLiOg4Fr5N9WPT7dOSW1FsC30syKOXM.cache +1 -0
  17. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/NQA9K_2Oq3l5Jz2kmZcV4LJIDx1cJOQbwZQjZq_Ob8k.cache +1 -0
  18. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/OqdzJMApqmuOR5HA5XbQ9Ukw0t66o_kOvOr9gRTb-ys.cache +0 -0
  19. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/UoPmraIR_8GBdt82Qv7E46vB85biTLUEFnsqW5h3AHY.cache +3 -0
  20. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/YBxAUfyQDHjoEa2iz272XBdRKrtQ7tS5kmMLmymLYXU.cache +1 -0
  21. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/ZXdv0D_C5WAx0i5WNLYVhLj_WYBcK_Km4B907jOwh7k.cache +1 -0
  22. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/e8WNBOjUvEkKqQpZOIclS1Azo4QSaSyaZewShwzREds.cache +1 -0
  23. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/hkvQh5qylGCuuWPMjn7586FUemTh6giau8b0IaFgmak.cache +1 -0
  24. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/kD6BsXWNOKOD6OuqYVuxbXKliQbe8n1c_fHhCRqkqKU.cache +2 -0
  25. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/pgKZvrFeOEW9p9wqha2PA5mqALzmUehQRncxgx7HSFY.cache +0 -0
  26. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/usob9Vws5kXcHktDHWDxgEiIKUmU9eLNwvJSjWYfVSg.cache +0 -0
  27. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/x1NjeGbfRAMdAff315v2hcYniAL5QVpxdqW0rFIHRKU.cache +3 -0
  28. data/spec/dummy/tmp/cache/assets/test/sprockets/v3.0/znqRv2LKKafofH32eY4huW3WeDBZB0l-ESutpXdht9I.cache +2 -0
  29. data/spec/examples.txt +17 -7
  30. data/spec/factories/{tin_opener_data_sets.rb → data_sets.rb} +1 -1
  31. data/spec/factories/records.rb +6 -0
  32. data/spec/features/tin_opener/data_sets_spec.rb +61 -0
  33. data/spec/fixtures/data_sets/contaminacion-acustica-2015.xls +0 -0
  34. data/spec/fixtures/data_sets/encuesta-calidad-de-vida-2014.xls +0 -0
  35. data/spec/fixtures/data_sets/trabajos_planificados_m30.xml +1 -0
  36. data/spec/lib/tin_opener/data_file_processor_spec.rb +65 -0
  37. data/spec/models/tin_opener/data_set_spec.rb +1 -1
  38. data/spec/models/tin_opener/record_spec.rb +2 -2
  39. data/spec/rails_helper.rb +3 -1
  40. data/spec/spec_helper.rb +4 -2
  41. data/spec/support/url_helpers.rb +7 -0
  42. metadata +79 -5
  43. data/spec/factories/tin_opener_records.rb +0 -6
@@ -0,0 +1 @@
1
+ I"�/Users/david/src/tin_opener/app/assets/stylesheets/tin_opener/application.css?type=text/css&pipeline=self&id=3b270058e06a2330264806d991238836ac3108258e91c5c4d7eac6c1f9bf71c7:ET
@@ -0,0 +1 @@
1
+ I"�/Users/david/src/tin_opener/app/assets/javascripts/tin_opener/application.js?type=application/javascript&id=523eb365ec4b768fb85c2aceddb81885c62502b55e61a056eedd586db1125c88:ET
@@ -0,0 +1 @@
1
+ I"�/Users/david/src/tin_opener/app/assets/javascripts/tin_opener/application.js?type=application/javascript&pipeline=self&id=8646ffb052d3350fdd829111f84d93e06b1323fe51263d6e0371a752db0c4b83:ET
@@ -0,0 +1,3 @@
1
+ [o:Set:
2
+ @hash{
3
+ I"environment-version:ETTI"environment-paths;TTI">processors:type=text/css&file_type=text/css&pipeline=self;TTI"`file-digest:///Users/david/src/tin_opener/app/assets/stylesheets/tin_opener/application.css;TTI"Pfile-digest:///Users/david/src/tin_opener/app/assets/stylesheets/tin_opener;TT
@@ -0,0 +1 @@
1
+ I"�/Users/david/src/tin_opener/app/assets/stylesheets/tin_opener/application.css?type=text/css&id=e0d258f1309015abd0e70fc38eefe1846f83b97145c23048917e948b860c04c1:ET
@@ -0,0 +1 @@
1
+ "%Ѱč@�����6H�uZoX�Z�gbh0W��V
@@ -0,0 +1 @@
1
+ "%�W\�yho9S���ƫ˥��)|�~���(���
@@ -0,0 +1 @@
1
+ "%��Rm�v�S3.��O�L���ڹc�ƕq�=_j�
@@ -0,0 +1,2 @@
1
+ [o:Set:
2
+ @hash{ I"environment-version:ETTI"environment-paths;TTI"0processors:type=text/css&file_type=text/css;TTI"`file-digest:///Users/david/src/tin_opener/app/assets/stylesheets/tin_opener/application.css;TTI">processors:type=text/css&file_type=text/css&pipeline=self;TTI"Pfile-digest:///Users/david/src/tin_opener/app/assets/stylesheets/tin_opener;TT
@@ -0,0 +1,3 @@
1
+ [o:Set:
2
+ @hash{
3
+ I"environment-version:ETTI"environment-paths;TTI"Zprocessors:type=application/javascript&file_type=application/javascript&pipeline=self;TTI"_file-digest:///Users/david/src/tin_opener/app/assets/javascripts/tin_opener/application.js;TTI"Pfile-digest:///Users/david/src/tin_opener/app/assets/javascripts/tin_opener;TT
@@ -0,0 +1,2 @@
1
+ [o:Set:
2
+ @hash{ I"environment-version:ETTI"environment-paths;TTI"Lprocessors:type=application/javascript&file_type=application/javascript;TTI"_file-digest:///Users/david/src/tin_opener/app/assets/javascripts/tin_opener/application.js;TTI"Zprocessors:type=application/javascript&file_type=application/javascript&pipeline=self;TTI"Pfile-digest:///Users/david/src/tin_opener/app/assets/javascripts/tin_opener;TT
data/spec/examples.txt CHANGED
@@ -1,7 +1,17 @@
1
- example_id | status | run_time |
2
- ------------------------------------------------ | ------ | --------------- |
3
- ./spec/models/tin_opener/data_set_spec.rb[1:1:1] | passed | 0.00749 seconds |
4
- ./spec/models/tin_opener/data_set_spec.rb[1:1:2] | passed | 0.01992 seconds |
5
- ./spec/models/tin_opener/data_set_spec.rb[1:1:3] | passed | 0.00673 seconds |
6
- ./spec/models/tin_opener/data_set_spec.rb[1:2:1] | passed | 0.3546 seconds |
7
- ./spec/models/tin_opener/record_spec.rb[1:1] | passed | 0.02572 seconds |
1
+ example_id | status | run_time |
2
+ -------------------------------------------------------- | ------- | --------------- |
3
+ ./spec/features/tin_opener/data_sets_spec.rb[1:1] | passed | 0.28634 seconds |
4
+ ./spec/features/tin_opener/data_sets_spec.rb[1:2] | passed | 0.06256 seconds |
5
+ ./spec/features/tin_opener/data_sets_spec.rb[1:3] | passed | 0.05896 seconds |
6
+ ./spec/features/tin_opener/data_sets_spec.rb[1:4] | passed | 0.57596 seconds |
7
+ ./spec/lib/tin_opener/data_file_processor_spec.rb[1:1:1] | passed | 0.04272 seconds |
8
+ ./spec/lib/tin_opener/data_file_processor_spec.rb[1:1:2] | passed | 0.04098 seconds |
9
+ ./spec/lib/tin_opener/data_file_processor_spec.rb[1:2:1] | passed | 5.12 seconds |
10
+ ./spec/lib/tin_opener/data_file_processor_spec.rb[1:2:2] | passed | 5.11 seconds |
11
+ ./spec/lib/tin_opener/data_file_processor_spec.rb[1:3:1] | pending | 0.00002 seconds |
12
+ ./spec/lib/tin_opener/data_file_processor_spec.rb[1:4:1] | pending | 0.00001 seconds |
13
+ ./spec/models/tin_opener/data_set_spec.rb[1:1:1] | passed | 0.00609 seconds |
14
+ ./spec/models/tin_opener/data_set_spec.rb[1:1:2] | passed | 0.02288 seconds |
15
+ ./spec/models/tin_opener/data_set_spec.rb[1:1:3] | passed | 0.00618 seconds |
16
+ ./spec/models/tin_opener/data_set_spec.rb[1:2:1] | passed | 0.33882 seconds |
17
+ ./spec/models/tin_opener/record_spec.rb[1:1] | passed | 0.02407 seconds |
@@ -1,5 +1,5 @@
1
1
  FactoryGirl.define do
2
- factory :tin_opener_data_set, class: 'TinOpener::DataSet' do
2
+ factory :data_set, class: 'TinOpener::DataSet' do
3
3
  sequence(:name) { |n| "Data Set ##{n}" }
4
4
  headers { { id: 'Integer', text: 'String' } }
5
5
  end
@@ -0,0 +1,6 @@
1
+ FactoryGirl.define do
2
+ factory :record, class: 'TinOpener::Record' do
3
+ data_set
4
+ row_data { { id: 1, text: "A value"} }
5
+ end
6
+ end
@@ -0,0 +1,61 @@
1
+ require 'rails_helper'
2
+
3
+ module TinOpener
4
+ RSpec.feature "Data sets", type: :feature do
5
+
6
+ let(:data_file) { File.join('spec', 'fixtures', 'data_sets', 'bici_disponibilidad.csv') }
7
+ let(:data_set) { create :data_set }
8
+
9
+ scenario "Lists data sets" do
10
+ data_sets = 3.times.map { create :data_set }
11
+
12
+ visit data_sets_path
13
+
14
+ data_sets.each do |data_set|
15
+ expect(page).to have_content(data_set.name)
16
+ end
17
+ end
18
+
19
+ scenario "Deletes a data set" do
20
+ data_set
21
+
22
+ visit data_sets_path
23
+
24
+ expect(page).to have_content(data_set.name)
25
+
26
+ expect do
27
+ click_on 'Destroy'
28
+ end.to change { DataSet.count }.by(-1)
29
+
30
+ expect(page).not_to have_content(data_set.name)
31
+ end
32
+
33
+ scenario "Updates a data set" do
34
+ data_set
35
+
36
+ visit data_sets_path
37
+
38
+ click_link 'Edit'
39
+
40
+ fill_in 'data_set[name]', with: 'A new fancy name'
41
+ click_on 'Update Data set'
42
+
43
+ expect(page).to have_content('A new fancy name')
44
+ end
45
+
46
+ scenario "Adds a new data set from a CSV data source" do
47
+ visit data_sets_path
48
+
49
+ fill_in 'data_set[name]', with: 'Oh yes this IS a new one'
50
+ attach_file 'data_set[data_file]', data_file
51
+
52
+ expect do
53
+ expect do
54
+ click_on 'Create Data set'
55
+ end.to change { DataSet.count }.by(1)
56
+ end.to change { Record.count }.by(70)
57
+
58
+ expect(page).to have_content('Oh yes this IS a new one')
59
+ end
60
+ end
61
+ end