doublesplat 0.0.2 → 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.
- checksums.yaml +4 -4
- data/bin/splat +2 -2
- data/doublesplat.gemspec +7 -4
- data/lib/doublesplat/version.rb +2 -1
- data/lib/doublesplat.rb +70 -3
- metadata +34 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7bb750e16fd9e1f9ba53a67c3d0be5aab70f1799
|
4
|
+
data.tar.gz: f7ef8fe92e54629f17c02f69b048dd9a5a8603a9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 04ce6a1b54173965fac0b776e25a7d36c89eefb95849c581bdb826e024e9ed25f59c26ca03fd55352d89a47a1fbd9ef24693c96765387b92fe9808f51e2f4d72
|
7
|
+
data.tar.gz: e9ed1219ec0bbc216939373bded43987eada82e543ffd0a3837a0a289e26428cce219cf5dab305ba4af25ee2dbb7a8208ea5795ed8cb614f18cc2abc6e956ab5
|
data/bin/splat
CHANGED
data/doublesplat.gemspec
CHANGED
@@ -8,9 +8,9 @@ Gem::Specification.new do |spec|
|
|
8
8
|
spec.version = Doublesplat::VERSION
|
9
9
|
spec.authors = ["Ryan Mulligan"]
|
10
10
|
spec.email = ["mullymulligan@gmail.com"]
|
11
|
-
spec.summary = %q{Battle other ruby coders for real cash using your own editor
|
11
|
+
spec.summary = %q{Battle other ruby coders for real cash using your own editor.}
|
12
12
|
spec.description = %q{}
|
13
|
-
spec.homepage = "http://www.doublesplat.
|
13
|
+
spec.homepage = "http://www.doublesplat.com"
|
14
14
|
spec.license = "MIT"
|
15
15
|
|
16
16
|
spec.files = `git ls-files -z`.split("\x0")
|
@@ -19,8 +19,11 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
21
|
spec.add_dependency "rainbow"
|
22
|
-
spec.add_dependency "
|
23
|
-
spec.add_dependency "
|
22
|
+
spec.add_dependency "rest-client"
|
23
|
+
spec.add_dependency "listen"
|
24
|
+
|
24
25
|
spec.add_development_dependency "bundler", "~> 1.7"
|
25
26
|
spec.add_development_dependency "rake", "~> 10.0"
|
27
|
+
spec.add_development_dependency "byebug"
|
28
|
+
spec.add_development_dependency "awesome_print"
|
26
29
|
end
|
data/lib/doublesplat/version.rb
CHANGED
data/lib/doublesplat.rb
CHANGED
@@ -1,10 +1,77 @@
|
|
1
1
|
require "doublesplat/version"
|
2
2
|
require "rainbow"
|
3
|
+
require "rest-client"
|
4
|
+
require "base64"
|
5
|
+
require "awesome_print"
|
6
|
+
require "listen"
|
3
7
|
|
4
8
|
module Doublesplat
|
5
|
-
class
|
6
|
-
def
|
7
|
-
|
9
|
+
class Challenge
|
10
|
+
def start
|
11
|
+
phrase = ARGV[0] && !ARGV[0].chars.empty? ? ARGV[0].strip : "NONE"
|
12
|
+
response = RestClient.get "#{ENDPOINT}/start/#{phrase}"
|
13
|
+
response = JSON.parse(response)
|
14
|
+
|
15
|
+
if response['success'] == true
|
16
|
+
start_watch phrase
|
17
|
+
else
|
18
|
+
puts Rainbow("Challenge Code Not Found.").red
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def start_watch phrase
|
23
|
+
puts Rainbow("Where would you like to save the challenge file?").blue
|
24
|
+
puts Rainbow("[default: #{`pwd`.strip}/]").blue
|
25
|
+
puts Rainbow("Press Enter to use default or enter new below").blue
|
26
|
+
print Rainbow("> ".chomp).blue
|
27
|
+
new_dir = STDIN.gets.strip
|
28
|
+
directory = new_dir.chars.empty? ? "#{`pwd`.strip}" : new_dir.strip
|
29
|
+
|
30
|
+
response = RestClient.get "#{ENDPOINT}/get/#{phrase}"
|
31
|
+
code = Base64.decode64(JSON.parse(response)['base64'])
|
32
|
+
|
33
|
+
File.open("#{directory}/#{phrase}.rb", "w") do |f|
|
34
|
+
f.puts code
|
35
|
+
end
|
36
|
+
|
37
|
+
puts Rainbow("Open #{directory}/#{phrase}.rb to complete the challenge.").green
|
38
|
+
puts "\n"
|
39
|
+
puts Rainbow("Comments within the file will explain your mission").green
|
40
|
+
|
41
|
+
listener = Listen.to(directory, only: /#{phrase}\.rb$/) do |modified, added, removed|
|
42
|
+
unless modified.empty?
|
43
|
+
# Run Tests
|
44
|
+
new_text = String.new
|
45
|
+
File.open("#{directory}/#{phrase}.rb").each do |line|
|
46
|
+
unless line.strip.chars.empty?
|
47
|
+
new_text << "#{line.strip};"
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
new_base_64 = Base64.encode64(new_text)
|
52
|
+
print "\n--> Running Tests || "
|
53
|
+
response = RestClient.post "#{ENDPOINT}/test", :phrase => phrase, :code => new_base_64
|
54
|
+
response_hash = JSON.parse(response)
|
55
|
+
print Rainbow("#{response_hash['passed_count']} Passed").green
|
56
|
+
print Rainbow(" | ").yellow
|
57
|
+
print Rainbow("#{response_hash['failed_count']} Failed").red
|
58
|
+
|
59
|
+
if response_hash['failed_count'] > 0
|
60
|
+
puts "\n\n"
|
61
|
+
response_hash['failed_string'].split(",").each do |error|
|
62
|
+
puts Rainbow(error).red
|
63
|
+
end
|
64
|
+
else
|
65
|
+
puts "\n\n"
|
66
|
+
puts Rainbow("You did it!!!").white
|
67
|
+
exit
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
listener.start
|
72
|
+
puts "\n"
|
73
|
+
puts Rainbow("Watching for file changes.").cyan
|
74
|
+
sleep
|
8
75
|
end
|
9
76
|
end
|
10
77
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: doublesplat
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Mulligan
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-07-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rainbow
|
@@ -25,7 +25,7 @@ dependencies:
|
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: rest-client
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
@@ -39,7 +39,7 @@ dependencies:
|
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: listen
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - ">="
|
@@ -80,6 +80,34 @@ dependencies:
|
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '10.0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: byebug
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: awesome_print
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
83
111
|
description: ''
|
84
112
|
email:
|
85
113
|
- mullymulligan@gmail.com
|
@@ -97,7 +125,7 @@ files:
|
|
97
125
|
- doublesplat.gemspec
|
98
126
|
- lib/doublesplat.rb
|
99
127
|
- lib/doublesplat/version.rb
|
100
|
-
homepage: http://www.doublesplat.
|
128
|
+
homepage: http://www.doublesplat.com
|
101
129
|
licenses:
|
102
130
|
- MIT
|
103
131
|
metadata: {}
|
@@ -120,6 +148,5 @@ rubyforge_project:
|
|
120
148
|
rubygems_version: 2.4.5
|
121
149
|
signing_key:
|
122
150
|
specification_version: 4
|
123
|
-
summary: Battle other ruby coders for real cash using your own editor
|
124
|
-
browser IDE.
|
151
|
+
summary: Battle other ruby coders for real cash using your own editor.
|
125
152
|
test_files: []
|