outcome 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2593a37dfe72ad4289cd5b9fbaa2deee9d8597c0
4
- data.tar.gz: 451a46c5fc3efe5a453ec954cb08fc973d3b1977
3
+ metadata.gz: befe3c2c0b282b581de7fbb15fda29557e81da94
4
+ data.tar.gz: c92ada2f4a554925cd55f8107434ce44dfad7fba
5
5
  SHA512:
6
- metadata.gz: fc495d6f38df0cfaf424ca808ed0e2d57a4d4a6b07815fd8ab14f5fc604698fd2d1c61619bfac5829c790270d90d1c61edfe6abd96e70bfbf07ca526810b0ba1
7
- data.tar.gz: c4b68c86724c68e34c716a11b710d856047497e341902cf3fd84834009b2e2473121ad8515033f02f9f5be3ca475c59fa579a98484800774a94f09cc9f1c05a3
6
+ metadata.gz: 0a4cb88c4440215764a7c141964f62a0080de8fd8be1f964ab2d9f84ec77c5390cd47d30d6e95c4cc94048374a07e79543ed0a74ea58fe000d90231dc332fb84
7
+ data.tar.gz: a9040656a7eef6e595eb7b5e1c96be84361d1835971da2ce5b8eba0c4806cc4b879858943119e652ce09f6d9bc49e6ff73bee6d3f23c93b54db0d17cb3e0160e
@@ -0,0 +1,9 @@
1
+ require 'rake/testtask'
2
+
3
+ Rake::TestTask.new do |t|
4
+ t.libs.push "lib"
5
+ t.pattern = "spec/**/*_spec.rb"
6
+ t.verbose = true
7
+ end
8
+
9
+ task :default => ['test']
@@ -0,0 +1,27 @@
1
+ class Outcome
2
+
3
+ attr_reader :success, :result, :messages, :errors, :warnings
4
+
5
+ # Initializes an Outcome instance
6
+ # @param[Boolean] success indicates if process was successful.
7
+ # @param[Object] result the return value of the process. Anything you want to return
8
+ # @param[Array<String>, optional] messages messages as Array of strings, optional
9
+ # @param[Array<String>, optional] errors errors as Array of strings, optional
10
+ # @param[Array<String>, optional] warnings warnings as Array of strings, optional
11
+ def initialize(success, result, messages = [], errors = [], warnings = [])
12
+ @success, @result, @messages, @errors, @warnings = success, result, messages, errors, warnings
13
+ end
14
+
15
+ def success?
16
+ @success
17
+ end
18
+
19
+ def fail?
20
+ !@success
21
+ end
22
+
23
+ def messages_to_html
24
+ @messages.join('<br/>')
25
+ end
26
+
27
+ end
@@ -0,0 +1,23 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = 'outcome'
7
+ spec.version = '1.0.1'
8
+ spec.authors = ['Jo Hund']
9
+ spec.email = ['jhund@clearcove.ca']
10
+ spec.summary = %q{Outcome provides a standardized container for the outcome of a Ruby process.}
11
+ spec.description = %q{Outcome provides a standardized container for the outcome of a Ruby process.}
12
+ spec.homepage = 'http://rails-recipes.clearcove.ca/pages/outcome.html'
13
+ spec.license = 'MIT'
14
+
15
+ spec.files = `git ls-files -z`.split("\x0")
16
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
17
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
18
+ spec.require_paths = ['lib']
19
+
20
+ spec.add_development_dependency('rake')
21
+ spec.add_development_dependency('minitest')
22
+ spec.add_development_dependency('minitest-spec-expect')
23
+ end
@@ -0,0 +1,44 @@
1
+ # dependencies
2
+ require 'rubygems'
3
+ require 'minitest'
4
+ require 'minitest/autorun'
5
+
6
+ # Gem under test
7
+ require 'outcome'
8
+
9
+ describe Outcome do
10
+
11
+ describe '#initialize and accessors' do
12
+ let(:outcome) { Outcome.new(true, 'result', ['message'], ['error'], ['warning']) }
13
+ [
14
+ [:success, true],
15
+ [:result, 'result'],
16
+ [:messages, ['message']],
17
+ [:errors, ['error']],
18
+ [:warnings, ['warning']],
19
+ ].each do |attr, expectation|
20
+ it "has the #{ attr } attribute" do
21
+ outcome.send(attr).must_equal(expectation)
22
+ end
23
+ end
24
+ end
25
+
26
+ describe '#success' do
27
+ it 'handles true' do
28
+ Outcome.new(true, nil).success?.must_equal true
29
+ end
30
+
31
+ it 'handles false' do
32
+ Outcome.new(false, nil).success?.must_equal false
33
+ end
34
+ end
35
+
36
+ describe '#messages_to_html' do
37
+ it 'returns messages as a string, each on a new line' do
38
+ Outcome.new(true, nil, %w[m1 m2 m3]).messages_to_html.must_equal(
39
+ 'm1<br/>m2<br/>m3'
40
+ )
41
+ end
42
+ end
43
+
44
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: outcome
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jo Hund
@@ -62,6 +62,10 @@ files:
62
62
  - .gitignore
63
63
  - LICENSE
64
64
  - README.md
65
+ - Rakefile
66
+ - lib/outcome.rb
67
+ - outcome.gemspec
68
+ - spec/outcome_spec.rb
65
69
  homepage: http://rails-recipes.clearcove.ca/pages/outcome.html
66
70
  licenses:
67
71
  - MIT
@@ -86,4 +90,5 @@ rubygems_version: 2.2.2
86
90
  signing_key:
87
91
  specification_version: 4
88
92
  summary: Outcome provides a standardized container for the outcome of a Ruby process.
89
- test_files: []
93
+ test_files:
94
+ - spec/outcome_spec.rb