optimus-ep 0.10.3 → 0.10.4

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.
@@ -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" }