diff --git a/.gitignore b/.gitignore index b2e7312..3806b27 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -/em-websocket-*.gem +/em-websocket-0.5.1.gem diff --git a/em-websocket-client.rb b/em-websocket-client.rb deleted file mode 100644 index e63b217..0000000 --- a/em-websocket-client.rb +++ /dev/null @@ -1,67 +0,0 @@ -require 'eventmachine' -require 'uri' -require 'websocket' - -module EventMachine - class WebSocketClient < Connection - include Deferrable - - attr_accessor :url - attr_accessor :protocol_version - attr_accessor :origin - - def self.connect(uri, opts={}) - p_uri = URI.parse(uri) - conn = EM.connect(p_uri.host, p_uri.port || 80, self) do |c| - c.url = uri - c.protocol_version = opts[:version] - c.origin = opts[:origin] - end - end - - def post_init - @handshaked = false - @frame = ::WebSocket::Frame::Incoming::Client.new - end - - def connection_completed - @connect.yield if @connect - @hs = ::WebSocket::Handshake::Client.new(:url => @url, - :origin => @origin, - :version => @protocol_version) - send_data @hs.to_s - end - - def stream &cb; @stream = cb; end - def connected &cb; @connect = cb; end - def disconnect &cb; @disconnect = cb; end - - def receive_data data - if !@handshaked - @hs << data - if @hs.finished? - @handshaked = true - succeed - end - - receive_data(@hs.leftovers) if @hs.leftovers - else - @frame << data - while msg = @frame.next - @stream.call(msg) if @stream - end - end - end - - def send_msg(s, args={}) - type = args[:type] || :text - frame = ::WebSocket::Frame::Outgoing::Client.new(:data => s, :type => type, :version => @hs.version) - send_data frame.to_s - end - - def unbind - super - @disconnect.call if @disconnect - end - end -end diff --git a/rubygem-em-websocket.spec b/rubygem-em-websocket.spec index ad36468..a963656 100644 --- a/rubygem-em-websocket.spec +++ b/rubygem-em-websocket.spec @@ -1,26 +1,18 @@ -# Generated from em-websocket-0.5.3.gem by gem2rpm -*- rpm-spec -*- +# Generated from em-websocket-0.5.1.gem by gem2rpm -*- rpm-spec -*- %global gem_name em-websocket Name: rubygem-%{gem_name} -Version: 0.5.3 -Release: 7%{?dist} +Version: 0.5.1 +Release: 3%{?dist} Epoch: 1 Summary: EventMachine based WebSocket server License: MIT URL: http://github.com/igrigorik/em-websocket Source0: https://rubygems.org/gems/%{gem_name}-%{version}.gem -# Test suite depends on specific version of em-websocket-client -# that isn't pushed into master branch: -# https://github.com/igrigorik/em-websocket/blob/master/Gemfile#L5 -# Luckily, the package is actually just one small file: -# https://github.com/movitto/em-websocket-client/blob/expose-websocket-api/lib/em-websocket-client.rb -Source1: https://raw.githubusercontent.com/movitto/em-websocket-client/expose-websocket-api/lib/em-websocket-client.rb BuildRequires: ruby(release) BuildRequires: rubygems-devel BuildRequires: ruby BuildRequires: rubygem(rspec) -BuildRequires: rubygem(em-http-request) -BuildRequires: rubygem(em-websocket-client) BuildRequires: rubygem(em-spec) BuildRequires: rubygem(http_parser.rb) BuildArch: noarch @@ -38,12 +30,15 @@ BuildArch: noarch Documentation for %{name}. %prep -%setup -q -n %{gem_name}-%{version} +gem unpack %{SOURCE0} + +%setup -q -D -T -n %{gem_name}-%{version} + +gem spec %{SOURCE0} -l --ruby > %{gem_name}.gemspec %build # Create the gem as gem install only works on a gem file -%gemspec_add_dep -g base64 ">= 0.2.0" -gem build ../%{gem_name}-%{version}.gemspec +gem build %{gem_name}.gemspec # %%gem_install compiles any C extensions and installs the gem into ./%%gem_dir # by default, so that we can move it into the buildroot in %%install @@ -54,18 +49,27 @@ mkdir -p %{buildroot}%{gem_dir} cp -a .%{gem_dir}/* \ %{buildroot}%{gem_dir}/ + + %check pushd .%{gem_instdir} -rspec -I %{dirname:%{SOURCE1}} spec +# we do not have packages needed for tests in fedora +sed -i '/em-http/ s/^/#/' spec/helper.rb +sed -i '/em-websocket-client/ s/^/#/' spec/helper.rb + +mv spec/integration/common_spec.rb{,.bak} +mv spec/integration/draft75_spec.rb{,.bak} + +rspec spec popd %files %dir %{gem_instdir} %exclude %{gem_instdir}/.gitignore +%exclude %{gem_instdir}/em-websocket.gemspec %{gem_libdir} %exclude %{gem_cache} %{gem_spec} -%license %{gem_instdir}/LICENCE %files doc %doc %{gem_docdir} @@ -73,75 +77,15 @@ popd %{gem_instdir}/Gemfile %doc %{gem_instdir}/README.md %{gem_instdir}/Rakefile -%{gem_instdir}/em-websocket.gemspec %{gem_instdir}/examples %{gem_instdir}/spec %changelog -* Fri Jul 25 2025 Fedora Release Engineering - 1:0.5.3-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild +* Fri May 11 2018 Jaroslav Prokop - 1:0.5.1-3 +- The package does not have packages needed for tests in f28 -* Sat Jan 18 2025 Fedora Release Engineering - 1:0.5.3-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild - -* Mon Nov 18 2024 Mamoru TASAKA - 1:0.5.3-5 -- Add runtime dependency for base64 explicitly for ruby34 - -* Fri Jul 19 2024 Fedora Release Engineering - 1:0.5.3-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild - -* Fri Jan 26 2024 Fedora Release Engineering - 1:0.5.3-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Mon Jan 22 2024 Fedora Release Engineering - 1:0.5.3-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Mon Jul 31 2023 Jarek Prokop - 1:0.5.3-1 -- Upgrade to em-websocket 0.5.3. - Resolves: rhbz#2227733 - -* Fri Jul 21 2023 Fedora Release Engineering - 1:0.5.2-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Fri Jan 20 2023 Fedora Release Engineering - 1:0.5.2-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Sat Jul 23 2022 Fedora Release Engineering - 1:0.5.2-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Fri Jan 21 2022 Fedora Release Engineering - 1:0.5.2-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Fri Jul 23 2021 Fedora Release Engineering - 1:0.5.2-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Wed Jan 27 2021 Fedora Release Engineering - 1:0.5.2-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Tue Oct 13 11:47:40 CEST 2020 Pavel Valena - 1:0.5.2-1 -- Update to em-websocket 0.5.2. - Resolves: rhbz#1882156 - -* Wed Jul 29 2020 Fedora Release Engineering - 1:0.5.1-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Thu Jan 30 2020 Fedora Release Engineering - 1:0.5.1-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Fri Jul 26 2019 Fedora Release Engineering - 1:0.5.1-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Sat Feb 02 2019 Fedora Release Engineering - 1:0.5.1-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Sat Jul 14 2018 Fedora Release Engineering - 1:0.5.1-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Fri May 11 2018 Jaroslav Prokop - 1:0.5.1-2 -- Fix version number to 2 instead of 22, bump epoch as I did earlier in f28 branch. - -* Thu Apr 5 2018 Jaroslav Prokop - 0.5.1-22 -- Enable test suites after needed packages were imported to Fedora. +* Thu Apr 5 2018 Jaroslav Prokop - 0.5.1-2 +- Enable test suites after needed packages were imported to Fedora. * Wed Jan 24 2018 Jaroslav Prokop - 0.5.1-1 - Initial package diff --git a/sources b/sources index 4e2252b..625b1e2 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (em-websocket-0.5.3.gem) = 67eddb71428331a09ead59e3bf4b1e145c660a000de57db67b974e0f2d11315b8a4f173961190db868f94d9fd74ed312f5164abf9d3f4950e4c22a0aa542a064 +SHA512 (em-websocket-0.5.1.gem) = ca67da805a67ca7ff840cf58836e6abe5e7a965d50de529cc624b214a1cd8bd4b48ee469ab2266bd80040c94315d59f8fb5903bbf543240fbbe90e80bede0702