optimus-ep 0.10.3 → 0.10.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 9c5410cc89e909a9dd6b0cb2bdea464d4857de53
4
+ data.tar.gz: 42c34c6d72a81c67bfe9fa8cb66543e9131bb21a
5
+ SHA512:
6
+ metadata.gz: 1d25abe2d6a0fdcb90ffb143c5634dd220abc0b977dfd515228237f127d0c9e59b8376e5349052bbd66927b4e33db2be224de454158caeb573d6a28b82f1c279
7
+ data.tar.gz: c546b812bce35c5ad96bca18c0db1803582b69228327279b993a312b7f5c1c723c75ae2d6cc14e252793f2d8dd096fe1c799eff8eadce69b4b871b2e9d86d746
@@ -0,0 +1,18 @@
1
+ .DS_Store
2
+ *.gem
3
+ *.rbc
4
+ .bundle
5
+ .config
6
+ .yardoc
7
+ Gemfile.lock
8
+ InstalledFiles
9
+ _yardoc
10
+ coverage
11
+ doc/
12
+ lib/bundler/man
13
+ pkg
14
+ rdoc
15
+ spec/reports
16
+ test/tmp
17
+ test/version_tmp
18
+ tmp
data/CHANGELOG CHANGED
@@ -1,3 +1,5 @@
1
+ v 0.10.4. Fix for unicode handling under Ruby 2.x.
2
+
1
3
  v 0.10.3. Oh god oh god I left logging information in now it is gone again.
2
4
 
3
5
  v 0.10.2. Generated counter columns no longer clobber columns with data you want. "Session" is the most common example.
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in optimus-ep.gemspec
4
+ gemspec
@@ -60,18 +60,19 @@ module Optimus
60
60
  converted_f = nil
61
61
  file.rewind
62
62
  datas = file.read(2)
63
- if datas == "\377\376"
63
+ if datas.respond_to? :encode and
64
+ datas == "\xff\xfe".force_encoding("ASCII-8BIT")
65
+ # Ruby 1.9.x -- iconv is deprecated here
64
66
  file_data = file.read
65
- if file_data.respond_to? :encode
66
- # Ruby 1.9.x -- iconv is deprecated here
67
- converted_f = StringIO.new(
68
- file_data.encode("UTF-8", "UTF-16LE"))
69
- else
70
- # Ruby 1.8.x -- no String#encode()
71
- require 'iconv'
72
- converted_f = StringIO.new(
73
- Iconv.conv("UTF-8", "UTF-16LE", file_data))
74
- end
67
+ converted_f = StringIO.new(
68
+ file_data.encode("UTF-8", "UTF-16LE"))
69
+ elsif not datas.respond_to? :encode and
70
+ datas == "\xff\xfe"
71
+ # Ruby 1.8.x -- no String#encode()
72
+ file_data = file.read
73
+ require 'iconv'
74
+ converted_f = StringIO.new(
75
+ Iconv.conv("UTF-8", "UTF-16LE", file_data))
75
76
  else
76
77
  converted_f = file
77
78
  converted_f.rewind
@@ -91,6 +92,9 @@ module Optimus
91
92
  2.times do
92
93
  first_lines << @file.gets
93
94
  end
95
+ unless first_lines[1]
96
+ first_lines = first_lines[0].gsub(/\r\n?/, '\n').split('\n')[0..1]
97
+ end
94
98
  @file.pos = original_pos
95
99
  @type = determine_file_type(first_lines)
96
100
  if @type.nil?
@@ -115,4 +119,4 @@ module Optimus
115
119
  }
116
120
  end
117
121
  end
118
- end
122
+ end
@@ -24,15 +24,28 @@ module Optimus
24
24
  @file = file
25
25
  @skip_lines = options[:skip_lines] || 0
26
26
  @columns = options[:columns]
27
+ @merge_header_lines = options[:merge_header_lines] || 1
27
28
  end
28
29
 
29
30
  def to_optimus
30
- lines = @file.readlines
31
+ lines = @file.read
32
+ lines.gsub!(/\r\n?/,"\n")
33
+ lines = lines.split("\n")
34
+
35
+ raise DamagedFileError.new("File #{@file.path} appears to be empty.") if lines.nil?
36
+
31
37
  @skip_lines.times do
32
38
  lines.shift
33
39
  end
34
40
 
35
- file_columns = lines.shift.split("\t").map {|elt| elt.strip }
41
+ headers = []
42
+
43
+ @merge_header_lines.times do
44
+ l = lines.shift
45
+ headers << l.split("\t",-1).map {|elt| elt.strip }
46
+ end
47
+ file_columns = headers[0].zip(*headers[1..-1]).map{|labels| labels.join(' ')}
48
+
36
49
  expected_size = file_columns.size
37
50
  columns = file_columns
38
51
  data = Optimus::Data.new(columns)
@@ -40,7 +53,7 @@ module Optimus
40
53
  lines.each do |line|
41
54
  current_line += 1
42
55
  row = data.add_row
43
- col_data = line.split("\t").map {|e| e.strip }
56
+ col_data = line.split("\t",-1).map {|e| e.strip }
44
57
  if col_data.size != expected_size
45
58
  raise DamagedFileError.new("In #{@file.path}, line #{current_line} should have #{expected_size} columns but had #{col_data.size}.")
46
59
  end
@@ -1,8 +1,3 @@
1
1
  module Optimus
2
- module VERSION
3
- MAJOR = 0
4
- MINOR = 10
5
- TINY = 3
6
- STRING = [MAJOR, MINOR, TINY].join('.')
7
- end
8
- end
2
+ VERSION = "0.10.4"
3
+ end
@@ -1,36 +1,23 @@
1
1
  # -*- encoding: utf-8 -*-
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'version'
2
5
 
3
- Gem::Specification.new do |s|
4
- s.name = "optimus-ep"
5
- s.version = "0.10.3"
6
+ Gem::Specification.new do |gem|
7
+ gem.name = "optimus-ep"
8
+ gem.version = Optimus::VERSION
9
+ gem.authors = ["Nate Vack"]
10
+ gem.email = ["njvack@wisc.edu"]
11
+ gem.description = %q{Utilities to process behavioral data generated by E-Prime}
12
+ gem.summary = %q{Utilities to process behavioral data generated by E-Prime}
13
+ gem.homepage = "http://github.com/njvack/optimus-ep"
6
14
 
7
- s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
- s.authors = ["Nate Vack"]
9
- s.date = "2013-10-25"
10
- s.description = "Utilities to process behavioral data generated by E-Prime"
11
- s.email = "njvack@wisc.edu"
12
- s.executables = ["eprime2tabfile", "extract_timings"]
13
- s.extra_rdoc_files = ["CHANGELOG", "LICENSE", "README", "README.textile", "bin/eprime2tabfile", "bin/extract_timings", "lib/eprimetab_parser.rb", "lib/excel_parser.rb", "lib/expression_parser/evaluators.rb", "lib/expression_parser/expressions.rb", "lib/log_file_parser.rb", "lib/optimus.rb", "lib/optimus_data.rb", "lib/optimus_reader.rb", "lib/parsed_calculator.rb", "lib/raw_tab_parser.rb", "lib/runners/generic_runner.rb", "lib/runners/yaml_template/option_parser.rb", "lib/runners/yaml_template/runner.rb", "lib/tabfile_parser.rb", "lib/tabfile_writer.rb", "lib/transformers/basic_transformer.rb", "lib/transformers/column_calculator.rb", "lib/transformers/multipasser.rb", "lib/transformers/row_filter.rb", "lib/transformers/timing_extractor.rb", "lib/version.rb", "lib/writers/stimtimes_writer.rb"]
14
- s.files = ["CHANGELOG", "GPL.txt", "LICENSE", "Manifest", "README", "README.textile", "Rakefile", "autotest/discover.rb", "bin/eprime2tabfile", "bin/extract_timings", "lib/eprimetab_parser.rb", "lib/excel_parser.rb", "lib/expression_parser/evaluators.rb", "lib/expression_parser/expressions.rb", "lib/log_file_parser.rb", "lib/optimus.rb", "lib/optimus_data.rb", "lib/optimus_reader.rb", "lib/parsed_calculator.rb", "lib/raw_tab_parser.rb", "lib/runners/generic_runner.rb", "lib/runners/yaml_template/option_parser.rb", "lib/runners/yaml_template/runner.rb", "lib/tabfile_parser.rb", "lib/tabfile_writer.rb", "lib/transformers/basic_transformer.rb", "lib/transformers/column_calculator.rb", "lib/transformers/multipasser.rb", "lib/transformers/row_filter.rb", "lib/transformers/timing_extractor.rb", "lib/version.rb", "lib/writers/stimtimes_writer.rb", "spec/eprimetab_parser_spec.rb", "spec/excel_parser_spec.rb", "spec/expression_parser/evaluators_spec.rb", "spec/expression_parser/expressions_spec.rb", "spec/log_file_parser_spec.rb", "spec/optimus_data_spec.rb", "spec/optimus_reader_spec.rb", "spec/parsed_calculator_spec.rb", "spec/raw_tab_parser_spec.rb", "spec/runners/generic_runner_spec.rb", "spec/runners/yaml_template/option_parser_spec.rb", "spec/runners/yaml_template/runner_spec.rb", "spec/samples/bad_excel_tsv.txt", "spec/samples/corrupt_log_file.txt", "spec/samples/eprime_tsv.txt", "spec/samples/excel_tsv.txt", "spec/samples/optimus_log.txt", "spec/samples/optimus_log_utf16le.txt", "spec/samples/raw_tsv.txt", "spec/samples/short_columns.txt", "spec/samples/sorted_columns.txt", "spec/samples/std_columns.txt", "spec/samples/unknown_type.txt", "spec/samples/unreadable_file", "spec/spec_helper.rb", "spec/tabfile_parser_spec.rb", "spec/tabfile_writer_spec.rb", "spec/transformers/basic_transformer_spec.rb", "spec/transformers/column_calculator_spec.rb", "spec/transformers/multipasser_spec.rb", "spec/transformers/row_filter_spec.rb", "spec/transformers/timing_extractor_spec.rb", "spec/writers/stimtimes_writer_spec.rb", "optimus-ep.gemspec"]
15
- s.homepage = "http://github.com/njvack/optimus-ep"
16
- s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Optimus-ep", "--main", "README"]
17
- s.require_paths = ["lib"]
18
- s.rubyforge_project = "optimus-ep"
19
- s.rubygems_version = "1.8.23"
20
- s.summary = "Utilities to process behavioral data generated by E-Prime"
21
-
22
- if s.respond_to? :specification_version then
23
- s.specification_version = 3
24
-
25
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
26
- s.add_runtime_dependency(%q<rparsec-ruby19>, [">= 1.0"])
27
- s.add_development_dependency(%q<rspec>, [">= 0"])
28
- else
29
- s.add_dependency(%q<rparsec-ruby19>, [">= 1.0"])
30
- s.add_dependency(%q<rspec>, [">= 0"])
31
- end
32
- else
33
- s.add_dependency(%q<rparsec-ruby19>, [">= 1.0"])
34
- s.add_dependency(%q<rspec>, [">= 0"])
35
- end
15
+ gem.files = `git ls-files`.split($/)
16
+ gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
17
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
18
+ gem.require_paths = ["lib"]
19
+
20
+ gem.add_runtime_dependency "rparsec-ruby19", ">=1.0"
21
+ gem.add_development_dependency "rspec"
22
+
36
23
  end
@@ -0,0 +1 @@
1
+ * -text
metadata CHANGED
@@ -1,92 +1,61 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: optimus-ep
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.3
5
- prerelease:
4
+ version: 0.10.4
6
5
  platform: ruby
7
6
  authors:
8
7
  - Nate Vack
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-10-25 00:00:00.000000000 Z
11
+ date: 2015-07-14 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rparsec-ruby19
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - ">="
20
18
  - !ruby/object:Gem::Version
21
19
  version: '1.0'
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - ">="
28
25
  - !ruby/object:Gem::Version
29
26
  version: '1.0'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rspec
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - ">="
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - ">="
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  description: Utilities to process behavioral data generated by E-Prime
47
- email: njvack@wisc.edu
42
+ email:
43
+ - njvack@wisc.edu
48
44
  executables:
49
45
  - eprime2tabfile
50
46
  - extract_timings
51
47
  extensions: []
52
- extra_rdoc_files:
53
- - CHANGELOG
54
- - LICENSE
55
- - README
56
- - README.textile
57
- - bin/eprime2tabfile
58
- - bin/extract_timings
59
- - lib/eprimetab_parser.rb
60
- - lib/excel_parser.rb
61
- - lib/expression_parser/evaluators.rb
62
- - lib/expression_parser/expressions.rb
63
- - lib/log_file_parser.rb
64
- - lib/optimus.rb
65
- - lib/optimus_data.rb
66
- - lib/optimus_reader.rb
67
- - lib/parsed_calculator.rb
68
- - lib/raw_tab_parser.rb
69
- - lib/runners/generic_runner.rb
70
- - lib/runners/yaml_template/option_parser.rb
71
- - lib/runners/yaml_template/runner.rb
72
- - lib/tabfile_parser.rb
73
- - lib/tabfile_writer.rb
74
- - lib/transformers/basic_transformer.rb
75
- - lib/transformers/column_calculator.rb
76
- - lib/transformers/multipasser.rb
77
- - lib/transformers/row_filter.rb
78
- - lib/transformers/timing_extractor.rb
79
- - lib/version.rb
80
- - lib/writers/stimtimes_writer.rb
48
+ extra_rdoc_files: []
81
49
  files:
50
+ - ".gitignore"
82
51
  - CHANGELOG
83
52
  - GPL.txt
53
+ - Gemfile
84
54
  - LICENSE
85
55
  - Manifest
86
56
  - README
87
57
  - README.textile
88
58
  - Rakefile
89
- - autotest/discover.rb
90
59
  - bin/eprime2tabfile
91
60
  - bin/extract_timings
92
61
  - lib/eprimetab_parser.rb
@@ -111,6 +80,7 @@ files:
111
80
  - lib/transformers/timing_extractor.rb
112
81
  - lib/version.rb
113
82
  - lib/writers/stimtimes_writer.rb
83
+ - optimus-ep.gemspec
114
84
  - spec/eprimetab_parser_spec.rb
115
85
  - spec/excel_parser_spec.rb
116
86
  - spec/expression_parser/evaluators_spec.rb
@@ -123,6 +93,7 @@ files:
123
93
  - spec/runners/generic_runner_spec.rb
124
94
  - spec/runners/yaml_template/option_parser_spec.rb
125
95
  - spec/runners/yaml_template/runner_spec.rb
96
+ - spec/samples/.gitattributes
126
97
  - spec/samples/bad_excel_tsv.txt
127
98
  - spec/samples/corrupt_log_file.txt
128
99
  - spec/samples/eprime_tsv.txt
@@ -144,35 +115,61 @@ files:
144
115
  - spec/transformers/row_filter_spec.rb
145
116
  - spec/transformers/timing_extractor_spec.rb
146
117
  - spec/writers/stimtimes_writer_spec.rb
147
- - optimus-ep.gemspec
148
118
  homepage: http://github.com/njvack/optimus-ep
149
119
  licenses: []
120
+ metadata: {}
150
121
  post_install_message:
151
- rdoc_options:
152
- - --line-numbers
153
- - --inline-source
154
- - --title
155
- - Optimus-ep
156
- - --main
157
- - README
122
+ rdoc_options: []
158
123
  require_paths:
159
124
  - lib
160
125
  required_ruby_version: !ruby/object:Gem::Requirement
161
- none: false
162
126
  requirements:
163
- - - ! '>='
127
+ - - ">="
164
128
  - !ruby/object:Gem::Version
165
129
  version: '0'
166
130
  required_rubygems_version: !ruby/object:Gem::Requirement
167
- none: false
168
131
  requirements:
169
- - - ! '>='
132
+ - - ">="
170
133
  - !ruby/object:Gem::Version
171
- version: '1.2'
134
+ version: '0'
172
135
  requirements: []
173
- rubyforge_project: optimus-ep
174
- rubygems_version: 1.8.23
136
+ rubyforge_project:
137
+ rubygems_version: 2.2.2
175
138
  signing_key:
176
- specification_version: 3
139
+ specification_version: 4
177
140
  summary: Utilities to process behavioral data generated by E-Prime
178
- test_files: []
141
+ test_files:
142
+ - spec/eprimetab_parser_spec.rb
143
+ - spec/excel_parser_spec.rb
144
+ - spec/expression_parser/evaluators_spec.rb
145
+ - spec/expression_parser/expressions_spec.rb
146
+ - spec/log_file_parser_spec.rb
147
+ - spec/optimus_data_spec.rb
148
+ - spec/optimus_reader_spec.rb
149
+ - spec/parsed_calculator_spec.rb
150
+ - spec/raw_tab_parser_spec.rb
151
+ - spec/runners/generic_runner_spec.rb
152
+ - spec/runners/yaml_template/option_parser_spec.rb
153
+ - spec/runners/yaml_template/runner_spec.rb
154
+ - spec/samples/.gitattributes
155
+ - spec/samples/bad_excel_tsv.txt
156
+ - spec/samples/corrupt_log_file.txt
157
+ - spec/samples/eprime_tsv.txt
158
+ - spec/samples/excel_tsv.txt
159
+ - spec/samples/optimus_log.txt
160
+ - spec/samples/optimus_log_utf16le.txt
161
+ - spec/samples/raw_tsv.txt
162
+ - spec/samples/short_columns.txt
163
+ - spec/samples/sorted_columns.txt
164
+ - spec/samples/std_columns.txt
165
+ - spec/samples/unknown_type.txt
166
+ - spec/samples/unreadable_file
167
+ - spec/spec_helper.rb
168
+ - spec/tabfile_parser_spec.rb
169
+ - spec/tabfile_writer_spec.rb
170
+ - spec/transformers/basic_transformer_spec.rb
171
+ - spec/transformers/column_calculator_spec.rb
172
+ - spec/transformers/multipasser_spec.rb
173
+ - spec/transformers/row_filter_spec.rb
174
+ - spec/transformers/timing_extractor_spec.rb
175
+ - spec/writers/stimtimes_writer_spec.rb
@@ -1 +0,0 @@
1
- Autotest.add_discovery { "rspec2" }