euler-manager 0.0.2 → 0.0.3

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: 76b56040f7e60cad481c1f83cf9ede91bebd04b0
4
- data.tar.gz: 8fdd7e34637113b3c5ada134d787dff75a100347
3
+ metadata.gz: 447013a7c859092f978f3b6a4dbefc6a14f4e2fb
4
+ data.tar.gz: 0b907b27f22ace75cf8224fee337594388528342
5
5
  SHA512:
6
- metadata.gz: 45b390c87692383b42241d33b403d9b96ecce95ae1583fa0b48d5b7d6fe96a88a338daae62100b652423983283705824dc74dcad4c7647cfb11fccdb99bf693c
7
- data.tar.gz: 95596111e0137c1c66c75dae94eb37f26738044f98385c313dfdfcef48fbcbc4f6f268138a47f8faff830e10ba767f62d85220ba1aba97765b952d39eafd9fb7
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
@@ -1,4 +1,5 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- # Specify your gem's dependencies in euler.gemspec
4
3
  gemspec
4
+
5
+ gem "codeclimate-test-reporter", :group => :test, :require => nil
data/README.md CHANGED
@@ -1,26 +1,37 @@
1
1
  # Euler Manager
2
2
 
3
+ [![Code Climate](https://codeclimate.com/github/yaworsw/euler-manager.png)](https://codeclimate.com/github/yaworsw/euler-manager) [![Code Climate](https://codeclimate.com/github/yaworsw/euler-manager/coverage.png)](https://codeclimate.com/github/yaworsw/euler-manager) [![Build Status](https://travis-ci.org/yaworsw/euler-manager.svg?branch=master)](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 4 commands:
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
- `new` initializes a solution.
20
+ `desc` shows a problem's prompt.
12
21
 
13
22
  $ euler desc [problem_id]
14
23
 
15
- `desc` shows a problem's prompt.
24
+ `run` executes a solution.
16
25
 
17
26
  $ euler run [problem_id] [language]
18
27
 
19
- `run` executes a solution.
28
+ `test` runs a solution to see if it is correct.
20
29
 
21
30
  $ euler test [problem_id] [language]
22
31
 
23
- `test` runs a solution to see if it is correct.
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
- TODO
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
- TODO
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.
@@ -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'
@@ -53,7 +53,7 @@ module Euler
53
53
 
54
54
  # Returns the result of running this solution.
55
55
  def run
56
- @result ||= language_object.run(self).gsub(/\r?\n/, '')
56
+ @result ||= (language_object.run(self) || '').gsub(/\r?\n/, '')
57
57
  end
58
58
 
59
59
  # Alias for +run+.
data/lib/euler/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Euler
2
- VERSION = '0.0.2'
2
+ VERSION = '0.0.3'
3
3
  end
data/spec/spec_helper.rb CHANGED
@@ -1,3 +1,6 @@
1
+ require "codeclimate-test-reporter"
2
+ CodeClimate::TestReporter.start
3
+
1
4
  $LOAD_PATH << File.join(File.dirname(__FILE__), '..', 'lib')
2
5
  require 'euler'
3
6
  require 'fakefs/spec_helpers'
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.2
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-04-17 00:00:00.000000000 Z
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
- - ".gitignore"
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: '0'
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: []