mockingbird 0.1.0 → 0.1.1

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.
data/README.md CHANGED
@@ -1,14 +1,20 @@
1
1
  Mockingbird
2
2
  ===========
3
- Mockingbird emulates the Twitter Streaming API using a simple script-like
4
- configuration that makes it easy to test code that connects to the Streaming
5
- API. Mockingbird can be used to simulate bad data, unexpected status codes,
6
- hard disconnects, etc.
3
+ Mockingbird makes it easy to test code that relies on the
4
+ [Twitter Streaming API](http://dev.twitter.com/pages/streaming_api). It's a
5
+ server with a simple script-like configuration DSL that makes it easy to
6
+ describe the behaviors you want. Mockingbird can be used to simulate bad data,
7
+ unexpected status codes, hard disconnects, etc. It's currently used heavily to
8
+ test the [flamingo](http://github.com/hayesdavis/flamingo) Streaming API
9
+ service.
7
10
 
8
- Mockingbird uses eventmachine to run as an actual streaming http server so
9
- it's a drop-in replacement for code that reads from the streaming api.
10
- Simply change the host and port your code is connecting to from Twitter to
11
- a mockingbird instance.
11
+ Mockingbird uses [eventmachine](http://github.com/eventmachine/eventmachine/)
12
+ to run as an actual streaming HTTP server so it's a drop-in replacement for
13
+ the server at stream.twitter.com. To test code that uses the Streaming API,
14
+ connect to a running mockingbird server instead of stream.twitter.com. Most
15
+ Twitter Streaming API clients, such as
16
+ [twitter-stream](http://github.com/voloko/twitter-stream), allow you to easily
17
+ change these host and port settings.
12
18
 
13
19
  Since mockingbird is designed for testing, it includes a simple
14
20
  Mockingbird#setup and Mockingbird#teardown interface that makes it easy to
@@ -36,7 +42,7 @@ Here's what this does in plain english:
36
42
  * On a connection, send '{"foo":"bar"}' down to the client
37
43
  * Wait 1 second
38
44
  * Then send '{"foo2":"bar2"}' down to the client 5 times
39
- * Then send each line from some/file.txt to the clien, waiting 1 second in
45
+ * Then send each line from some/file.txt to the client, waiting 1 second in
40
46
  between sends
41
47
  * Close the connection
42
48
 
data/lib/mockingbird.rb CHANGED
@@ -23,6 +23,7 @@ module Mockingbird
23
23
  # Options are
24
24
  # :host - The host to listen on. 0.0.0.0 by default
25
25
  # :port - The port to listen on. 4879 by default
26
+ # :quiet - Silence debug-output. Default is to be verbose
26
27
  #
27
28
  # The block is a Mockingbird configuration (see README).
28
29
  def setup(opts={},&block)
@@ -33,7 +34,7 @@ module Mockingbird
33
34
  Server.start!(opts)
34
35
  end
35
36
  Process.detach(@pid)
36
- puts "Waiting for Mockingbird to start..."
37
+ puts "Waiting for Mockingbird to start..." unless opts[:quiet]
37
38
  sleep(1) # Necessary to make sure the forked proc is up and running
38
39
  @pid
39
40
  end
@@ -106,8 +106,8 @@ module Mockingbird
106
106
  end
107
107
 
108
108
  def run(conn)
109
- unless @io.eof?
110
- chunk = @io.readline.chomp
109
+ unless io.eof?
110
+ chunk = io.readline.chomp
111
111
  conn.send_chunk(chunk)
112
112
  if delay
113
113
  EM.add_timer(delay) { run(conn) }
@@ -116,12 +116,16 @@ module Mockingbird
116
116
  end
117
117
  else
118
118
  # Reset for future calls
119
- @io.rewind
119
+ io.rewind
120
120
  advance(conn)
121
121
  end
122
122
  end
123
123
 
124
124
  private
125
+ def io
126
+ @io
127
+ end
128
+
125
129
  def delay
126
130
  if @delay.respond_to?(:call)
127
131
  @delay.call
@@ -23,7 +23,7 @@ module Mockingbird
23
23
  host = opts[:host]
24
24
  port = opts[:port]
25
25
  EventMachine::run do
26
- puts "Mockingbird is mocking you on #{host}:#{port} (pid=#{$$})"
26
+ puts "Mockingbird is mocking you on #{host}:#{port} (pid=#{$$})" unless opts[:quiet]
27
27
  EventMachine::start_server host, port, self
28
28
  end
29
29
  end
@@ -1,5 +1,5 @@
1
1
  module Mockingbird
2
2
 
3
- VERSION = Version = "0.1.0"
3
+ VERSION = Version = "0.1.1"
4
4
 
5
5
  end
metadata CHANGED
@@ -1,13 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mockingbird
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
5
- prerelease: false
6
- segments:
7
- - 0
8
- - 1
9
- - 0
10
- version: 0.1.0
4
+ prerelease:
5
+ version: 0.1.1
11
6
  platform: ruby
12
7
  authors:
13
8
  - Hayes Davis
@@ -15,7 +10,7 @@ autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
12
 
18
- date: 2010-07-31 00:00:00 -05:00
13
+ date: 2012-02-18 00:00:00 -08:00
19
14
  default_executable:
20
15
  dependencies:
21
16
  - !ruby/object:Gem::Dependency
@@ -26,11 +21,6 @@ dependencies:
26
21
  requirements:
27
22
  - - ">="
28
23
  - !ruby/object:Gem::Version
29
- hash: 47
30
- segments:
31
- - 0
32
- - 12
33
- - 0
34
24
  version: 0.12.0
35
25
  type: :runtime
36
26
  version_requirements: *id001
@@ -72,23 +62,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
72
62
  requirements:
73
63
  - - ">="
74
64
  - !ruby/object:Gem::Version
75
- hash: 3
76
- segments:
77
- - 0
78
65
  version: "0"
79
66
  required_rubygems_version: !ruby/object:Gem::Requirement
80
67
  none: false
81
68
  requirements:
82
69
  - - ">="
83
70
  - !ruby/object:Gem::Version
84
- hash: 3
85
- segments:
86
- - 0
87
71
  version: "0"
88
72
  requirements: []
89
73
 
90
74
  rubyforge_project:
91
- rubygems_version: 1.3.7
75
+ rubygems_version: 1.6.2
92
76
  signing_key:
93
77
  specification_version: 3
94
78
  summary: Mockingbird is a mock server for testing with the Twitter Streaming API.