Rubeuler 0.1.0 → 0.1.1
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.
- checksums.yaml +7 -0
- data/.gitignore +15 -0
- data/.travis.yml +9 -0
- data/README.md +8 -4
- data/lib/rubeuler/problem.rb +5 -5
- data/lib/rubeuler/version.rb +1 -1
- data/lib/rubeuler.rb +2 -2
- data/rubeuler.gemspec +1 -0
- data/test/minitest_helper.rb +2 -1
- metadata +32 -32
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: b6ce4946cdce698b52c47d9b924d941f9c9c1e8a
|
4
|
+
data.tar.gz: 2b065d1fc2131f42b3ded032327b22356cf0911c
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 5f8f851ea59a817d1bd6a274656cab654e7ae84748aa95dafe18538044d21572023861b55c6684d85c8c34bddcb6e012562a08d3360621e720231c6ffb29a5e7
|
7
|
+
data.tar.gz: 1b008887d7c400d6759ee4a4119db4f5dd459674adff2f565bf2f06f83e75dda4ceed50afd7b86c7ae122ddef062b949df9055e56307d08dd7bf9389325850e0
|
data/.gitignore
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
# See http://help.github.com/ignore-files/ for more about ignoring files.
|
2
|
+
#
|
3
|
+
# If you find yourself ignoring temporary files generated by your text editor
|
4
|
+
# or operating system, you probably want to add a global ignore instead:
|
5
|
+
# git config --global core.excludesfile ~/.gitignore_global
|
6
|
+
|
7
|
+
# Ignore bundler config
|
8
|
+
.ruby-version
|
9
|
+
.ruby-gemset
|
10
|
+
|
11
|
+
Gemfile.lock
|
12
|
+
/.bundle
|
13
|
+
|
14
|
+
*.sw?
|
15
|
+
.sw?
|
data/.travis.yml
ADDED
data/README.md
CHANGED
@@ -1,12 +1,16 @@
|
|
1
|
-
Rubeuler
|
1
|
+
Rubeuler
|
2
2
|
========
|
3
|
+

|
4
|
+
|
5
|
+
[](http://badge.fury.io/rb/Rubeuler)[](https://travis-ci.org/rthbound/rubeuler) [](https://coveralls.io/r/rthbound/rubeuler?branch=master)[](https://codeclimate.com/github/rthbound/rubeuler)
|
6
|
+
|
3
7
|
|
4
8
|
For Rubyists who enjoy solving and optimizing [Project Euler](http://www.projecteuler.net) problems. It uses `Benchmark` so be sure to use this with Ruby >= 1.9.3
|
5
9
|
|
6
10
|
Installation
|
7
11
|
------------
|
8
12
|
|
9
|
-
Rubeuler is a Ruby gem, and can be installed using `gem install
|
13
|
+
Rubeuler is a Ruby gem, and can be installed using `gem install Rubeuler`
|
10
14
|
|
11
15
|
Usage
|
12
16
|
-----
|
@@ -20,7 +24,7 @@ Rubeuler::Problem.new(number: 1, answer: "7*3*2").execute!
|
|
20
24
|
|
21
25
|
Extra options (just one right now):
|
22
26
|
```ruby
|
23
|
-
answer = "@loop_count = 0; 1001.times do; @loop_count += 1; end; result = 42"
|
27
|
+
answer = "@loop_count = 0; 1001.times do; @loop_count += 1; end; result = 42"
|
24
28
|
|
25
29
|
# Use :tracked option to track extra variables included in your algorithm
|
26
30
|
Rubeuler::Problem.new(number: 1, answer: answer, tracked: {loop_count: "@loop_count"}).execute!
|
@@ -35,4 +39,4 @@ __NOTE__: The last expression in the `:answer` argument will be compared to solu
|
|
35
39
|
|
36
40
|
### Pull requests/issues
|
37
41
|
|
38
|
-
Please submit any
|
42
|
+
Please submit any pull requests through GitHub. Please report any problems with the issue tracker! Thanks.
|
data/lib/rubeuler/problem.rb
CHANGED
@@ -11,20 +11,18 @@ module Rubeuler
|
|
11
11
|
|
12
12
|
raise TypeError, ':answer should be a string' unless @answer.is_a?(String)
|
13
13
|
raise TypeError, ':number should be an integer' unless @number.is_a?(Fixnum)
|
14
|
-
|
15
|
-
|
16
14
|
end
|
17
15
|
|
18
16
|
def execute!
|
19
17
|
time = timed_answer
|
20
18
|
true_or_false = @data == solution ? true : false
|
21
19
|
|
22
|
-
return PayDirt::Result.new(success:
|
20
|
+
return PayDirt::Result.new(success: true, problem: @number, data: data)
|
23
21
|
end
|
24
22
|
|
25
23
|
private
|
26
24
|
def timed_answer
|
27
|
-
|
25
|
+
@benchmark = Benchmark.measure { @data = instance_eval(@answer.gsub("\n",";"))}.real
|
28
26
|
end
|
29
27
|
|
30
28
|
def solution
|
@@ -33,8 +31,10 @@ module Rubeuler
|
|
33
31
|
|
34
32
|
def data
|
35
33
|
result_data = {
|
36
|
-
solution: @data
|
34
|
+
solution: @data,
|
35
|
+
benchmark: @benchmark
|
37
36
|
}
|
37
|
+
|
38
38
|
@tracked.each { |k,v| result_data.merge!({ k => instance_eval(v.to_s) }) } if @tracked
|
39
39
|
|
40
40
|
result_data
|
data/lib/rubeuler/version.rb
CHANGED
data/lib/rubeuler.rb
CHANGED
data/rubeuler.gemspec
CHANGED
data/test/minitest_helper.rb
CHANGED
metadata
CHANGED
@@ -1,87 +1,94 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: Rubeuler
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
5
|
-
prerelease:
|
4
|
+
version: 0.1.1
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Tad Hosford
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-
|
11
|
+
date: 2013-06-10 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: pay_dirt
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - '>='
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '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: '0'
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: minitest
|
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
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: rake
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
|
-
- -
|
45
|
+
- - '>='
|
52
46
|
- !ruby/object:Gem::Version
|
53
47
|
version: '0'
|
54
48
|
type: :development
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
|
-
- -
|
52
|
+
- - '>='
|
60
53
|
- !ruby/object:Gem::Version
|
61
54
|
version: '0'
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: pry
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
|
-
- -
|
59
|
+
- - '>='
|
68
60
|
- !ruby/object:Gem::Version
|
69
61
|
version: '0'
|
70
62
|
type: :development
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
|
-
- -
|
66
|
+
- - '>='
|
76
67
|
- !ruby/object:Gem::Version
|
77
68
|
version: '0'
|
78
|
-
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: coveralls
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - '>='
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - '>='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
description: ' For Rubyists who love ProjectEuler.net '
|
79
84
|
email:
|
80
85
|
- tad.hosford@gmail.com
|
81
86
|
executables: []
|
82
87
|
extensions: []
|
83
88
|
extra_rdoc_files: []
|
84
89
|
files:
|
90
|
+
- .gitignore
|
91
|
+
- .travis.yml
|
85
92
|
- CHANGELOG.md
|
86
93
|
- Gemfile
|
87
94
|
- README.md
|
@@ -96,33 +103,26 @@ files:
|
|
96
103
|
- test/rubeuler/solution_test.rb
|
97
104
|
homepage: http://github.com/rthbound/rubeuler
|
98
105
|
licenses: []
|
106
|
+
metadata: {}
|
99
107
|
post_install_message:
|
100
108
|
rdoc_options: []
|
101
109
|
require_paths:
|
102
110
|
- lib
|
103
111
|
required_ruby_version: !ruby/object:Gem::Requirement
|
104
|
-
none: false
|
105
112
|
requirements:
|
106
|
-
- -
|
113
|
+
- - '>='
|
107
114
|
- !ruby/object:Gem::Version
|
108
115
|
version: '0'
|
109
|
-
segments:
|
110
|
-
- 0
|
111
|
-
hash: 384433139
|
112
116
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
117
|
requirements:
|
115
|
-
- -
|
118
|
+
- - '>='
|
116
119
|
- !ruby/object:Gem::Version
|
117
120
|
version: '0'
|
118
|
-
segments:
|
119
|
-
- 0
|
120
|
-
hash: 384433139
|
121
121
|
requirements: []
|
122
122
|
rubyforge_project:
|
123
|
-
rubygems_version:
|
123
|
+
rubygems_version: 2.0.3
|
124
124
|
signing_key:
|
125
|
-
specification_version:
|
125
|
+
specification_version: 4
|
126
126
|
summary: Evaluates whether a block produces a predefined response. Returns diagnostics
|
127
127
|
if the block's return value was expected.
|
128
128
|
test_files: []
|