Rubeuler 0.0.6 → 0.1.0

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