euler-manager 0.0.2 → 0.0.3
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 +4 -4
- data/.travis.yml +11 -0
- data/Gemfile +2 -1
- data/README.md +70 -7
- data/euler-manager.gemspec +2 -0
- data/lib/euler/solution.rb +1 -1
- data/lib/euler/version.rb +1 -1
- data/spec/spec_helper.rb +3 -0
- metadata +23 -22
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 447013a7c859092f978f3b6a4dbefc6a14f4e2fb
|
4
|
+
data.tar.gz: 0b907b27f22ace75cf8224fee337594388528342
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ba1398de991d32d38e0636e22918285764e2d81e57a2f577429935b48fe3d72e457f5158bcc0dc264fbc51358dad4fddee9be24f576f036eb3470412d2ca2c8d
|
7
|
+
data.tar.gz: 3c0404df093b431cf63efece09ccca26fe2c775e32b308a1cfe23ddc7da9278a6b514406cca756f486ecdc3b6b2fa23a2382cd16454f9098b14386f78ec865fe
|
data/.travis.yml
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
script: 'bundle exec rspec'
|
2
|
+
|
3
|
+
rvm:
|
4
|
+
- 1.9.3
|
5
|
+
- 2.0.0
|
6
|
+
- 2.1.1
|
7
|
+
|
8
|
+
addons:
|
9
|
+
code_climate:
|
10
|
+
repo_token:
|
11
|
+
secure: "SPOEaP7C8L3IBezo3ocVnrLevrOT5CRu4A1kX83nvQDWtApnkHp0C9pRBTqS5pP/LEVbnts7EQjmlXLVcp7K4daaAcbkqAN/B8+TPXN7CZKoge4xylSzeRTRJ8g7sh7bk4ypxuTY0s5YJWhwz0JdDrObW3ZtFr1dlL5tAXnH3uA="
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,26 +1,37 @@
|
|
1
1
|
# Euler Manager
|
2
2
|
|
3
|
+
[](https://codeclimate.com/github/yaworsw/euler-manager) [](https://codeclimate.com/github/yaworsw/euler-manager) [](https://travis-ci.org/yaworsw/euler-manager)
|
4
|
+
|
3
5
|
Manage [Project Euler](https://projecteuler.net/) problems form the command line.
|
4
6
|
|
7
|
+
## Installing
|
8
|
+
|
9
|
+
$ gem install euler-manager
|
10
|
+
|
5
11
|
## Usage
|
6
12
|
|
7
|
-
Euler manager has
|
13
|
+
Euler manager has 5 commands:
|
14
|
+
|
15
|
+
`new` initializes a solution. This typically means creating the directory for
|
16
|
+
the solution and populating it with some files.
|
8
17
|
|
9
18
|
$ euler new [problem_id] [language]
|
10
19
|
|
11
|
-
`
|
20
|
+
`desc` shows a problem's prompt.
|
12
21
|
|
13
22
|
$ euler desc [problem_id]
|
14
23
|
|
15
|
-
`
|
24
|
+
`run` executes a solution.
|
16
25
|
|
17
26
|
$ euler run [problem_id] [language]
|
18
27
|
|
19
|
-
`
|
28
|
+
`test` runs a solution to see if it is correct.
|
20
29
|
|
21
30
|
$ euler test [problem_id] [language]
|
22
31
|
|
23
|
-
`
|
32
|
+
`test_all` runs all of your solutions to see if they are correct.
|
33
|
+
|
34
|
+
$ euler test_all
|
24
35
|
|
25
36
|
If you do not pass a problem id and language to the `desc`, `run`, or `test`
|
26
37
|
commands Euler manager will use the directory it was invoked from to try to
|
@@ -28,10 +39,62 @@ guess which problem id and language to use. So if you want to run the ruby
|
|
28
39
|
solution for problem number 1 then you can just run `$ euelr run` from `1/ruby`
|
29
40
|
(by default) and Euler manager will run the ruby solution for problem 1.
|
30
41
|
|
42
|
+
## Supported Programming Languages
|
43
|
+
|
44
|
+
- coffeescript
|
45
|
+
- javascript
|
46
|
+
- python
|
47
|
+
- ruby
|
48
|
+
- scala
|
49
|
+
|
31
50
|
## Configuring Euler Manager
|
32
51
|
|
33
|
-
|
52
|
+
To configure the Euler manager place an `Eulerfile.rb` in the root of your
|
53
|
+
project. Typically you can just keep this file empty but if you want to change
|
54
|
+
any of the Euler manager's defaults or register an additional language you would
|
55
|
+
do that here.
|
56
|
+
|
57
|
+
See `/example/Eulerfile.rb` for an example `Eulerfile.rb`.
|
34
58
|
|
35
59
|
### Registering Additional Languages
|
36
60
|
|
37
|
-
|
61
|
+
If Euler manager does not support your programming language of choice by default
|
62
|
+
or you would like to change how a supported language functions then you use the
|
63
|
+
`Euler.register_language` method. This method accepts the name of the language
|
64
|
+
you are registering and a class definition for that language.
|
65
|
+
|
66
|
+
Feel free to send a pull request with additional languages.
|
67
|
+
|
68
|
+
#### Example
|
69
|
+
|
70
|
+
Euler.register_language('ruby', Class.new do
|
71
|
+
|
72
|
+
# Run the solution
|
73
|
+
def run solution
|
74
|
+
`ruby #{file_path(solution)}`
|
75
|
+
end
|
76
|
+
|
77
|
+
# Copy the template into the solution's directory
|
78
|
+
def init solution
|
79
|
+
FileUtils.cp(template_path, file_path(solution))
|
80
|
+
end
|
81
|
+
|
82
|
+
private
|
83
|
+
|
84
|
+
# Returns the path to the solution
|
85
|
+
def file_path solution
|
86
|
+
"#{solution.dir}/#{solution.problem.id}.rb"
|
87
|
+
end
|
88
|
+
|
89
|
+
# Returns the path to the ruby template
|
90
|
+
def template_path
|
91
|
+
"#{File.dirname(__FILE__)}/templates/ruby.rb"
|
92
|
+
end
|
93
|
+
|
94
|
+
end)
|
95
|
+
|
96
|
+
The `init` method of the language's class is optional but he `run` method is
|
97
|
+
required.
|
98
|
+
|
99
|
+
For more examples of registering languages see the `/lib/euler/languages`
|
100
|
+
directory or the `Eulerfile.rb` in the `/example` directory.
|
data/euler-manager.gemspec
CHANGED
@@ -18,6 +18,8 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ['lib']
|
20
20
|
|
21
|
+
spec.required_ruby_version = '>= 1.9.3'
|
22
|
+
|
21
23
|
spec.add_dependency 'commander'
|
22
24
|
spec.add_dependency 'colorize'
|
23
25
|
spec.add_dependency 'peach'
|
data/lib/euler/solution.rb
CHANGED
data/lib/euler/version.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,125 +1,125 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: euler-manager
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- William Yaworsky
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-05-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: commander
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - '>='
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - '>='
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: colorize
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - '>='
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - '>='
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: peach
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - '>='
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - '>='
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: bundler
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ~>
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '1.5'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - ~>
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '1.5'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rake
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - '>='
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '0'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - '>='
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: rspec
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- -
|
87
|
+
- - '>='
|
88
88
|
- !ruby/object:Gem::Version
|
89
89
|
version: '0'
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- -
|
94
|
+
- - '>='
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: fakefs
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
|
-
- -
|
101
|
+
- - ~>
|
102
102
|
- !ruby/object:Gem::Version
|
103
103
|
version: 0.5.2
|
104
104
|
type: :development
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
|
-
- -
|
108
|
+
- - ~>
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: 0.5.2
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: nokogiri
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
|
-
- -
|
115
|
+
- - '>='
|
116
116
|
- !ruby/object:Gem::Version
|
117
117
|
version: '0'
|
118
118
|
type: :development
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
|
-
- -
|
122
|
+
- - '>='
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '0'
|
125
125
|
description:
|
@@ -130,7 +130,8 @@ executables:
|
|
130
130
|
extensions: []
|
131
131
|
extra_rdoc_files: []
|
132
132
|
files:
|
133
|
-
-
|
133
|
+
- .gitignore
|
134
|
+
- .travis.yml
|
134
135
|
- Gemfile
|
135
136
|
- LICENSE.txt
|
136
137
|
- README.md
|
@@ -637,12 +638,12 @@ require_paths:
|
|
637
638
|
- lib
|
638
639
|
required_ruby_version: !ruby/object:Gem::Requirement
|
639
640
|
requirements:
|
640
|
-
- -
|
641
|
+
- - '>='
|
641
642
|
- !ruby/object:Gem::Version
|
642
|
-
version:
|
643
|
+
version: 1.9.3
|
643
644
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
644
645
|
requirements:
|
645
|
-
- -
|
646
|
+
- - '>='
|
646
647
|
- !ruby/object:Gem::Version
|
647
648
|
version: '0'
|
648
649
|
requirements: []
|