eventmachine 1.0.9.1 → 1.2.0.dev.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -2
  3. data/ext/cmain.cpp +77 -5
  4. data/ext/ed.cpp +100 -39
  5. data/ext/ed.h +27 -13
  6. data/ext/em.cpp +105 -163
  7. data/ext/em.h +10 -7
  8. data/ext/eventmachine.h +13 -1
  9. data/ext/extconf.rb +22 -13
  10. data/ext/fastfilereader/rubymain.cpp +6 -6
  11. data/ext/project.h +9 -4
  12. data/ext/rubymain.cpp +155 -36
  13. data/ext/ssl.cpp +157 -13
  14. data/ext/ssl.h +7 -2
  15. data/lib/em/channel.rb +5 -0
  16. data/lib/em/completion.rb +2 -2
  17. data/lib/em/connection.rb +61 -3
  18. data/lib/em/iterator.rb +26 -5
  19. data/lib/em/pool.rb +1 -1
  20. data/lib/em/protocols/line_and_text.rb +1 -1
  21. data/lib/em/pure_ruby.rb +6 -1
  22. data/lib/em/queue.rb +16 -7
  23. data/lib/em/resolver.rb +46 -23
  24. data/lib/em/threaded_resource.rb +2 -2
  25. data/lib/em/version.rb +1 -1
  26. data/lib/eventmachine.rb +59 -42
  27. data/rakelib/package.rake +23 -1
  28. data/tests/dhparam.pem +13 -0
  29. data/tests/em_test_helper.rb +79 -0
  30. data/tests/test_basic.rb +17 -26
  31. data/tests/test_channel.rb +14 -1
  32. data/tests/test_connection_write.rb +2 -2
  33. data/tests/test_defer.rb +17 -0
  34. data/tests/test_epoll.rb +1 -1
  35. data/tests/test_fork.rb +75 -0
  36. data/tests/test_ipv4.rb +125 -0
  37. data/tests/test_ipv6.rb +131 -0
  38. data/tests/test_iterator.rb +18 -0
  39. data/tests/test_many_fds.rb +1 -1
  40. data/tests/test_queue.rb +14 -0
  41. data/tests/test_resolver.rb +23 -0
  42. data/tests/test_set_sock_opt.rb +2 -0
  43. data/tests/test_ssl_dhparam.rb +83 -0
  44. data/tests/test_ssl_ecdh_curve.rb +79 -0
  45. data/tests/test_ssl_extensions.rb +49 -0
  46. data/tests/test_ssl_methods.rb +19 -0
  47. data/tests/test_ssl_protocols.rb +246 -0
  48. data/tests/test_ssl_verify.rb +44 -0
  49. data/tests/test_system.rb +4 -0
  50. data/tests/test_unbind_reason.rb +5 -1
  51. metadata +116 -49
  52. data/.gitignore +0 -21
  53. data/.travis.yml +0 -22
  54. data/.yardopts +0 -7
  55. data/Gemfile +0 -2
  56. data/Rakefile +0 -20
  57. data/eventmachine.gemspec +0 -38
  58. data/rakelib/cpp.rake_example +0 -77
@@ -1,77 +0,0 @@
1
- # EventMachine C++ Rakefile Stab Case
2
- # TODO : track header files as a build dependency...
3
- # TODO : cross platform support
4
- # TODO : configure style functionality
5
- namespace :cpp do
6
-
7
- require 'rake/clean'
8
-
9
- # *nix only atm...
10
- module Cpp
11
- class <<self
12
- def cpp; "g++"; end
13
- def archive; "ar"; end
14
- def compile file, output, includes=nil, flags=nil
15
- sh %{#{cpp} #{file} #{includes} #{flags} -c -o #{output}}
16
- end
17
- def link file, output, libs=nil, flags=nil
18
- sh %{#{cpp} #{file} #{libs} #{flags} -o #{output}}
19
- end
20
- def static output, files
21
- sh %{#{archive} cr #{output} #{files}}
22
- end
23
- end
24
- end
25
-
26
- module EmConfig
27
- Path = ENV['EVENTMACHINE_SOURCE'] || 'ext'
28
- Sources = FileList["#{Path}/*.cpp"]
29
- Sources.delete_if { |s| /ruby/ =~ s }
30
- Compiled = Sources.sub(%r{^#{Path}/(.*)\.cpp}, "#{Path}/\\1.o")
31
-
32
- Flags = "-O2 -pipe -fno-common -DOS_UNIX -DWITHOUT_SSL"
33
- Includes = ""
34
- Libs = ''
35
- end
36
- CLEAN.include(EmConfig::Compiled)
37
-
38
- rule %r{^#{EmConfig::Path}/.*\.o$} => [proc { |targ|
39
- targ.sub(%r{^#{EmConfig::Path}/(.*)\.o$}, "#{EmConfig::Path}/\\1.cpp")
40
- }] do |t|
41
- Cpp.compile t.source, t.name, EmConfig::Includes, EmConfig::Flags
42
- end
43
-
44
- file "#{EmConfig::Path}/libeventmachine.a" => EmConfig::Compiled do |t|
45
- Cpp.static t.name, EmConfig::Compiled
46
- end
47
- CLEAN.include("#{EmConfig::Path}/libeventmachine.a")
48
-
49
- module AppConfig
50
- Appname = 'echo_em'
51
- Sources = FileList['*.cpp']
52
- Compiled = Sources.sub(%r{^(.*)\.cpp}, '\\1.o')
53
-
54
- Flags = ["", EmConfig::Flags].join(' ')
55
- Includes = ["-I. -I#{EmConfig::Path}", EmConfig::Includes].join(' ')
56
- Libs = ["-L#{EmConfig::Path} -leventmachine", EmConfig::Libs].join(' ')
57
- end
58
- CLEAN.include(AppConfig::Compiled)
59
- CLEAN.include(AppConfig::Appname)
60
-
61
- rule %r{^.*\.o$} => [proc { |targ|
62
- targ.sub(%r{^(.*)\.o$}, '\\1.cpp')
63
- }] do |t|
64
- Cpp.compile t.source, t.name, AppConfig::Includes, AppConfig::Flags
65
- end
66
-
67
- file AppConfig::Appname => ["#{EmConfig::Path}/libeventmachine.a", AppConfig::Compiled] do |t|
68
- Cpp.link AppConfig::Compiled, t.name, AppConfig::Libs, AppConfig::Flags
69
- end
70
-
71
- task :build => AppConfig::Appname
72
-
73
- task :run => AppConfig::Appname do
74
- sh "./#{AppConfig::Appname}"
75
- end
76
-
77
- end