eventmachine 1.0.9.1 → 1.2.0.dev.2

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.
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