From 98ffa25a584c207f5fc1d03b5db60ea70e890586 Mon Sep 17 00:00:00 2001 From: PokeHuang Date: Tue, 25 Aug 2020 14:57:16 +0800 Subject: [PATCH] init rubygem-websocket package --- comment-broken-tests.patch | 17 ++++++++++ rubygem-websocket.spec | 63 +++++++++++++++++++++++++++++++++++++ rubygem-websocket.yaml | 4 +++ websocket-1.2.2.gem | Bin 0 -> 26112 bytes 4 files changed, 84 insertions(+) create mode 100644 comment-broken-tests.patch create mode 100644 rubygem-websocket.spec create mode 100644 rubygem-websocket.yaml create mode 100644 websocket-1.2.2.gem diff --git a/comment-broken-tests.patch b/comment-broken-tests.patch new file mode 100644 index 0000000..ba69c9a --- /dev/null +++ b/comment-broken-tests.patch @@ -0,0 +1,17 @@ +--- spec/support/all_client_drafts.rb.orig 2015-05-07 15:26:54.984167251 -0400 ++++ spec/support/all_client_drafts.rb 2015-05-07 15:26:58.875133190 -0400 +@@ -86,10 +86,10 @@ RSpec.shared_examples_for 'all client dr + validate_request + end + +- it 'should allow custom headers' do +- @request_params = { headers: { 'aaa' => 'bbb' } } +- validate_request +- end ++ #it 'should allow custom headers' do ++ # @request_params = { headers: { 'aaa' => 'bbb' } } ++ # validate_request ++ #end + + it 'should recognize unfinished requests' do + handshake << server_response[0..-20] diff --git a/rubygem-websocket.spec b/rubygem-websocket.spec new file mode 100644 index 0000000..139c1bd --- /dev/null +++ b/rubygem-websocket.spec @@ -0,0 +1,63 @@ +%global gem_name websocket +Name: rubygem-%{gem_name} +Version: 1.2.2 +Release: 1 +Summary: Universal Ruby library to handle WebSocket protocol +License: MIT +URL: http://github.com/imanel/websocket-ruby +Source0: https://rubygems.org/gems/%{gem_name}-%{version}.gem +Patch0: comment-broken-tests.patch +BuildRequires: ruby(release) rubygems-devel rubygem(rspec) ruby +BuildArch: noarch +Provides: rubygem(%{gem_name}) = %{version} +%description +Universal Ruby library to handle WebSocket protocol. + +%package doc +Summary: Documentation for %{name} +Requires: %{name} = %{version}-%{release} +BuildArch: noarch +%description doc +Documentation for %{name}. + +%prep +gem unpack %{SOURCE0} +%setup -q -D -T -n %{gem_name}-%{version} +%patch0 -p0 +gem spec %{SOURCE0} -l --ruby > %{gem_name}.gemspec + +%build +gem build %{gem_name}.gemspec +%gem_install + +%install +mkdir -p %{buildroot}%{gem_dir} +cp -pa .%{gem_dir}/* \ + %{buildroot}%{gem_dir}/ + +%check +pushd ./%{gem_instdir} +find spec -name *.rb | xargs sed -i '/its/ s/^/#/' +rspec -Ilib spec +popd + +%files +%dir %{gem_instdir} +%{gem_libdir} +%exclude %{gem_cache} +%exclude %{gem_instdir}/.gitignore +%exclude %{gem_instdir}/.travis.yml +%{gem_spec} +%doc %{gem_instdir}/README.md + +%files doc +%doc %{gem_docdir} +%doc %{gem_instdir}/CHANGELOG.md +%{gem_instdir}/Gemfile +%{gem_instdir}/Rakefile +%{gem_instdir}/spec +%{gem_instdir}/websocket.gemspec + +%changelog +* Thu Aug 20 2020 huangyangke - 1.2.2-1 +- package init diff --git a/rubygem-websocket.yaml b/rubygem-websocket.yaml new file mode 100644 index 0000000..a57b70c --- /dev/null +++ b/rubygem-websocket.yaml @@ -0,0 +1,4 @@ +version_control: github +src_repo: imanel/websocket-ruby +tag_prefix: "^v" +separator: "." diff --git a/websocket-1.2.2.gem b/websocket-1.2.2.gem new file mode 100644 index 0000000000000000000000000000000000000000..b884c0355408a47c884581a649e872b760540e12 GIT binary patch literal 26112 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�G_lYR!R>fX#xQHUNyZfU_3f!NI9KC2_ z2&_+voOSDM&kzG7#2qK7t(z8yWP`dg94rhgGBpQ6p0h9VBbGUBMNL zT-<$tGt<#zz})$Y4EsD9CCUI#xrae(T|?Z^&Hz!YmD@o32S@;hq6@OHF5SBuj1d|) ze*?i)%dndg<1Z#zpm2AB-LY^4Mz<9;6R+I%vIB+EQF7^8)_Nk;VtZ( z{G%{#&!hFrEcHOoSUD+8yXrTsj!PQ>oy_F{a3|vq$OOc4v{1Y{5&wPp*6Bq{b6})Y z+;Pzdn$hz)!wm|h^X#|;_EvtEE9-sk>gh@0Z7zQhQE$7E8&NLsVFz<_0&mbS2QH4m z5)%4IkEtK1X4B>M%zkqpwAikogwJ}2OKh-*hk$e!BTIs5Zks=PC)3-@^%jNPWB~yf z|C8geagbc@@ltlIt5{2(?w^2>z~Bb@+yzl4#Z5znDmH#vA8nOk8QX=_*C%Z{gHSOU-)zaC+AGGA@S~Uax!N4G%baKRYs{Z zgYwu5C9-ol#Xbj2dxlF)Ju+b+v zLAP&inFo(lgG5OZk&mwuSvJmINO&#!-XpY~6qy(%Srt)_3wl9$OZ&P+(@7|zW$N9a zHpjq0^CQ;6K99&R942{7gnX_So)b+1-B8|4Mt%PpCuMo(99io8sQlRkNseYbaoLW( zFpX&xK5gAV6_LM{)>HX`x@T)ig=EY%uqnwLLQe;mNAJtB*T;EyLe{=x-Is(SoAjk6 z&)~Yhzj%J5;nM;!D{EI+P#Yn*$!_K30vR^KLA^zJ=G$*@tsL$k&@0hX z80_{s!m;vYv66A;5*$7T;{YP-YkqyY1-pt{U&$SQz}jUWT+5|oCc2Rsk&oLgR%g@H z^@es?_dv|#j8(R%dm1};rww0r$kdAm4u7b9SUX6xKQ?8ueVjIxEE;Rd_s9lL3o5Rl z*qL0vc<@ZlQ{Z?f9iwmvt~Rj7uw(*&(J4U8D1V!pSVl=qbN}9iBH-6RRhNE(j2h|B z6n(cU*AZfj1x60tbNv$Uhk!aiy#ZGy!+}3L^&@l4m3)%&r52F4c+kq*>U8nU7CaS% znWcZoBQ1$Hq>?X9S+JGM(bqrCZ+(R%p?P!tm|Rn1Kc@tfO2w+^)83aPI8iZ$u_T4x ztSV^B16&@3aAa~s!{oH{43hQl0!(KTGi%KuJskV`eU293d`A)VXcN3;=mBYW} zPEfYFEHX{Upq1F(n_8M^_$ORFlcSd&^-FTx+n4WckA}>5m4OAujgRKKR+folcOAh6 zz{bobRoa$QqzC;8{UN4n4vV)8O&rfnP{E?<1~EY{>%Q@9Qo-!^$dA@c7v>}r4aUpt z3UtUKiJWs-KU5PC1qKdQ@!g!+AM?T#Kqz@)LDG_aZCVzF7U%O@?H{@Ko>V8@2#x>T zzx%7l>BgJAAHGO`6UU`KEg>(QU01eCU7 znJcLh%O(ielH9@r!l{m?I5}QGZKVt^hh^crt=G4}9W2Te0Pt{r-Y@xz6Y=-iKga)_ z0yd6zHqM^jZ#@P5tlql(?@)mMMx*}^{C6SIr(*ww|0^nvMFRiBfB!eU7XQirwM&%J z!jr$Jbd$qQLwvfr;^lRo)3su*|1F5-58FMvyfof)HK1~L( ztX_SaXuzG;R~vh5kIOHaF2y>NWx*7^iOkDW4U!4O7x%O+{k#Y#El}{uwiAu0owNpF zUK$iZnt9YKQpbFqBT3$1p|X6bgAqr{3v7Dq1=ji*QzOWl1g=bnuigfiwBqr`k1aXk z&*)OctQd92YAxS?71a2=ry%hdSaLAz4HhNCmA2rMi$2