nyan 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
data/bin/nyan CHANGED
@@ -1,4 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
+ require 'rubygems'
3
+ require 'bundler'
4
+
2
5
  nyan_dir = File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib'))
3
6
  $LOAD_PATH.unshift(nyan_dir) unless $LOAD_PATH.include?(nyan_dir)
4
7
  require "nyan"
@@ -8,7 +8,7 @@ require "nyan/stage"
8
8
  require "nyan/flight"
9
9
 
10
10
  module Nyan
11
- BLOCK = "\u2588"
11
+ BLOCK = "\xE2\x96\x88"
12
12
  SPACE = "\x20"
13
13
  NEWLINE = "\n"
14
14
 
@@ -1,4 +1,4 @@
1
- require "ansi"
1
+ require 'ansi'
2
2
  include ANSI::Code
3
3
 
4
4
  module Nyan
@@ -32,6 +32,15 @@ module Nyan
32
32
  end
33
33
 
34
34
  def next!
35
+ maybe_add_a_twinkly_star
36
+ @stage.play!
37
+ while Time.now - @tick_time < 0.09; end
38
+ @tick_time = Time.now
39
+ end
40
+
41
+ private
42
+
43
+ def maybe_add_a_twinkly_star
35
44
  if rand > 0.85
36
45
  speed = rand > 0.5 ? 2 : 5
37
46
  star = Sprite.new(:x => @stage.width,
@@ -43,9 +52,6 @@ module Nyan
43
52
  :animation => Proc.new { self.x -= @options[:speed] })
44
53
  @stage.add_sprite(star)
45
54
  end
46
- @stage.play!
47
- loop until Time.now - @tick_time >= 0.09
48
- @tick_time = Time.now
49
55
  end
50
56
  end
51
57
  end
@@ -20,7 +20,7 @@ module Nyan
20
20
  EOF
21
21
 
22
22
  def self.to_frames
23
- @frames ||= Array(SHAPE)
23
+ @frames ||= [SHAPE]
24
24
  end
25
25
  end
26
26
  end
@@ -22,7 +22,7 @@ module Nyan
22
22
  EOF
23
23
 
24
24
  def self.to_frames
25
- @fames ||= Array(SHAPE)
25
+ @fames ||= [SHAPE]
26
26
  end
27
27
  end
28
28
  end
@@ -5,7 +5,7 @@ module Nyan
5
5
  SECTIONS = 5
6
6
 
7
7
  COLOURS = %w(1 2 3 4 5)
8
- BLANK = ([Nyan::SPACE] * BEND_LENGTH).join
8
+ BLANK = (Array(Nyan::SPACE) * BEND_LENGTH).join
9
9
 
10
10
  FRAME_HEIGHT = COLOURS.length * BAND_HEIGHT + 1
11
11
  FRAME_WIDTH = SECTIONS * BEND_LENGTH
@@ -13,10 +13,12 @@ module Nyan
13
13
  TOTAL_LENGTH = SECTIONS * BEND_LENGTH
14
14
  TOTAL_HEIGHT = BAND_HEIGHT * COLOURS.length
15
15
 
16
- SLICE = COLOURS.each_with_object([]) do |colour, slice|
16
+ SLICE = COLOURS.inject([]) do |slice, colour|
17
+ bend = (Array(colour) * BEND_LENGTH)
17
18
  BAND_HEIGHT.times do
18
- slice << "#{colour}" * BEND_LENGTH
19
+ slice << bend.join
19
20
  end
21
+ slice
20
22
  end
21
23
 
22
24
  def self.frame(is_peak = true)
@@ -75,7 +75,7 @@ X.........X
75
75
  EOF
76
76
 
77
77
  def self.to_frames
78
- @frames ||= SHAPE_LIST.gsub(/\./, SPACE).gsub(/X/, BLOCK).split(/--./m)
78
+ @frames ||= SHAPE_LIST.gsub(/\./, SPACE).gsub(/X/, "@").split(/--./m)
79
79
  end
80
80
  end
81
81
  end
@@ -1,3 +1,3 @@
1
1
  module Nyan
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -7,7 +7,7 @@ Gem::Specification.new do |s|
7
7
  s.version = Nyan::VERSION
8
8
  s.authors = ["dave@kapoq.com"]
9
9
  s.email = ["dave@kapoq.com"]
10
- s.homepage = "https://github.com/kapoq/nyan_formatter"
10
+ s.homepage = "https://github.com/kapoq/nyan"
11
11
  s.summary = "Nyan Cat flies across your terminal while your RSpec specs run!"
12
12
  s.description = "Your favourite aging meme is reheated as an RSpec custom formatter. For entertainment purposes only. WARNING: enterprise-ready"
13
13
 
@@ -0,0 +1,18 @@
1
+ require 'spec_helper'
2
+
3
+ describe Nyan::Flight do
4
+ describe "#next!" do
5
+ let(:stage) { Nyan::Stage.new }
6
+
7
+ before do
8
+ Nyan::Stage.stub(:new => stage)
9
+ end
10
+
11
+ it "plays the stage" do
12
+ flight = Nyan::Flight.new
13
+ flight.stub(:maybe_add_a_twinkly_star)
14
+ stage.should_receive(:play!)
15
+ flight.next!
16
+ end
17
+ end
18
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nyan
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,12 +9,12 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-10-07 00:00:00.000000000 +02:00
12
+ date: 2011-10-08 00:00:00.000000000 +02:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: ansi
17
- requirement: &23050960 !ruby/object:Gem::Requirement
17
+ requirement: &10787560 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: '0'
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *23050960
25
+ version_requirements: *10787560
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: rspec
28
- requirement: &23050540 !ruby/object:Gem::Requirement
28
+ requirement: &10787140 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ! '>='
@@ -33,10 +33,10 @@ dependencies:
33
33
  version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
- version_requirements: *23050540
36
+ version_requirements: *10787140
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: guard-rspec
39
- requirement: &23050120 !ruby/object:Gem::Requirement
39
+ requirement: &10786720 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ! '>='
@@ -44,10 +44,10 @@ dependencies:
44
44
  version: '0'
45
45
  type: :development
46
46
  prerelease: false
47
- version_requirements: *23050120
47
+ version_requirements: *10786720
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: rake
50
- requirement: &23049700 !ruby/object:Gem::Requirement
50
+ requirement: &10835020 !ruby/object:Gem::Requirement
51
51
  none: false
52
52
  requirements:
53
53
  - - ! '>='
@@ -55,10 +55,10 @@ dependencies:
55
55
  version: '0'
56
56
  type: :development
57
57
  prerelease: false
58
- version_requirements: *23049700
58
+ version_requirements: *10835020
59
59
  - !ruby/object:Gem::Dependency
60
60
  name: rb-inotify
61
- requirement: &23098140 !ruby/object:Gem::Requirement
61
+ requirement: &10834560 !ruby/object:Gem::Requirement
62
62
  none: false
63
63
  requirements:
64
64
  - - ! '>='
@@ -66,10 +66,10 @@ dependencies:
66
66
  version: '0'
67
67
  type: :development
68
68
  prerelease: false
69
- version_requirements: *23098140
69
+ version_requirements: *10834560
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: libnotify
72
- requirement: &23097720 !ruby/object:Gem::Requirement
72
+ requirement: &10834140 !ruby/object:Gem::Requirement
73
73
  none: false
74
74
  requirements:
75
75
  - - ! '>='
@@ -77,7 +77,7 @@ dependencies:
77
77
  version: '0'
78
78
  type: :development
79
79
  prerelease: false
80
- version_requirements: *23097720
80
+ version_requirements: *10834140
81
81
  description: ! 'Your favourite aging meme is reheated as an RSpec custom formatter.
82
82
  For entertainment purposes only. WARNING: enterprise-ready'
83
83
  email:
@@ -109,12 +109,13 @@ files:
109
109
  - lib/nyan/version.rb
110
110
  - nyan.gemspec
111
111
  - spec/lib/colour_spec.rb
112
+ - spec/lib/flight_spec.rb
112
113
  - spec/lib/shape_spec.rb
113
114
  - spec/lib/sprite_spec.rb
114
115
  - spec/lib/stage_spec.rb
115
116
  - spec/spec_helper.rb
116
117
  has_rdoc: true
117
- homepage: https://github.com/kapoq/nyan_formatter
118
+ homepage: https://github.com/kapoq/nyan
118
119
  licenses: []
119
120
  post_install_message:
120
121
  rdoc_options: []