evdispatch 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (36) hide show
  1. data/History.txt +3 -0
  2. data/Manifest.txt +0 -1
  3. data/ext/revdispatch/extconf.rb +1 -0
  4. data/ext/revdispatch/libdispatch-0.1/autogen.sh +0 -0
  5. data/ext/revdispatch/libdispatch-0.1/config.guess +0 -0
  6. data/ext/revdispatch/libdispatch-0.1/config.sub +0 -0
  7. data/ext/revdispatch/libdispatch-0.1/configure +0 -0
  8. data/ext/revdispatch/libdispatch-0.1/depcomp +0 -0
  9. data/ext/revdispatch/libdispatch-0.1/install-sh +0 -0
  10. data/ext/revdispatch/libdispatch-0.1/libev-3.2/autogen.sh +0 -0
  11. data/ext/revdispatch/libdispatch-0.1/libev-3.2/config.guess +0 -0
  12. data/ext/revdispatch/libdispatch-0.1/libev-3.2/config.sub +0 -0
  13. data/ext/revdispatch/libdispatch-0.1/libev-3.2/configure +0 -0
  14. data/ext/revdispatch/libdispatch-0.1/libev-3.2/install-sh +0 -0
  15. data/ext/revdispatch/libdispatch-0.1/libev-3.2/missing +0 -0
  16. data/ext/revdispatch/libdispatch-0.1/libev-3.2/mkinstalldirs +0 -0
  17. data/ext/revdispatch/libdispatch-0.1/missing +0 -0
  18. data/ext/revdispatch/libdispatch-0.1/src/ev_dispatch.cc +5 -19
  19. data/ext/revdispatch/libdispatch-0.1/src/ev_dispatch.h +9 -3
  20. data/ext/revdispatch/libdispatch-0.1/src/ev_http.cc +4 -4
  21. data/ext/revdispatch/libdispatch-0.1/src/ev_http.h +3 -1
  22. data/ext/revdispatch/libdispatch-0.1/test/key_test.cc +5 -5
  23. data/ext/revdispatch/libdispatch-0.1/test/next_test.cc +11 -17
  24. data/ext/revdispatch/revdispatch.cc +2 -1
  25. data/ext/revdispatch/server.rb +1 -1
  26. data/ext/revdispatch/test.rb +20 -17
  27. data/lib/evdispatch/version.rb +1 -1
  28. data/script/console +0 -0
  29. data/script/destroy +0 -0
  30. data/script/generate +0 -0
  31. data/script/txt2html +0 -0
  32. data/test/test_evdispatch.rb +86 -4
  33. data/website/index.html +10 -3
  34. data/website/template.html.erb +9 -2
  35. metadata +2 -3
  36. data/ext/revdispatch/libdispatch-0.1/libev-3.2/libev.la +0 -35
data/History.txt CHANGED
@@ -1,3 +1,6 @@
1
+ == 0.1.4 2008-04-11
2
+ * Fix another issue with building this time on ppc it needs ranlib executed
3
+
1
4
  == 0.1.2 2008-04-11
2
5
  * Fix issues with building dependent library on darwin
3
6
 
data/Manifest.txt CHANGED
@@ -79,7 +79,6 @@ ext/revdispatch/libdispatch-0.1/libev-3.2/configure.ac
79
79
  ext/revdispatch/libdispatch-0.1/libev-3.2/ev.3
80
80
  ext/revdispatch/libdispatch-0.1/libev-3.2/ev.pod
81
81
  ext/revdispatch/libdispatch-0.1/libev-3.2/install-sh
82
- ext/revdispatch/libdispatch-0.1/libev-3.2/libev.la
83
82
  ext/revdispatch/libdispatch-0.1/libev-3.2/libev.m4
84
83
  ext/revdispatch/libdispatch-0.1/libev-3.2/ltmain.sh
85
84
  ext/revdispatch/libdispatch-0.1/libev-3.2/missing
@@ -15,6 +15,7 @@ if !File.exist?("#{libdispatch}/src/.libs") or !File.exist?("#{libdispatch}/#{li
15
15
  # copy the .a files into this folder
16
16
  system("cp #{libdispatch}/src/.libs/libdispatch.a libdeps")
17
17
  system("cp #{libdispatch}/#{libev}/.libs/libev.a libdeps")
18
+ system("ranlib libdeps/*.a")
18
19
  end
19
20
 
20
21
  $srcs = ['revdispatch.cc']
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -183,27 +183,13 @@ void Dispatch::timeout_cb(struct ev_loop *loop, struct ev_timer *w, int revents)
183
183
  }
184
184
 
185
185
  // called on the main thread, not the event loop thread
186
- request_t Dispatch::request( Request::Type type, const std::string &url )
186
+ request_t Dispatch::request( Request *req )
187
187
  {
188
188
  request_t key = m_counter++;
189
- Request *req = NULL;
190
- // check the request type and
191
- switch( type ) {
192
- case Request::HTTP:
193
- req = new HttpRequest( m_http_client, key, url );
194
- break;
195
- case Request::SPHINX:
196
- //req = new SphinxRequest( key, url );
197
- break;
198
- case Request::MEMCACHED:
199
- break;
200
- default:
201
- // TODO: log an error
202
- break;
203
- }
204
- m_requests.push( req );
205
- ev_async_send( m_loop, &m_request_watcher );
206
- return key;
189
+ req->set_key( key );
190
+ m_requests.push( req ); // load the request into the request queue
191
+ ev_async_send( m_loop, &m_request_watcher ); // signal to the event loop we have new requests pending
192
+ return key; // return to the client a unique identifier for matching up the response to this request
207
193
  }
208
194
 
209
195
  Response *Dispatch::response_for( request_t id )
@@ -25,11 +25,15 @@ namespace EVD {
25
25
  Request( request_t k, const std::string &u ) : key(k), url(u){ time( &start_time); }
26
26
  virtual ~Request (){ }
27
27
 
28
+ // by default this does nothing, each real request object can do as it pleases with this feature
29
+ virtual void set_opt( const std::string &key, const std::string &value ){}
30
+
31
+ virtual void set_key( request_t key ){ this->key = key; }
32
+
28
33
  // attach to the event loop
29
34
  virtual bool enable() = 0;
30
35
 
31
- // TODO: add a method to access the response
32
-
36
+ // key will be set by the dispatch object when you invoke this request
33
37
  request_t key;
34
38
  std::string url;
35
39
  time_t start_time;
@@ -224,7 +228,7 @@ namespace EVD {
224
228
  // tell the background event listener to terminate
225
229
  void stop();
226
230
 
227
- request_t request( Request::Type type, const std::string &url );
231
+ request_t request( Request *req );
228
232
 
229
233
  // from the main thread, get the next available response
230
234
  // just keep pop'ing off the response queue until we get something
@@ -252,6 +256,8 @@ namespace EVD {
252
256
  inline struct ev_loop *get_loop(){ return m_loop; }
253
257
 
254
258
  inline pthread_t get_thread_id()const{ return m_tid; }
259
+
260
+ inline struct HttpClient *getHttpClient()const{ return m_http_client; }
255
261
 
256
262
  protected:
257
263
 
@@ -184,8 +184,8 @@ int HttpRequest::prog_cb(void *p, double dltotal, double dlnow, double ult, doub
184
184
  return 0;
185
185
  }
186
186
 
187
- HttpRequest::HttpRequest( HttpClient* client, request_t k, const std::string &url )
188
- : Request( k, url ), response(NULL), m_handle(curl_easy_init()), m_client(client)
187
+ HttpRequest::HttpRequest( Dispatch &dispatch, const std::string &url )
188
+ : Request( 0, url ), response(new Response()), m_handle(curl_easy_init()), m_client(dispatch.getHttpClient())
189
189
  {
190
190
  memset(error,'\0', CURL_ERROR_SIZE);
191
191
  curl_easy_setopt(m_handle, CURLOPT_URL, url.c_str());
@@ -197,9 +197,9 @@ HttpRequest::HttpRequest( HttpClient* client, request_t k, const std::string &ur
197
197
  curl_easy_setopt(m_handle, CURLOPT_NOPROGRESS, 0);
198
198
  curl_easy_setopt(m_handle, CURLOPT_PROGRESSFUNCTION, prog_cb);
199
199
  curl_easy_setopt(m_handle, CURLOPT_PROGRESSDATA, this);
200
- this->response = new Response();
200
+
201
+ // setup the response object
201
202
  this->response->name = url;
202
- this->response->id = k;
203
203
  }
204
204
 
205
205
  HttpRequest::~HttpRequest()
@@ -43,13 +43,15 @@ namespace EVD {
43
43
 
44
44
  // follow the curl handle for the duration of it's request
45
45
  struct HttpRequest : public Request {
46
- HttpRequest( HttpClient* client, request_t k, const std::string &url );
46
+ HttpRequest( Dispatch &dispatch, const std::string &url );
47
47
  virtual ~HttpRequest();
48
48
 
49
49
  virtual bool enable();
50
50
 
51
51
  void finish( CURLcode rc );
52
52
 
53
+ virtual void set_key( request_t key ){ Request::set_key(key); this->response->id = key; }
54
+
53
55
  static size_t write_cb(void *ptr, size_t size, size_t nmemb, void *data);
54
56
  static int prog_cb(void *p, double dltotal, double dlnow, double ult, double uln);
55
57
 
@@ -1,4 +1,5 @@
1
1
  #include "ev_dispatch.h"
2
+ #include "ev_http.h"
2
3
 
3
4
  using namespace EVD;
4
5
 
@@ -25,22 +26,21 @@ int main(int argc, char **argv)
25
26
 
26
27
  printf( "dispatcher thread running...\n" );
27
28
 
28
- request_t yahoo_id = dispatcher.request(Request::HTTP, "http://www.yahoo.com/");
29
- request_t google_id = dispatcher.request(Request::HTTP, "http://www.google.com/");
29
+ request_t yahoo_id = dispatcher.request( new HttpRequest( dispatcher, "http://www.yahoo.com/" ) );
30
+ request_t google_id = dispatcher.request(new HttpRequest( dispatcher, "http://www.google.com/" ) );
30
31
  printf("yahoo: %d\n", yahoo_id);
31
32
  printf("google: %d\n", google_id);
32
33
 
33
34
  Response *res = NULL;
34
- Timer timeout(0,5);
35
35
 
36
- while( dispatcher.wait_for_response_by_id( yahoo_id, timeout ) ){
36
+ while( dispatcher.wait_for_response_by_id( yahoo_id, Timer(1,5) ) ){
37
37
  printf("waiting for yahoo...\n");
38
38
  }
39
39
  res = dispatcher.response_for( yahoo_id );
40
40
  printf("Recieved response from yahoo: %s, Content-Length: %d\n", res->name.c_str(), res->body.length() );
41
41
  delete res;
42
42
 
43
- while( dispatcher.wait_for_response_by_id( google_id, timeout ) ){
43
+ while( dispatcher.wait_for_response_by_id( google_id, Timer(1,5) ) ){
44
44
  printf("waiting for google...\n");
45
45
  }
46
46
 
@@ -1,4 +1,6 @@
1
+
1
2
  #include "ev_dispatch.h"
3
+ #include "ev_http.h"
2
4
 
3
5
  using namespace EVD;
4
6
 
@@ -12,25 +14,17 @@ static void SIGINT_handler(int sig)
12
14
  static void run_tests( Dispatch &dispatcher, int count )
13
15
  {
14
16
  time_t start_time = time(NULL);
15
- int expected_response_count = 0;
16
17
  int response_count = 0;
17
18
 
18
- dispatcher.request(Request::HTTP, "http://127.0.0.1:4044/bytes/10200/");
19
- ++expected_response_count;
20
- dispatcher.request(Request::HTTP, "http://127.0.0.1:4044/bytes/10080/");
21
- ++expected_response_count;
22
- dispatcher.request(Request::HTTP, "http://127.0.0.1:4044/delay/2/");
23
- ++expected_response_count;
24
- dispatcher.request(Request::HTTP, "http://127.0.0.1:4044/bytes/100900/");
25
- ++expected_response_count;
26
- dispatcher.request(Request::HTTP, "http://127.0.0.1:4044/delay/1/");
27
- ++expected_response_count;
28
- dispatcher.request(Request::HTTP, "http://127.0.0.1:4044/delay/1/");
29
- ++expected_response_count;
30
- dispatcher.request(Request::HTTP, "http://127.0.0.1:4044/delay/3/");
31
- ++expected_response_count;
32
- dispatcher.request(Request::HTTP, "http://127.0.0.1:4044/bytes/1010/");
33
- ++expected_response_count;
19
+ dispatcher.request( new HttpRequest( dispatcher, "http://127.0.0.1:4044/bytes/10200/" ) );
20
+ dispatcher.request( new HttpRequest( dispatcher, "http://127.0.0.1:4044/bytes/10080/" ) );
21
+ dispatcher.request( new HttpRequest( dispatcher, "http://127.0.0.1:4044/delay/2/" ) );
22
+ dispatcher.request( new HttpRequest( dispatcher, "http://127.0.0.1:4044/bytes/100900/" ) );
23
+ dispatcher.request( new HttpRequest( dispatcher, "http://127.0.0.1:4044/delay/1/" ) );
24
+ dispatcher.request( new HttpRequest( dispatcher, "http://127.0.0.1:4044/delay/1/" ) );
25
+ dispatcher.request( new HttpRequest( dispatcher, "http://127.0.0.1:4044/delay/3/" ) );
26
+ dispatcher.request( new HttpRequest( dispatcher, "http://127.0.0.1:4044/bytes/1010/" ) );
27
+ int expected_response_count = 8 ;
34
28
 
35
29
  //ev_sleep(0.2);
36
30
 
@@ -1,5 +1,6 @@
1
1
  #include <ruby.h>
2
2
  #include "ev_dispatch.h"
3
+ #include "ev_http.h"
3
4
 
4
5
  /* ruby 1.9 compat */
5
6
  #ifndef RSTRING_PTR
@@ -64,7 +65,7 @@ VALUE Loop_request_http( VALUE self, VALUE url )
64
65
  EVD::Dispatch *d;
65
66
  Data_Get_Struct( self, EVD::Dispatch, d );
66
67
 
67
- EVD::request_t id = d->request( EVD::Request::HTTP, RSTRING_PTR(url) );
68
+ EVD::request_t id = d->request( new EVD::HttpRequest( *d, RSTRING_PTR(url) ) );
68
69
 
69
70
  return rb_int_new(id);
70
71
  }
@@ -45,7 +45,7 @@ class HelperApp
45
45
  end
46
46
  end
47
47
 
48
- def start
48
+ def start_test_server
49
49
  puts "starting up ebb";
50
50
  Thread.start{ Ebb.start_server(HelperApp.new, :port => TEST_PORT) }
51
51
  sleep 0.1 until Ebb.running?
@@ -2,10 +2,11 @@ require 'revdispatch'
2
2
 
3
3
  # to run this through valgrind run the server outside of this script
4
4
  # i run this: valgrind --leak-check=full ~/project/ruby-valgrind-env/bin/ruby test.rb r
5
+ pid = nil
5
6
  unless ARGV[0] == 'r'
6
7
  pid = fork do
7
8
  require 'server'
8
- start
9
+ start_test_server
9
10
  end
10
11
  end
11
12
 
@@ -59,8 +60,8 @@ def run_trial
59
60
 
60
61
  ebbbase = "http://127.0.0.1:4044/"
61
62
  timer = Time.now
62
- ids = request_bytes_from( d, ebbbase, 20, 1000 )
63
- ids += request_delay_from( d, ebbbase, 20, 1 )
63
+ ids = request_bytes_from( d, ebbbase, 100, 1000 )
64
+ ids += request_delay_from( d, ebbbase, 100, 1 )
64
65
 
65
66
  # wait for each response
66
67
  puts "expecting #{ids.size} responses..."
@@ -74,27 +75,29 @@ def run_trial
74
75
 
75
76
  # sometime later you can stop the event loop
76
77
  d.stop
77
-
78
78
  end
79
79
 
80
- sleep 1 unless ARGV[0] == 'r'
80
+ begin
81
+ sleep 1 unless ARGV[0] == 'r'
81
82
 
82
- ObjectSpace.garbage_collect
83
+ ObjectSpace.garbage_collect
83
84
 
84
- count = ObjectSpace.each_object { }
85
- puts "Starting Total objects: #{count}"
85
+ count = ObjectSpace.each_object { }
86
+ puts "Starting Total objects: #{count}"
86
87
 
87
- begin
88
- run_trial
89
- rescue => e
90
- puts e.message, e.backtrace
91
- end
88
+ begin
89
+ run_trial
90
+ rescue => e
91
+ puts e.message, e.backtrace
92
+ end
92
93
 
93
94
 
94
- Process.kill('HUP', pid) unless ARGV[0] == 'r'
95
+ Process.kill('HUP', pid) unless ARGV[0] == 'r'
96
+ count = ObjectSpace.each_object { }
97
+ puts "Final Total objects: #{count}"
98
+ count = nil
99
+ ObjectSpace.garbage_collect
100
+ end
95
101
 
96
- count = ObjectSpace.each_object { }
97
- puts "Final Total objects: #{count}"
98
- ObjectSpace.garbage_collect
99
102
  count = ObjectSpace.each_object { }
100
103
  puts "After garbage collection objects: #{count}"
@@ -2,7 +2,7 @@ module Evdispatch #:nodoc:
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 0
4
4
  MINOR = 1
5
- TINY = 3
5
+ TINY = 4
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
data/script/console CHANGED
File without changes
data/script/destroy CHANGED
File without changes
data/script/generate CHANGED
File without changes
data/script/txt2html CHANGED
File without changes
@@ -2,10 +2,92 @@ require File.dirname(__FILE__) + '/test_helper.rb'
2
2
 
3
3
  class TestEvdispatch < Test::Unit::TestCase
4
4
 
5
- def setup
5
+ def test_object_test
6
+ # start up the test server
7
+ pid = fork do
8
+ require File.dirname(__FILE__) + '/../ext/revdispatch/server'
9
+ start_test_server
10
+ end
11
+ sleep 1 unless ARGV[0] == 'r'
12
+
13
+ d = Evdispatch::Loop.new
14
+
15
+ # start the event loop thread
16
+ d.start
17
+
18
+ begin
19
+
20
+ ObjectSpace.garbage_collect
21
+
22
+ 10.times do
23
+ begin
24
+ start_count = ObjectSpace.each_object { }
25
+ duration = run_trial(d, 10)
26
+ new_count = ObjectSpace.each_object { }
27
+ puts "10 trials: #{duration} seconds, new objects #{new_count - start_count}, #{new_count} - #{start_count}"
28
+ end
29
+
30
+ begin
31
+ start_count = ObjectSpace.each_object { }
32
+ duration = run_trial(d, 100)
33
+ new_count = ObjectSpace.each_object { }
34
+ puts "100 trials: #{duration} seconds, new objects #{new_count - start_count}, #{new_count} - #{start_count}"
35
+ end
36
+
37
+ end
38
+
39
+ rescue => e
40
+ puts e.message, e.backtrace
41
+ end
42
+
43
+ count = ObjectSpace.each_object { }
44
+ puts "Final Total objects: #{count}"
45
+ count = nil
46
+ ObjectSpace.garbage_collect
47
+ count = ObjectSpace.each_object { }
48
+ puts "After garbage collection objects: #{count}"
49
+
50
+ # sometime later you can stop the event loop
51
+ d.stop
52
+ ensure
53
+ Process.kill('HUP', pid) unless ARGV[0] == 'r'
6
54
  end
7
-
8
- def test_truth
9
- assert true
55
+
56
+ def request_bytes_from( d, base, amount, range )
57
+ ids = []
58
+ amount.times do|i|
59
+ am = rand( range )
60
+ ids << d.request_http( base + "bytes/#{am}/" )
61
+ end
62
+ ids
63
+ end
64
+
65
+ def request_delay_from( d, base, amount, delay )
66
+ ids = []
67
+ amount.times do|i|
68
+ am = rand( delay )
69
+ ids << d.request_http( base + "delay/#{delay}/" )
70
+ end
71
+ ids
72
+ end
73
+
74
+ def run_trial( d, trials )
75
+
76
+ ebbbase = "http://127.0.0.1:4044/"
77
+ timer = Time.now
78
+ ids = request_bytes_from( d, ebbbase, trials, 1000 )
79
+ ids += request_delay_from( d, ebbbase, trials, 1 )
80
+
81
+ # wait for each response
82
+ puts "expecting #{ids.size} responses..."
83
+ ids.each do|id|
84
+ response = d.response( id )
85
+ #puts response[:name]
86
+ end
87
+
88
+ duration = Time.now - timer
89
+
90
+
91
+ duration
10
92
  end
11
93
  end
data/website/index.html CHANGED
@@ -18,7 +18,7 @@
18
18
  <h1>evdispatch</h1>
19
19
  <div id="version" class="clickable" onclick='document.location = "http://rubyforge.org/projects/evdispatch"; return false'>
20
20
  <p>Get Version</p>
21
- <a href="http://rubyforge.org/projects/evdispatch" class="numbers">0.1.2</a>
21
+ <a href="http://rubyforge.org/projects/evdispatch" class="numbers">0.1.3</a>
22
22
  </div>
23
23
  <h4 style="float:right;padding-right:10px;">&#x2192; &#8216;evdispatch&#8217;</h4>
24
24
 
@@ -152,8 +152,6 @@ One thing to keep in mind is the background thread will block if it has to resol
152
152
  </p>
153
153
  </div>
154
154
 
155
- <!-- insert site tracking codes here, like Google Urchin -->
156
-
157
155
  <script src="javascripts/rounded_corners_lite.inc.js" type="text/javascript"></script>
158
156
  <script type="text/javascript">
159
157
  window.onload = function() {
@@ -170,6 +168,15 @@ One thing to keep in mind is the background thread will block if it has to resol
170
168
  versionBox.applyCornersToAll();
171
169
  }
172
170
  </script>
171
+ <script type="text/javascript">
172
+ var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
173
+ document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
174
+ </script>
175
+ <script type="text/javascript">
176
+ var pageTracker = _gat._getTracker("UA-246931-5");
177
+ pageTracker._initData();
178
+ pageTracker._trackPageview();
179
+ </script>
173
180
 
174
181
  </body>
175
182
  </html>
@@ -27,8 +27,6 @@
27
27
  </p>
28
28
  </div>
29
29
 
30
- <!-- insert site tracking codes here, like Google Urchin -->
31
-
32
30
  <script src="javascripts/rounded_corners_lite.inc.js" type="text/javascript"></script>
33
31
  <script type="text/javascript">
34
32
  window.onload = function() {
@@ -45,6 +43,15 @@
45
43
  versionBox.applyCornersToAll();
46
44
  }
47
45
  </script>
46
+ <script type="text/javascript">
47
+ var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
48
+ document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
49
+ </script>
50
+ <script type="text/javascript">
51
+ var pageTracker = _gat._getTracker("UA-246931-5");
52
+ pageTracker._initData();
53
+ pageTracker._trackPageview();
54
+ </script>
48
55
 
49
56
  </body>
50
57
  </html>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: evdispatch
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Todd A. Fisher
@@ -108,7 +108,6 @@ files:
108
108
  - ext/revdispatch/libdispatch-0.1/libev-3.2/ev.3
109
109
  - ext/revdispatch/libdispatch-0.1/libev-3.2/ev.pod
110
110
  - ext/revdispatch/libdispatch-0.1/libev-3.2/install-sh
111
- - ext/revdispatch/libdispatch-0.1/libev-3.2/libev.la
112
111
  - ext/revdispatch/libdispatch-0.1/libev-3.2/libev.m4
113
112
  - ext/revdispatch/libdispatch-0.1/libev-3.2/ltmain.sh
114
113
  - ext/revdispatch/libdispatch-0.1/libev-3.2/missing
@@ -147,7 +146,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
147
146
  requirements: []
148
147
 
149
148
  rubyforge_project: evdispatch
150
- rubygems_version: 1.1.0
149
+ rubygems_version: 1.0.1
151
150
  signing_key:
152
151
  specification_version: 2
153
152
  summary: Based on libev provides a background event loop for making simulataneous requests
@@ -1,35 +0,0 @@
1
- # libev.la - a libtool library file
2
- # Generated by ltmain.sh - GNU libtool 1.5.24 (1.1220.2.456 2007/06/24 02:25:32)
3
- #
4
- # Please DO NOT delete this file!
5
- # It is necessary for linking the library.
6
-
7
- # The name that we can dlopen(3).
8
- dlname='libev.3.dylib'
9
-
10
- # Names of this library.
11
- library_names='libev.3.0.0.dylib libev.3.dylib libev.dylib'
12
-
13
- # The name of the static archive.
14
- old_library='libev.a'
15
-
16
- # Libraries that this one depends upon.
17
- dependency_libs=' -lm'
18
-
19
- # Version information for libev.
20
- current=3
21
- age=0
22
- revision=0
23
-
24
- # Is this an already installed library?
25
- installed=no
26
-
27
- # Should we warn about portability when linking against -modules?
28
- shouldnotlink=no
29
-
30
- # Files to dlopen/dlpreopen
31
- dlopen=''
32
- dlpreopen=''
33
-
34
- # Directory that this library needs to be installed in:
35
- libdir='/usr/local/lib'