Rubeuler 0.0.6 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -3,18 +3,23 @@ require 'benchmark'
3
3
  module Rubeuler
4
4
  include Solution
5
5
 
6
- class Problem < ::Rubeuler::Base
6
+ class Problem
7
+ include PayDirt::UseCase
8
+
7
9
  def initialize(options)
8
10
  load_options(:number, :answer, options)
11
+
9
12
  raise TypeError, ':answer should be a string' unless @answer.is_a?(String)
10
13
  raise TypeError, ':number should be an integer' unless @number.is_a?(Fixnum)
14
+
15
+
11
16
  end
12
17
 
13
18
  def execute!
14
19
  time = timed_answer
15
20
  true_or_false = @data == solution ? true : false
16
21
 
17
- return Rubeuler::Result.new(success: true_or_false, problem: @number, data: data, runtime: time)
22
+ return PayDirt::Result.new(success: true_or_false, problem: @number, data: data, runtime: time)
18
23
  end
19
24
 
20
25
  private
@@ -1,3 +1,3 @@
1
1
  module Rubeuler
2
- VERSION = "0.0.6"
2
+ VERSION = "0.1.0"
3
3
  end
data/lib/rubeuler.rb CHANGED
@@ -1,6 +1,5 @@
1
1
  require "rubeuler/version"
2
- require "rubeuler/result"
3
- require "rubeuler/base"
4
2
  require "rubeuler/solution"
5
3
  require "rubeuler/problem"
6
-
4
+ require "pay_dirt/use_case"
5
+ require "pay_dirt/result"
data/rubeuler.gemspec CHANGED
@@ -16,8 +16,9 @@ Gem::Specification.new do |s|
16
16
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
17
17
  s.require_paths = ["lib"]
18
18
 
19
- s.add_development_dependency "minitest"
19
+ s.add_runtime_dependency "pay_dirt"
20
20
 
21
+ s.add_development_dependency "minitest"
21
22
  s.add_development_dependency "rake"
22
23
  s.add_development_dependency "pry"
23
24
  end
@@ -1,7 +1,8 @@
1
1
  # Testing frameworks
2
- require "turn"
3
2
  require "minitest/spec"
4
3
  require "minitest/autorun"
4
+ require "pay_dirt/use_case"
5
+ require "pay_dirt/result"
5
6
 
6
7
  # Debugger
7
8
  require "pry"
@@ -3,7 +3,7 @@ require "minitest_helper"
3
3
  describe Rubeuler::Problem do
4
4
  describe ".execute!" do
5
5
  it "returns a result" do
6
- Rubeuler::Problem.new(number: 1, answer: "0").execute!.must_be_kind_of(Rubeuler::Result)
6
+ Rubeuler::Problem.new(number: 1, answer: "0").execute!.must_be_kind_of(PayDirt::Result)
7
7
  end
8
8
 
9
9
  it "produces an error if :number is not provided" do
@@ -44,7 +44,7 @@ describe Rubeuler::Problem do
44
44
  describe "#data" do
45
45
  it "can track extra instance_variables" do
46
46
  res = Rubeuler::Problem.new(number: 1, answer: "@foo, @baz = :bar, :bang; 111*0", tracked: {foo: "@foo", baz: "@bang"}).execute!
47
- res.must_be_kind_of(Rubeuler::Result)
47
+ res.must_be_kind_of(PayDirt::Result)
48
48
  res.data.keys.include?(:foo).must_equal(true)
49
49
  res.data.keys.include?(:baz).must_equal(true)
50
50
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: Rubeuler
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,8 +9,24 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-09-25 00:00:00.000000000 Z
12
+ date: 2013-04-29 00:00:00.000000000 Z
13
13
  dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: pay_dirt
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
14
30
  - !ruby/object:Gem::Dependency
15
31
  name: minitest
16
32
  requirement: !ruby/object:Gem::Requirement
@@ -71,9 +87,7 @@ files:
71
87
  - README.md
72
88
  - Rakefile
73
89
  - lib/rubeuler.rb
74
- - lib/rubeuler/base.rb
75
90
  - lib/rubeuler/problem.rb
76
- - lib/rubeuler/result.rb
77
91
  - lib/rubeuler/solution.rb
78
92
  - lib/rubeuler/version.rb
79
93
  - rubeuler.gemspec
@@ -92,20 +106,23 @@ required_ruby_version: !ruby/object:Gem::Requirement
92
106
  - - ! '>='
93
107
  - !ruby/object:Gem::Version
94
108
  version: '0'
109
+ segments:
110
+ - 0
111
+ hash: 384433139
95
112
  required_rubygems_version: !ruby/object:Gem::Requirement
96
113
  none: false
97
114
  requirements:
98
115
  - - ! '>='
99
116
  - !ruby/object:Gem::Version
100
117
  version: '0'
118
+ segments:
119
+ - 0
120
+ hash: 384433139
101
121
  requirements: []
102
122
  rubyforge_project:
103
- rubygems_version: 1.8.21
123
+ rubygems_version: 1.8.25
104
124
  signing_key:
105
125
  specification_version: 3
106
126
  summary: Evaluates whether a block produces a predefined response. Returns diagnostics
107
127
  if the block's return value was expected.
108
- test_files:
109
- - test/minitest_helper.rb
110
- - test/rubeuler/problem_test.rb
111
- - test/rubeuler/solution_test.rb
128
+ test_files: []
data/lib/rubeuler/base.rb DELETED
@@ -1,13 +0,0 @@
1
- module Rubeuler
2
- class Base
3
- def load_option(option, options)
4
- instance_variable_set("@#{option}", options.fetch(option.to_sym) { raise "Missing required option: #{option}" } )
5
- end
6
-
7
- def load_options(*option_names, options)
8
- option_names.each{|o| load_option(o, options) }
9
-
10
- option_names << instance_variable_set("@tracked", options[:tracked]) if options[:tracked]
11
- end
12
- end
13
- end
@@ -1,21 +0,0 @@
1
- module Rubeuler
2
- class Result
3
- def initialize(options)
4
- @success = options[:success]
5
- @data = options[:data]
6
- @runtime = options[:runtime]
7
- end
8
-
9
- def data
10
- @data
11
- end
12
-
13
- def runtime
14
- @runtime
15
- end
16
-
17
- def successful?
18
- !!@success
19
- end
20
- end
21
- end