need_for_type 0.3.1 → 0.3.2

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: 63c771a98c74b2ca901fac1b42526e703c0bfebb
4
- data.tar.gz: 7c2fd8fee3dcacc79e29dd80a247fc01287ac49b
3
+ metadata.gz: 630c7e4f50ccb4765104fa05235a4d8c68264e13
4
+ data.tar.gz: f436084b96f0c78466ad896407dfe031d4effde0
5
5
  SHA512:
6
- metadata.gz: bd1c9b2edbfb33bf49dd81ff176083c82c329d3ca25ba0387b4260424f32cdfe4ebb0519a83085a7d9ed586f84c22ed362eefeebcdb1a401c4f6c7f564d0c035
7
- data.tar.gz: 867f430be232a9718449fcc9e319d0b2d0078c5ea1d9842a73d0c5976e29b943c517328eab1a85b6d31f440dbd8a246765fe23a490b5a046e50f62a3d2b16135
6
+ metadata.gz: b1aedd33ddb4c2b7f236460b47757836e6d9fe979fb5f6ded0c963a5b24aa379fc85aec99be2dab37425f4061e9b516e05e851538237be19fc1f1c183abf00f8
7
+ data.tar.gz: a537744ace862c531de82facae1a09b686e5e533ac790b66bc914ffda7127d046c78546b46e726237fbb24fdc035713bd4b0c37c6a8a193f4fc6a60c6c844cd1
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # need-for-type
2
2
 
3
- need-for-type is a terminal type racer inpired by [Nitro Type](https://www.nitrotype.com/).
3
+ need-for-type is a terminal type racer inpired by [Nitro Type](https://www.nitrotype.com/) and [TypeRacer](http://play.typeracer.com/).
4
4
 
5
5
  ![screenshot](https://raw.githubusercontent.com/need-for-type/need-for-type/master/assets/screenshot.png)
6
6
 
@@ -12,7 +12,7 @@ Run the following command:
12
12
  $ gem install 'need_for_type'
13
13
  ```
14
14
 
15
- ## Usage
15
+ ## How to play
16
16
 
17
17
  On a new terminal window run the following command:
18
18
 
@@ -28,17 +28,23 @@ You can run `./bin/console` for an interactive prompt that will allow you to exp
28
28
 
29
29
  To install the development version of the gem onto your local machine, run `bundle exec rake install`.
30
30
 
31
- To release a new version, update the version number in `version.rb` and update the `CHANGELOG.md` accordingly, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
31
+ ### How to release a new version
32
32
 
33
+ To release a new version follow these steps:
34
+
35
+ 1. Update the version in `version.rb`
36
+ 2. Update changes for the corresponding version in `CHANGELOG.md`
37
+ 3. Commit both `version.rb` and `CHANGELOG.md`
38
+ 4. Run `bundle exec rake release` which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org)
33
39
 
34
40
  ## Contributing
35
41
 
36
- Bug reports and pull requests are welcome on GitHub at https://github.com/jbernardo95/need-for-type. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](contributor-covenant.org) code of conduct.
42
+ Bug reports and pull requests are welcome on GitHub at https://github.com/need-for-type/need-for-type. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](contributor-covenant.org) code of conduct.
37
43
 
38
44
 
39
45
  ## Credits
40
46
 
41
- Texts used in need-for-type were all kindly provided to us by [TypeRacer](http://play.typeracer.com/)
47
+ Texts used in need-for-type were all kindly provided to us by [TypeRacer](http://play.typeracer.com/).
42
48
 
43
49
  ## License
44
50
 
@@ -6,8 +6,13 @@ module NeedForType::API
6
6
 
7
7
  def get_scores(text_id)
8
8
  url = "https://#{@@api_url}/v1/scores?text_id=#{text_id}"
9
- response = HTTParty.get(url)
10
- JSON.parse(response.body)
9
+
10
+ begin
11
+ response = HTTParty.get(url)
12
+ JSON.parse(response.body)
13
+ rescue HTTParty::Error, StandardError
14
+ { error: "Ups! Something went wrong." }
15
+ end
11
16
  end
12
17
 
13
18
  def post_score(username, text_id, stats)
@@ -18,6 +23,9 @@ module NeedForType::API
18
23
  wpm: stats[:wpm],
19
24
  time: stats[:total_time],
20
25
  accuracy: stats[:accuracy] } }
21
- HTTParty.post(url, headers: headers, body: body.to_json)
26
+ begin
27
+ HTTParty.post(url, headers: headers, body: body.to_json)
28
+ rescue HTTParty::Error, StandardError
29
+ end
22
30
  end
23
31
  end
@@ -132,9 +132,15 @@ module NeedForType
132
132
  end
133
133
 
134
134
  def render_scores(scores, y, x)
135
- if scores.empty?
136
- self.set_render_pos(y + 1, x)
135
+ if scores.nil?
136
+ self.set_render_pos(y, x)
137
+ self.addstr("Fetching scores...")
138
+ elsif scores.empty?
139
+ self.set_render_pos(y, x)
137
140
  self.addstr("There are no score yet for this text.")
141
+ elsif scores[:error]
142
+ self.set_render_pos(y + 1, x)
143
+ self.addstr(scores[:error])
138
144
  else
139
145
  scores.each do |s|
140
146
  self.set_render_pos(y, x)
@@ -14,12 +14,15 @@ module NeedForType::States
14
14
  @text_id = text_id
15
15
 
16
16
  @option = 0
17
- @scores = get_scores(@text_id)
17
+ @scores = nil
18
+ fetch_and_render_scores_async
18
19
  end
19
20
 
20
21
  def update
21
22
  @display_window.render_end(@stats, @scores, @option)
22
23
 
24
+ @fetch_and_render_scores_thread.join
25
+
23
26
  input_worker(4) do
24
27
  case @option
25
28
  when 0
@@ -33,5 +36,12 @@ module NeedForType::States
33
36
 
34
37
  return self
35
38
  end
39
+
40
+ def fetch_and_render_scores_async
41
+ @fetch_and_render_scores_thread = Thread.new do
42
+ @scores = get_scores(@text_id)
43
+ @display_window.render_end(@stats, @scores, @option)
44
+ end
45
+ end
36
46
  end
37
47
  end
@@ -23,7 +23,7 @@ module NeedForType::States
23
23
 
24
24
  if input == Curses::Key::ENTER || input == 10
25
25
  post_score(@username, @text_id, @stats)
26
- @end_state.scores = get_scores(@text_id)
26
+ @end_state.fetch_and_render_scores_async
27
27
  return @end_state
28
28
  elsif input == Curses::Key::BACKSPACE || input == 127
29
29
  @username = @username.chop
@@ -1,3 +1,3 @@
1
1
  module NeedForType
2
- VERSION = "0.3.1"
2
+ VERSION = "0.3.2"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: need_for_type
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - tiagonbotelho
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-10-22 00:00:00.000000000 Z
12
+ date: 2016-10-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -81,7 +81,7 @@ dependencies:
81
81
  - - ">="
82
82
  - !ruby/object:Gem::Version
83
83
  version: '0'
84
- description: need-for-type is a terminal type racer inpired by Nitro Type
84
+ description: need-for-type is a terminal type racer inpired by Nitro Type and TypeRacer
85
85
  email:
86
86
  - tiagonbotelho@gmail.com
87
87
  - jbamaro95@gmail.com
@@ -826,7 +826,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
826
826
  requirements:
827
827
  - - ">="
828
828
  - !ruby/object:Gem::Version
829
- version: '0'
829
+ version: '2.3'
830
830
  required_rubygems_version: !ruby/object:Gem::Requirement
831
831
  requirements:
832
832
  - - ">="
@@ -834,7 +834,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
834
834
  version: '0'
835
835
  requirements: []
836
836
  rubyforge_project:
837
- rubygems_version: 2.6.6
837
+ rubygems_version: 2.6.7
838
838
  signing_key:
839
839
  specification_version: 4
840
840
  summary: A terminal typeracer