Skip to content

Commit

Permalink
Access User and Trial in Pipeline through Upload instance
Browse files Browse the repository at this point in the history
  • Loading branch information
dessy committed Nov 4, 2014
1 parent f10aee2 commit f1bafe8
Show file tree
Hide file tree
Showing 5 changed files with 18 additions and 34 deletions.
10 changes: 4 additions & 6 deletions pedometer/models/pipeline.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

class Pipeline

attr_reader :file_path, :user, :trial, :parser, :processor, :analyzer
attr_reader :upload, :parser, :processor, :analyzer

def self.run(upload)
pipeline = Pipeline.new(upload)
Expand All @@ -15,15 +15,13 @@ def self.run(upload)
end

def initialize(upload)
@file_path = upload.file_path
@user = upload.user
@trial = upload.trial
@upload = upload
end

def feed
@parser = Parser.run(File.read(@file_path))
@parser = Parser.run(File.read(@upload.file_path))
@processor = Processor.run(@parser.parsed_data)
@analyzer = Analyzer.run(@processor.filtered_data, @user, @trial)
@analyzer = Analyzer.run(@processor.filtered_data, @upload.user, @upload.trial)
end

end
2 changes: 1 addition & 1 deletion pedometer/models/upload.rb
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ def initialize(file_path = nil, user_params = nil, trial_params = nil)
@trial = Trial.new(*trial_params.values)
@file_path = generate_file_path(user, trial)
else
raise 'GAH!'
raise 'A file path or user and trial parameters must be provided.'
end
end

Expand Down
24 changes: 2 additions & 22 deletions pedometer/test/unit/pipeline_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,21 +9,11 @@ def test_new_combined_data
upload = Upload.find(file_path)
pipeline = Pipeline.run(upload)

assert_equal upload.user, pipeline.user
assert_equal upload.trial, pipeline.trial
assert_equal upload, pipeline.upload
assert pipeline.parser
assert pipeline.processor
assert pipeline.analyzer

assert_equal 'female', pipeline.user.gender
assert_equal 167, pipeline.user.height
assert_equal 70, pipeline.user.stride

assert_equal '1', pipeline.trial.name
assert_equal 100, pipeline.trial.rate
assert_equal 10, pipeline.trial.steps
assert_equal 'bagwalk', pipeline.trial.method

assert_equal 12, pipeline.analyzer.steps
assert_equal 840.0, pipeline.analyzer.distance
assert_equal 8, pipeline.analyzer.time
Expand All @@ -34,21 +24,11 @@ def test_new_separated_data
upload = Upload.find(file_path)
pipeline = Pipeline.run(upload)

assert_equal upload.user, pipeline.user
assert_equal upload.trial, pipeline.trial
assert_equal upload, pipeline.upload
assert pipeline.parser
assert pipeline.processor
assert pipeline.analyzer

assert_equal 'female', pipeline.user.gender
assert_equal 167, pipeline.user.height
assert_equal 70, pipeline.user.stride

assert_equal '2', pipeline.trial.name
assert_equal 100, pipeline.trial.rate
assert_equal 10, pipeline.trial.steps
assert_equal 'bagwalk', pipeline.trial.method

assert_equal 12, pipeline.analyzer.steps
assert_equal 840.0, pipeline.analyzer.distance
assert_equal 9, pipeline.analyzer.time
Expand Down
6 changes: 6 additions & 0 deletions pedometer/test/unit/upload_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,12 @@

class UploadTest < Test::Unit::TestCase

def test_new_no_params
assert_raise_with_message(RuntimeError, 'A file path or user and trial parameters must be provided.') do
Upload.new
end
end

def test_create
temp_file = 'test/data/upload-1.txt'
file_path = 'public/uploads/female-999.0-90.0_foobar-89-10-run.txt'
Expand Down
10 changes: 5 additions & 5 deletions pedometer/views/summary.erb
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,15 @@
<% end %>
<% pipelines.each do |pipeline| %>
<tr>
<td><%= pipeline.trial.name %></td>
<td><%= pipeline.trial.method %></td>
<td><%= pipeline.trial.steps %></td>
<td><%= pipeline.upload.trial.name %></td>
<td><%= pipeline.upload.trial.method %></td>
<td><%= pipeline.upload.trial.steps %></td>
<td><%= pipeline.analyzer.steps %></td>
<td><%= pipeline.analyzer.delta %></td>
<td><%= pipeline.user.gender %></td>
<td><%= pipeline.upload.user.gender %></td>
<% if detail_hidden %>
<td>
<a href=<%= "upload/" + pipeline.file_path %>>Detail</a>
<a href=<%= "upload/" + pipeline.upload.file_path %>>Detail</a>
</td>
<% else %>
<td><%= format_distance(pipeline.analyzer.distance) %></td>
Expand Down

0 comments on commit f1bafe8

Please sign in to comment.