sidekick-client 0.1.0
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.
- data/.document +5 -0
- data/.gitignore +21 -0
- data/LICENSE +20 -0
- data/README.rdoc +17 -0
- data/Rakefile +52 -0
- data/VERSION +1 -0
- data/lib/ext/README +1 -0
- data/lib/ext/bunny-0.6.0/LICENSE +20 -0
- data/lib/ext/bunny-0.6.0/README.rdoc +66 -0
- data/lib/ext/bunny-0.6.0/Rakefile +24 -0
- data/lib/ext/bunny-0.6.0/bunny.gemspec +65 -0
- data/lib/ext/bunny-0.6.0/examples/simple_08.rb +30 -0
- data/lib/ext/bunny-0.6.0/examples/simple_09.rb +30 -0
- data/lib/ext/bunny-0.6.0/examples/simple_ack_08.rb +33 -0
- data/lib/ext/bunny-0.6.0/examples/simple_ack_09.rb +33 -0
- data/lib/ext/bunny-0.6.0/examples/simple_consumer_08.rb +53 -0
- data/lib/ext/bunny-0.6.0/examples/simple_consumer_09.rb +53 -0
- data/lib/ext/bunny-0.6.0/examples/simple_fanout_08.rb +39 -0
- data/lib/ext/bunny-0.6.0/examples/simple_fanout_09.rb +39 -0
- data/lib/ext/bunny-0.6.0/examples/simple_headers_08.rb +40 -0
- data/lib/ext/bunny-0.6.0/examples/simple_headers_09.rb +40 -0
- data/lib/ext/bunny-0.6.0/examples/simple_publisher_08.rb +27 -0
- data/lib/ext/bunny-0.6.0/examples/simple_publisher_09.rb +27 -0
- data/lib/ext/bunny-0.6.0/examples/simple_topic_08.rb +59 -0
- data/lib/ext/bunny-0.6.0/examples/simple_topic_09.rb +59 -0
- data/lib/ext/bunny-0.6.0/lib/bunny/channel08.rb +39 -0
- data/lib/ext/bunny-0.6.0/lib/bunny/channel09.rb +39 -0
- data/lib/ext/bunny-0.6.0/lib/bunny/client08.rb +494 -0
- data/lib/ext/bunny-0.6.0/lib/bunny/client09.rb +460 -0
- data/lib/ext/bunny-0.6.0/lib/bunny/exchange08.rb +175 -0
- data/lib/ext/bunny-0.6.0/lib/bunny/exchange09.rb +177 -0
- data/lib/ext/bunny-0.6.0/lib/bunny/queue08.rb +389 -0
- data/lib/ext/bunny-0.6.0/lib/bunny/queue09.rb +395 -0
- data/lib/ext/bunny-0.6.0/lib/bunny/subscription08.rb +85 -0
- data/lib/ext/bunny-0.6.0/lib/bunny/subscription09.rb +85 -0
- data/lib/ext/bunny-0.6.0/lib/bunny.rb +87 -0
- data/lib/ext/bunny-0.6.0/lib/qrack/channel.rb +18 -0
- data/lib/ext/bunny-0.6.0/lib/qrack/client.rb +204 -0
- data/lib/ext/bunny-0.6.0/lib/qrack/protocol/protocol08.rb +132 -0
- data/lib/ext/bunny-0.6.0/lib/qrack/protocol/protocol09.rb +133 -0
- data/lib/ext/bunny-0.6.0/lib/qrack/protocol/spec08.rb +823 -0
- data/lib/ext/bunny-0.6.0/lib/qrack/protocol/spec09.rb +521 -0
- data/lib/ext/bunny-0.6.0/lib/qrack/qrack08.rb +23 -0
- data/lib/ext/bunny-0.6.0/lib/qrack/qrack09.rb +23 -0
- data/lib/ext/bunny-0.6.0/lib/qrack/queue.rb +53 -0
- data/lib/ext/bunny-0.6.0/lib/qrack/subscription.rb +102 -0
- data/lib/ext/bunny-0.6.0/lib/qrack/transport/buffer08.rb +276 -0
- data/lib/ext/bunny-0.6.0/lib/qrack/transport/buffer09.rb +276 -0
- data/lib/ext/bunny-0.6.0/lib/qrack/transport/frame08.rb +112 -0
- data/lib/ext/bunny-0.6.0/lib/qrack/transport/frame09.rb +94 -0
- data/lib/ext/bunny-0.6.0/spec/spec_08/bunny_spec.rb +65 -0
- data/lib/ext/bunny-0.6.0/spec/spec_08/connection_spec.rb +12 -0
- data/lib/ext/bunny-0.6.0/spec/spec_08/exchange_spec.rb +162 -0
- data/lib/ext/bunny-0.6.0/spec/spec_08/queue_spec.rb +206 -0
- data/lib/ext/bunny-0.6.0/spec/spec_09/bunny_spec.rb +65 -0
- data/lib/ext/bunny-0.6.0/spec/spec_09/connection_spec.rb +12 -0
- data/lib/ext/bunny-0.6.0/spec/spec_09/exchange_spec.rb +162 -0
- data/lib/ext/bunny-0.6.0/spec/spec_09/queue_spec.rb +205 -0
- data/lib/ext/eventmachine-0.12.10/.gitignore +14 -0
- data/lib/ext/eventmachine-0.12.10/README +82 -0
- data/lib/ext/eventmachine-0.12.10/Rakefile +374 -0
- data/lib/ext/eventmachine-0.12.10/docs/COPYING +60 -0
- data/lib/ext/eventmachine-0.12.10/docs/ChangeLog +211 -0
- data/lib/ext/eventmachine-0.12.10/docs/DEFERRABLES +133 -0
- data/lib/ext/eventmachine-0.12.10/docs/EPOLL +141 -0
- data/lib/ext/eventmachine-0.12.10/docs/GNU +281 -0
- data/lib/ext/eventmachine-0.12.10/docs/INSTALL +13 -0
- data/lib/ext/eventmachine-0.12.10/docs/KEYBOARD +38 -0
- data/lib/ext/eventmachine-0.12.10/docs/LEGAL +25 -0
- data/lib/ext/eventmachine-0.12.10/docs/LIGHTWEIGHT_CONCURRENCY +70 -0
- data/lib/ext/eventmachine-0.12.10/docs/PURE_RUBY +75 -0
- data/lib/ext/eventmachine-0.12.10/docs/RELEASE_NOTES +94 -0
- data/lib/ext/eventmachine-0.12.10/docs/SMTP +2 -0
- data/lib/ext/eventmachine-0.12.10/docs/SPAWNED_PROCESSES +89 -0
- data/lib/ext/eventmachine-0.12.10/docs/TODO +8 -0
- data/lib/ext/eventmachine-0.12.10/eventmachine.gemspec +40 -0
- data/lib/ext/eventmachine-0.12.10/examples/ex_channel.rb +43 -0
- data/lib/ext/eventmachine-0.12.10/examples/ex_queue.rb +2 -0
- data/lib/ext/eventmachine-0.12.10/examples/helper.rb +2 -0
- data/lib/ext/eventmachine-0.12.10/ext/binder.cpp +125 -0
- data/lib/ext/eventmachine-0.12.10/ext/binder.h +46 -0
- data/lib/ext/eventmachine-0.12.10/ext/cmain.cpp +827 -0
- data/lib/ext/eventmachine-0.12.10/ext/cplusplus.cpp +202 -0
- data/lib/ext/eventmachine-0.12.10/ext/ed.cpp +1893 -0
- data/lib/ext/eventmachine-0.12.10/ext/ed.h +424 -0
- data/lib/ext/eventmachine-0.12.10/ext/em.cpp +2282 -0
- data/lib/ext/eventmachine-0.12.10/ext/em.h +232 -0
- data/lib/ext/eventmachine-0.12.10/ext/emwin.cpp +300 -0
- data/lib/ext/eventmachine-0.12.10/ext/emwin.h +94 -0
- data/lib/ext/eventmachine-0.12.10/ext/epoll.cpp +26 -0
- data/lib/ext/eventmachine-0.12.10/ext/epoll.h +25 -0
- data/lib/ext/eventmachine-0.12.10/ext/eventmachine.h +122 -0
- data/lib/ext/eventmachine-0.12.10/ext/eventmachine_cpp.h +96 -0
- data/lib/ext/eventmachine-0.12.10/ext/extconf.rb +148 -0
- data/lib/ext/eventmachine-0.12.10/ext/fastfilereader/extconf.rb +83 -0
- data/lib/ext/eventmachine-0.12.10/ext/fastfilereader/mapper.cpp +214 -0
- data/lib/ext/eventmachine-0.12.10/ext/fastfilereader/mapper.h +59 -0
- data/lib/ext/eventmachine-0.12.10/ext/fastfilereader/rubymain.cpp +127 -0
- data/lib/ext/eventmachine-0.12.10/ext/files.cpp +94 -0
- data/lib/ext/eventmachine-0.12.10/ext/files.h +65 -0
- data/lib/ext/eventmachine-0.12.10/ext/kb.cpp +81 -0
- data/lib/ext/eventmachine-0.12.10/ext/page.cpp +107 -0
- data/lib/ext/eventmachine-0.12.10/ext/page.h +51 -0
- data/lib/ext/eventmachine-0.12.10/ext/pipe.cpp +349 -0
- data/lib/ext/eventmachine-0.12.10/ext/project.h +151 -0
- data/lib/ext/eventmachine-0.12.10/ext/rubymain.cpp +1166 -0
- data/lib/ext/eventmachine-0.12.10/ext/sigs.cpp +89 -0
- data/lib/ext/eventmachine-0.12.10/ext/sigs.h +32 -0
- data/lib/ext/eventmachine-0.12.10/ext/ssl.cpp +460 -0
- data/lib/ext/eventmachine-0.12.10/ext/ssl.h +94 -0
- data/lib/ext/eventmachine-0.12.10/java/.classpath +8 -0
- data/lib/ext/eventmachine-0.12.10/java/.project +17 -0
- data/lib/ext/eventmachine-0.12.10/java/src/com/rubyeventmachine/EmReactor.java +570 -0
- data/lib/ext/eventmachine-0.12.10/java/src/com/rubyeventmachine/EmReactorException.java +40 -0
- data/lib/ext/eventmachine-0.12.10/java/src/com/rubyeventmachine/EventableChannel.java +69 -0
- data/lib/ext/eventmachine-0.12.10/java/src/com/rubyeventmachine/EventableDatagramChannel.java +189 -0
- data/lib/ext/eventmachine-0.12.10/java/src/com/rubyeventmachine/EventableSocketChannel.java +364 -0
- data/lib/ext/eventmachine-0.12.10/java/src/com/rubyeventmachine/application/Application.java +194 -0
- data/lib/ext/eventmachine-0.12.10/java/src/com/rubyeventmachine/application/Connection.java +74 -0
- data/lib/ext/eventmachine-0.12.10/java/src/com/rubyeventmachine/application/ConnectionFactory.java +37 -0
- data/lib/ext/eventmachine-0.12.10/java/src/com/rubyeventmachine/application/DefaultConnectionFactory.java +46 -0
- data/lib/ext/eventmachine-0.12.10/java/src/com/rubyeventmachine/application/PeriodicTimer.java +38 -0
- data/lib/ext/eventmachine-0.12.10/java/src/com/rubyeventmachine/application/Timer.java +54 -0
- data/lib/ext/eventmachine-0.12.10/java/src/com/rubyeventmachine/tests/ApplicationTest.java +109 -0
- data/lib/ext/eventmachine-0.12.10/java/src/com/rubyeventmachine/tests/ConnectTest.java +148 -0
- data/lib/ext/eventmachine-0.12.10/java/src/com/rubyeventmachine/tests/EMTest.java +80 -0
- data/lib/ext/eventmachine-0.12.10/java/src/com/rubyeventmachine/tests/TestDatagrams.java +53 -0
- data/lib/ext/eventmachine-0.12.10/java/src/com/rubyeventmachine/tests/TestServers.java +75 -0
- data/lib/ext/eventmachine-0.12.10/java/src/com/rubyeventmachine/tests/TestTimers.java +90 -0
- data/lib/ext/eventmachine-0.12.10/lib/em/buftok.rb +138 -0
- data/lib/ext/eventmachine-0.12.10/lib/em/callback.rb +26 -0
- data/lib/ext/eventmachine-0.12.10/lib/em/channel.rb +57 -0
- data/lib/ext/eventmachine-0.12.10/lib/em/connection.rb +564 -0
- data/lib/ext/eventmachine-0.12.10/lib/em/deferrable.rb +192 -0
- data/lib/ext/eventmachine-0.12.10/lib/em/file_watch.rb +54 -0
- data/lib/ext/eventmachine-0.12.10/lib/em/future.rb +61 -0
- data/lib/ext/eventmachine-0.12.10/lib/em/messages.rb +66 -0
- data/lib/ext/eventmachine-0.12.10/lib/em/process_watch.rb +44 -0
- data/lib/ext/eventmachine-0.12.10/lib/em/processes.rb +119 -0
- data/lib/ext/eventmachine-0.12.10/lib/em/protocols/header_and_content.rb +138 -0
- data/lib/ext/eventmachine-0.12.10/lib/em/protocols/httpclient.rb +263 -0
- data/lib/ext/eventmachine-0.12.10/lib/em/protocols/httpclient2.rb +590 -0
- data/lib/ext/eventmachine-0.12.10/lib/em/protocols/line_and_text.rb +125 -0
- data/lib/ext/eventmachine-0.12.10/lib/em/protocols/linetext2.rb +161 -0
- data/lib/ext/eventmachine-0.12.10/lib/em/protocols/memcache.rb +323 -0
- data/lib/ext/eventmachine-0.12.10/lib/em/protocols/object_protocol.rb +45 -0
- data/lib/ext/eventmachine-0.12.10/lib/em/protocols/postgres3.rb +247 -0
- data/lib/ext/eventmachine-0.12.10/lib/em/protocols/saslauth.rb +175 -0
- data/lib/ext/eventmachine-0.12.10/lib/em/protocols/smtpclient.rb +357 -0
- data/lib/ext/eventmachine-0.12.10/lib/em/protocols/smtpserver.rb +547 -0
- data/lib/ext/eventmachine-0.12.10/lib/em/protocols/socks4.rb +66 -0
- data/lib/ext/eventmachine-0.12.10/lib/em/protocols/stomp.rb +200 -0
- data/lib/ext/eventmachine-0.12.10/lib/em/protocols/tcptest.rb +53 -0
- data/lib/ext/eventmachine-0.12.10/lib/em/protocols.rb +36 -0
- data/lib/ext/eventmachine-0.12.10/lib/em/queue.rb +61 -0
- data/lib/ext/eventmachine-0.12.10/lib/em/spawnable.rb +85 -0
- data/lib/ext/eventmachine-0.12.10/lib/em/streamer.rb +130 -0
- data/lib/ext/eventmachine-0.12.10/lib/em/timers.rb +56 -0
- data/lib/ext/eventmachine-0.12.10/lib/em/version.rb +3 -0
- data/lib/ext/eventmachine-0.12.10/lib/eventmachine.rb +1592 -0
- data/lib/ext/eventmachine-0.12.10/lib/evma/callback.rb +32 -0
- data/lib/ext/eventmachine-0.12.10/lib/evma/container.rb +75 -0
- data/lib/ext/eventmachine-0.12.10/lib/evma/factory.rb +77 -0
- data/lib/ext/eventmachine-0.12.10/lib/evma/protocol.rb +87 -0
- data/lib/ext/eventmachine-0.12.10/lib/evma/reactor.rb +48 -0
- data/lib/ext/eventmachine-0.12.10/lib/evma.rb +32 -0
- data/lib/ext/eventmachine-0.12.10/lib/jeventmachine.rb +257 -0
- data/lib/ext/eventmachine-0.12.10/lib/pr_eventmachine.rb +1022 -0
- data/lib/ext/eventmachine-0.12.10/setup.rb +1585 -0
- data/lib/ext/eventmachine-0.12.10/tasks/cpp.rake_example +77 -0
- data/lib/ext/eventmachine-0.12.10/tests/client.crt +31 -0
- data/lib/ext/eventmachine-0.12.10/tests/client.key +51 -0
- data/lib/ext/eventmachine-0.12.10/tests/test_attach.rb +126 -0
- data/lib/ext/eventmachine-0.12.10/tests/test_basic.rb +284 -0
- data/lib/ext/eventmachine-0.12.10/tests/test_channel.rb +63 -0
- data/lib/ext/eventmachine-0.12.10/tests/test_connection_count.rb +35 -0
- data/lib/ext/eventmachine-0.12.10/tests/test_defer.rb +47 -0
- data/lib/ext/eventmachine-0.12.10/tests/test_epoll.rb +160 -0
- data/lib/ext/eventmachine-0.12.10/tests/test_error_handler.rb +35 -0
- data/lib/ext/eventmachine-0.12.10/tests/test_errors.rb +82 -0
- data/lib/ext/eventmachine-0.12.10/tests/test_exc.rb +55 -0
- data/lib/ext/eventmachine-0.12.10/tests/test_file_watch.rb +49 -0
- data/lib/ext/eventmachine-0.12.10/tests/test_futures.rb +198 -0
- data/lib/ext/eventmachine-0.12.10/tests/test_get_sock_opt.rb +30 -0
- data/lib/ext/eventmachine-0.12.10/tests/test_handler_check.rb +37 -0
- data/lib/ext/eventmachine-0.12.10/tests/test_hc.rb +218 -0
- data/lib/ext/eventmachine-0.12.10/tests/test_httpclient.rb +218 -0
- data/lib/ext/eventmachine-0.12.10/tests/test_httpclient2.rb +153 -0
- data/lib/ext/eventmachine-0.12.10/tests/test_inactivity_timeout.rb +50 -0
- data/lib/ext/eventmachine-0.12.10/tests/test_kb.rb +60 -0
- data/lib/ext/eventmachine-0.12.10/tests/test_ltp.rb +182 -0
- data/lib/ext/eventmachine-0.12.10/tests/test_ltp2.rb +317 -0
- data/lib/ext/eventmachine-0.12.10/tests/test_next_tick.rb +133 -0
- data/lib/ext/eventmachine-0.12.10/tests/test_object_protocol.rb +37 -0
- data/lib/ext/eventmachine-0.12.10/tests/test_pause.rb +70 -0
- data/lib/ext/eventmachine-0.12.10/tests/test_pending_connect_timeout.rb +48 -0
- data/lib/ext/eventmachine-0.12.10/tests/test_process_watch.rb +48 -0
- data/lib/ext/eventmachine-0.12.10/tests/test_processes.rb +128 -0
- data/lib/ext/eventmachine-0.12.10/tests/test_proxy_connection.rb +92 -0
- data/lib/ext/eventmachine-0.12.10/tests/test_pure.rb +125 -0
- data/lib/ext/eventmachine-0.12.10/tests/test_queue.rb +44 -0
- data/lib/ext/eventmachine-0.12.10/tests/test_running.rb +42 -0
- data/lib/ext/eventmachine-0.12.10/tests/test_sasl.rb +72 -0
- data/lib/ext/eventmachine-0.12.10/tests/test_send_file.rb +242 -0
- data/lib/ext/eventmachine-0.12.10/tests/test_servers.rb +76 -0
- data/lib/ext/eventmachine-0.12.10/tests/test_smtpclient.rb +83 -0
- data/lib/ext/eventmachine-0.12.10/tests/test_smtpserver.rb +85 -0
- data/lib/ext/eventmachine-0.12.10/tests/test_spawn.rb +322 -0
- data/lib/ext/eventmachine-0.12.10/tests/test_ssl_args.rb +79 -0
- data/lib/ext/eventmachine-0.12.10/tests/test_ssl_methods.rb +50 -0
- data/lib/ext/eventmachine-0.12.10/tests/test_ssl_verify.rb +82 -0
- data/lib/ext/eventmachine-0.12.10/tests/test_timers.rb +162 -0
- data/lib/ext/eventmachine-0.12.10/tests/test_ud.rb +36 -0
- data/lib/ext/eventmachine-0.12.10/tests/testem.rb +31 -0
- data/lib/ext/eventmachine-0.12.10/web/whatis +7 -0
- data/lib/ext/misc/README +1 -0
- data/lib/ext/misc/indifferent_access.rb +131 -0
- data/lib/ext/uuidtools-2.1.1/CHANGELOG +56 -0
- data/lib/ext/uuidtools-2.1.1/LICENSE +20 -0
- data/lib/ext/uuidtools-2.1.1/README +13 -0
- data/lib/ext/uuidtools-2.1.1/Rakefile +48 -0
- data/lib/ext/uuidtools-2.1.1/lib/compat/securerandom.rb +202 -0
- data/lib/ext/uuidtools-2.1.1/lib/uuidtools/version.rb +35 -0
- data/lib/ext/uuidtools-2.1.1/lib/uuidtools.rb +618 -0
- data/lib/ext/uuidtools-2.1.1/spec/spec.opts +1 -0
- data/lib/ext/uuidtools-2.1.1/spec/spec_helper.rb +7 -0
- data/lib/ext/uuidtools-2.1.1/spec/uuidtools/mac_address_spec.rb +15 -0
- data/lib/ext/uuidtools-2.1.1/spec/uuidtools/utility_spec.rb +21 -0
- data/lib/ext/uuidtools-2.1.1/spec/uuidtools/uuid_creation_spec.rb +121 -0
- data/lib/ext/uuidtools-2.1.1/spec/uuidtools/uuid_parsing_spec.rb +127 -0
- data/lib/ext/uuidtools-2.1.1/tasks/benchmark.rake +38 -0
- data/lib/ext/uuidtools-2.1.1/tasks/clobber.rake +2 -0
- data/lib/ext/uuidtools-2.1.1/tasks/gem.rake +68 -0
- data/lib/ext/uuidtools-2.1.1/tasks/git.rake +40 -0
- data/lib/ext/uuidtools-2.1.1/tasks/metrics.rake +22 -0
- data/lib/ext/uuidtools-2.1.1/tasks/rdoc.rake +29 -0
- data/lib/ext/uuidtools-2.1.1/tasks/rubyforge.rake +89 -0
- data/lib/ext/uuidtools-2.1.1/tasks/spec.rake +64 -0
- data/lib/ext/uuidtools-2.1.1/website/index.html +95 -0
- data/lib/sidekick/client/sidekick_client.rb +46 -0
- data/lib/sidekick/shared/sidekick_logger.rb +14 -0
- data/lib/sidekick/shared/sidekick_queue_publisher.rb +91 -0
- data/lib/sidekick-client.rb +7 -0
- data/sidekick-client.gemspec +289 -0
- data/test/helper.rb +10 -0
- data/test/test_sidekick-client.rb +7 -0
- metadata +311 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
--colour
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
require File.join(File.dirname(__FILE__), "../spec_helper.rb")
|
|
2
|
+
|
|
3
|
+
describe UUIDTools::UUID, "when obtaining a MAC address" do
|
|
4
|
+
before do
|
|
5
|
+
@mac_address = UUIDTools::UUID.mac_address
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
it "should obtain a MAC address" do
|
|
9
|
+
@mac_address.should_not be_nil
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
it "should cache the MAC address" do
|
|
13
|
+
@mac_address.object_id.should == UUIDTools::UUID.mac_address.object_id
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
require File.join(File.dirname(__FILE__), "../spec_helper.rb")
|
|
2
|
+
|
|
3
|
+
describe SecureRandom do
|
|
4
|
+
it "should correctly obtain random bits" do
|
|
5
|
+
bits = []
|
|
6
|
+
1000.times do
|
|
7
|
+
bits << SecureRandom.random_bytes(16)
|
|
8
|
+
end
|
|
9
|
+
# Check to make sure that none of the 10,000 strings were duplicates
|
|
10
|
+
(bits.map {|x| x.to_s}).uniq.size.should == bits.size
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
it "should return the correct number of random bits" do
|
|
14
|
+
SecureRandom.random_bytes(16).size.should == 16
|
|
15
|
+
SecureRandom.random_bytes(6).size.should == 6
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
it "should return a sane random number" do
|
|
19
|
+
SecureRandom.random_number(5000).should < 5000
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
require File.join(File.dirname(__FILE__), "../spec_helper.rb")
|
|
2
|
+
|
|
3
|
+
describe UUIDTools::UUID, "when generating" do
|
|
4
|
+
it "should correctly generate SHA1 variant UUIDs" do
|
|
5
|
+
UUIDTools::UUID.sha1_create(
|
|
6
|
+
UUIDTools::UUID_URL_NAMESPACE, 'http://sporkmonger.com'
|
|
7
|
+
).to_s.should == "f2d04685-b787-55da-8644-9bd28a6f5a53"
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
it "should correctly generate MD5 variant UUIDs" do
|
|
11
|
+
UUIDTools::UUID.md5_create(
|
|
12
|
+
UUIDTools::UUID_URL_NAMESPACE, 'http://sporkmonger.com'
|
|
13
|
+
).to_s.should == "15074785-9071-3fe3-89bd-876e4b9e919b"
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
it "should correctly generate timestamp variant UUIDs" do
|
|
17
|
+
UUIDTools::UUID.timestamp_create.should_not be_random_node_id
|
|
18
|
+
UUIDTools::UUID.timestamp_create.to_s.should_not ==
|
|
19
|
+
UUIDTools::UUID.timestamp_create.to_s
|
|
20
|
+
current_time = Time.now
|
|
21
|
+
UUIDTools::UUID.timestamp_create(current_time).to_s.should_not ==
|
|
22
|
+
UUIDTools::UUID.timestamp_create(current_time).to_s
|
|
23
|
+
uuids = []
|
|
24
|
+
1000.times do
|
|
25
|
+
uuids << UUIDTools::UUID.timestamp_create
|
|
26
|
+
end
|
|
27
|
+
# Check to make sure that none of the 1,000 UUIDs were duplicates
|
|
28
|
+
(uuids.map {|x| x.to_s}).uniq.size.should == uuids.size
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
it "should correctly generate UUIDs without a MAC address" do
|
|
32
|
+
mac_address = UUIDTools::UUID.mac_address
|
|
33
|
+
UUIDTools::UUID.mac_address = nil
|
|
34
|
+
UUIDTools::UUID.timestamp_create.should be_random_node_id
|
|
35
|
+
UUIDTools::UUID.mac_address = mac_address
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
it "should correctly generate random number variant UUIDs" do
|
|
39
|
+
uuids = []
|
|
40
|
+
1000.times do
|
|
41
|
+
uuids << UUIDTools::UUID.random_create
|
|
42
|
+
end
|
|
43
|
+
# Check to make sure that none of the 1,000 UUIDs were duplicates
|
|
44
|
+
(uuids.map {|x| x.to_s}).uniq.size.should == uuids.size
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
it "should throw an exception if a segment has an invalid value" do
|
|
48
|
+
(lambda do
|
|
49
|
+
UUIDTools::UUID.new(-1, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0])
|
|
50
|
+
end).should raise_error(ArgumentError)
|
|
51
|
+
(lambda do
|
|
52
|
+
UUIDTools::UUID.new(4294967296, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0])
|
|
53
|
+
end).should raise_error(ArgumentError)
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
it "should throw an exception if a segment has an invalid value" do
|
|
57
|
+
(lambda do
|
|
58
|
+
UUIDTools::UUID.new(0, -1, 0, 0, 0, [0, 0, 0, 0, 0, 0])
|
|
59
|
+
end).should raise_error(ArgumentError)
|
|
60
|
+
(lambda do
|
|
61
|
+
UUIDTools::UUID.new(0, 65536, 0, 0, 0, [0, 0, 0, 0, 0, 0])
|
|
62
|
+
end).should raise_error(ArgumentError)
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
it "should throw an exception if a segment has an invalid value" do
|
|
66
|
+
(lambda do
|
|
67
|
+
UUIDTools::UUID.new(0, 0, -1, 0, 0, [0, 0, 0, 0, 0, 0])
|
|
68
|
+
end).should raise_error(ArgumentError)
|
|
69
|
+
(lambda do
|
|
70
|
+
UUIDTools::UUID.new(0, 0, 65536, 0, 0, [0, 0, 0, 0, 0, 0])
|
|
71
|
+
end).should raise_error(ArgumentError)
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
it "should throw an exception if a segment has an invalid value" do
|
|
75
|
+
(lambda do
|
|
76
|
+
UUIDTools::UUID.new(0, 0, 0, -1, 0, [0, 0, 0, 0, 0, 0])
|
|
77
|
+
end).should raise_error(ArgumentError)
|
|
78
|
+
(lambda do
|
|
79
|
+
UUIDTools::UUID.new(0, 0, 0, 256, 0, [0, 0, 0, 0, 0, 0])
|
|
80
|
+
end).should raise_error(ArgumentError)
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
it "should throw an exception if a segment has an invalid value" do
|
|
84
|
+
(lambda do
|
|
85
|
+
UUIDTools::UUID.new(0, 0, 0, 0, -1, [0, 0, 0, 0, 0, 0])
|
|
86
|
+
end).should raise_error(ArgumentError)
|
|
87
|
+
(lambda do
|
|
88
|
+
UUIDTools::UUID.new(0, 0, 0, 0, 256, [0, 0, 0, 0, 0, 0])
|
|
89
|
+
end).should raise_error(ArgumentError)
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
it "should throw an exception if nodes are not a collection" do
|
|
93
|
+
(lambda do
|
|
94
|
+
UUIDTools::UUID.new(0, 0, 0, 0, 0, :bogus)
|
|
95
|
+
end).should raise_error(TypeError)
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
it "should throw an exception if nodes are the wrong size" do
|
|
99
|
+
(lambda do
|
|
100
|
+
UUIDTools::UUID.new(0, 0, 0, 0, 0, [0, 0, 0, 0, 0])
|
|
101
|
+
end).should raise_error(ArgumentError)
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
it "should throw an exception if any nodes have invalid values" do
|
|
105
|
+
(lambda do
|
|
106
|
+
UUIDTools::UUID.new(0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 256])
|
|
107
|
+
end).should raise_error(ArgumentError)
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
it "should throw an exception if parsing anything but a String" do
|
|
111
|
+
(lambda do
|
|
112
|
+
UUIDTools::UUID.parse(:bogus)
|
|
113
|
+
end).should raise_error(TypeError)
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
it "should throw an exception if raw parsing anything but a String" do
|
|
117
|
+
(lambda do
|
|
118
|
+
UUIDTools::UUID.parse_raw(:bogus)
|
|
119
|
+
end).should raise_error(TypeError)
|
|
120
|
+
end
|
|
121
|
+
end
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
require File.join(File.dirname(__FILE__), "../spec_helper.rb")
|
|
2
|
+
|
|
3
|
+
describe UUIDTools::UUID, "when parsing" do
|
|
4
|
+
it "should correctly parse the MAC address from a timestamp version UUID" do
|
|
5
|
+
UUIDTools::UUID.timestamp_create.mac_address.should ==
|
|
6
|
+
UUIDTools::UUID.mac_address
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
it "should correctly parse the variant from a timestamp version UUID" do
|
|
10
|
+
UUIDTools::UUID.timestamp_create.variant.should == 0b100
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
it "should correctly parse the version from a timestamp version UUID" do
|
|
14
|
+
UUIDTools::UUID.timestamp_create.version.should == 1
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
it "should correctly parse the timestamp from a timestamp version UUID" do
|
|
18
|
+
UUIDTools::UUID.timestamp_create.timestamp.should < Time.now + 1
|
|
19
|
+
UUIDTools::UUID.timestamp_create.timestamp.should > Time.now - 1
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
it "should not treat a timestamp version UUID as a nil UUID" do
|
|
23
|
+
UUIDTools::UUID.timestamp_create.should_not be_nil_uuid
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
it "should not treat a timestamp version UUID as a random node UUID" do
|
|
27
|
+
UUIDTools::UUID.timestamp_create.should_not be_random_node_id
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
it "should treat a timestamp version UUID as a random node UUID " +
|
|
31
|
+
"if there is no MAC address" do
|
|
32
|
+
old_mac_address = UUIDTools::UUID.mac_address
|
|
33
|
+
UUIDTools::UUID.mac_address = nil
|
|
34
|
+
UUIDTools::UUID.timestamp_create.should be_random_node_id
|
|
35
|
+
UUIDTools::UUID.mac_address = old_mac_address
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
it "should correctly identify the nil UUID" do
|
|
39
|
+
UUIDTools::UUID.new(0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0]).should be_nil_uuid
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
it "should correctly identify timestamp version UUIDs as valid" do
|
|
43
|
+
UUIDTools::UUID.timestamp_create.should be_valid
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
it "should correctly identify random number version UUIDs as valid" do
|
|
47
|
+
UUIDTools::UUID.random_create.should be_valid
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
it "should correctly identify SHA1 hash version UUIDs as valid" do
|
|
51
|
+
UUIDTools::UUID.sha1_create(
|
|
52
|
+
UUIDTools::UUID_URL_NAMESPACE, 'http://sporkmonger.com'
|
|
53
|
+
).should be_valid
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
it "should correctly identify MD5 hash version UUIDs as valid" do
|
|
57
|
+
UUIDTools::UUID.md5_create(
|
|
58
|
+
UUIDTools::UUID_URL_NAMESPACE, 'http://sporkmonger.com'
|
|
59
|
+
).should be_valid
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
it "should not identify the nil UUID as valid" do
|
|
63
|
+
UUIDTools::UUID.new(0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0]).should_not be_valid
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
it "should allow for sorting of UUID arrays" do
|
|
67
|
+
uuids = []
|
|
68
|
+
1000.times do
|
|
69
|
+
uuids << UUIDTools::UUID.timestamp_create
|
|
70
|
+
end
|
|
71
|
+
uuids.sort!
|
|
72
|
+
uuids.first.should < uuids.last
|
|
73
|
+
uuids.last.should > uuids.first
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
it "should allow for comparison of UUIDs" do
|
|
77
|
+
UUIDTools::UUID.new(0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0]).should <
|
|
78
|
+
UUIDTools::UUID.new(0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 1])
|
|
79
|
+
UUIDTools::UUID.new(0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 1]).should >
|
|
80
|
+
UUIDTools::UUID.new(0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0])
|
|
81
|
+
UUIDTools::UUID.new(0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0]).should ==
|
|
82
|
+
UUIDTools::UUID.new(0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0])
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
it "should produce the correct hexdigest for a UUID" do
|
|
86
|
+
UUIDTools::UUID.new(0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0]).hexdigest.should ==
|
|
87
|
+
"00000000000000000000000000000000"
|
|
88
|
+
UUIDTools::UUID.new(1, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0]).hexdigest.should ==
|
|
89
|
+
"00000001000000000000000000000000"
|
|
90
|
+
UUIDTools::UUID.timestamp_create.hexdigest.size.should == 32
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
it "should produce a sane hash value for a UUID" do
|
|
94
|
+
uuid = UUIDTools::UUID.new(0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0])
|
|
95
|
+
uuid.to_i.should == 0
|
|
96
|
+
uuid.hash.should be_kind_of(Fixnum)
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
it "should produce the correct URI for a UUID" do
|
|
100
|
+
UUIDTools::UUID.new(0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0]).to_uri.should ==
|
|
101
|
+
"urn:uuid:00000000-0000-0000-0000-000000000000"
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
it "should correctly test UUID equality" do
|
|
105
|
+
UUIDTools::UUID.new(0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0]).should be_eql(
|
|
106
|
+
UUIDTools::UUID.new(0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0])
|
|
107
|
+
)
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
it "should correctly parse integers" do
|
|
111
|
+
UUIDTools::UUID.new(0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0]).should ==
|
|
112
|
+
UUIDTools::UUID.parse_int(0)
|
|
113
|
+
UUIDTools::UUID.parse_int(0).should be_nil_uuid
|
|
114
|
+
uuid = UUIDTools::UUID.timestamp_create
|
|
115
|
+
UUIDTools::UUID.parse_int(uuid.to_i).should == uuid
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
it "should correctly parse hexdigests" do
|
|
119
|
+
UUIDTools::UUID.new(0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0]).should ==
|
|
120
|
+
UUIDTools::UUID.parse_hexdigest("00000000000000000000000000000000")
|
|
121
|
+
UUIDTools::UUID.parse_hexdigest(
|
|
122
|
+
"00000000000000000000000000000000"
|
|
123
|
+
).should be_nil_uuid
|
|
124
|
+
uuid = UUIDTools::UUID.timestamp_create
|
|
125
|
+
UUIDTools::UUID.parse_hexdigest(uuid.hexdigest).should == uuid
|
|
126
|
+
end
|
|
127
|
+
end
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
task :benchmark do
|
|
2
|
+
require 'lib/uuidtools'
|
|
3
|
+
require 'benchmark'
|
|
4
|
+
|
|
5
|
+
# Version 1
|
|
6
|
+
result = Benchmark.measure do
|
|
7
|
+
10000.times do
|
|
8
|
+
UUID.timestamp_create.to_s
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
puts "#{(10000.0 / result.real)} version 1 per second."
|
|
12
|
+
|
|
13
|
+
# Version 3
|
|
14
|
+
result = Benchmark.measure do
|
|
15
|
+
10000.times do
|
|
16
|
+
UUID.md5_create(UUID_URL_NAMESPACE,
|
|
17
|
+
"http://www.ietf.org/rfc/rfc4122.txt").to_s
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
puts "#{(10000.0 / result.real)} version 3 per second."
|
|
21
|
+
|
|
22
|
+
# Version 4
|
|
23
|
+
result = Benchmark.measure do
|
|
24
|
+
10000.times do
|
|
25
|
+
UUID.random_create.to_s
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
puts "#{(10000.0 / result.real)} version 4 per second."
|
|
29
|
+
|
|
30
|
+
# Version 5
|
|
31
|
+
result = Benchmark.measure do
|
|
32
|
+
10000.times do
|
|
33
|
+
UUID.sha1_create(UUID_URL_NAMESPACE,
|
|
34
|
+
"http://www.ietf.org/rfc/rfc4122.txt").to_s
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
puts "#{(10000.0 / result.real)} version 5 per second."
|
|
38
|
+
end
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
require "rake/gempackagetask"
|
|
2
|
+
|
|
3
|
+
namespace :gem do
|
|
4
|
+
GEM_SPEC = Gem::Specification.new do |s|
|
|
5
|
+
unless s.respond_to?(:add_development_dependency)
|
|
6
|
+
puts "The gem spec requires a newer version of RubyGems."
|
|
7
|
+
exit(1)
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
s.name = PKG_NAME
|
|
11
|
+
s.version = PKG_VERSION
|
|
12
|
+
s.summary = PKG_SUMMARY
|
|
13
|
+
s.description = PKG_DESCRIPTION
|
|
14
|
+
|
|
15
|
+
s.files = PKG_FILES.to_a
|
|
16
|
+
|
|
17
|
+
s.has_rdoc = true
|
|
18
|
+
s.extra_rdoc_files = %w( README )
|
|
19
|
+
s.rdoc_options.concat ["--main", "README"]
|
|
20
|
+
|
|
21
|
+
s.add_development_dependency("rake", ">= 0.8.3")
|
|
22
|
+
s.add_development_dependency("rspec", ">= 1.1.11")
|
|
23
|
+
s.add_development_dependency("launchy", ">= 0.3.2")
|
|
24
|
+
|
|
25
|
+
s.require_path = "lib"
|
|
26
|
+
|
|
27
|
+
s.author = "Bob Aman"
|
|
28
|
+
s.email = "bob@sporkmonger.com"
|
|
29
|
+
s.homepage = "http://#{PKG_NAME}.rubyforge.org/"
|
|
30
|
+
s.rubyforge_project = RUBY_FORGE_PROJECT
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
Rake::GemPackageTask.new(GEM_SPEC) do |p|
|
|
34
|
+
p.gem_spec = GEM_SPEC
|
|
35
|
+
p.need_tar = true
|
|
36
|
+
p.need_zip = true
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
desc "Show information about the gem"
|
|
40
|
+
task :debug do
|
|
41
|
+
puts GEM_SPEC.to_ruby
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
desc "Install the gem"
|
|
45
|
+
task :install => ["clobber", "gem:package"] do
|
|
46
|
+
sh "#{SUDO} gem install --local pkg/#{GEM_SPEC.full_name}"
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
desc "Uninstall the gem"
|
|
50
|
+
task :uninstall do
|
|
51
|
+
installed_list = Gem.source_index.find_name(PKG_NAME)
|
|
52
|
+
if installed_list &&
|
|
53
|
+
(installed_list.collect { |s| s.version.to_s}.include?(PKG_VERSION))
|
|
54
|
+
sh(
|
|
55
|
+
"#{SUDO} gem uninstall --version '#{PKG_VERSION}' " +
|
|
56
|
+
"--ignore-dependencies --executables #{PKG_NAME}"
|
|
57
|
+
)
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
desc "Reinstall the gem"
|
|
62
|
+
task :reinstall => [:uninstall, :install]
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
desc "Alias to gem:package"
|
|
66
|
+
task "gem" => "gem:package"
|
|
67
|
+
|
|
68
|
+
task "clobber" => ["gem:clobber_package"]
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
namespace :git do
|
|
2
|
+
namespace :tag do
|
|
3
|
+
desc "List tags from the Git repository"
|
|
4
|
+
task :list do
|
|
5
|
+
tags = `git tag -l`
|
|
6
|
+
tags.gsub!("\r", "")
|
|
7
|
+
tags = tags.split("\n").sort {|a, b| b <=> a }
|
|
8
|
+
puts tags.join("\n")
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
desc "Create a new tag in the Git repository"
|
|
12
|
+
task :create do
|
|
13
|
+
changelog = File.open("CHANGELOG", "r") { |file| file.read }
|
|
14
|
+
puts "-" * 80
|
|
15
|
+
puts changelog
|
|
16
|
+
puts "-" * 80
|
|
17
|
+
puts
|
|
18
|
+
|
|
19
|
+
v = ENV["VERSION"] or abort "Must supply VERSION=x.y.z"
|
|
20
|
+
abort "Versions don't match #{v} vs #{PKG_VERSION}" if v != PKG_VERSION
|
|
21
|
+
|
|
22
|
+
tag = "#{PKG_NAME}-#{PKG_VERSION}"
|
|
23
|
+
msg = "Release #{PKG_NAME}-#{PKG_VERSION}"
|
|
24
|
+
|
|
25
|
+
existing_tags = `git tag -l #{PKG_NAME}-*`.split("\n")
|
|
26
|
+
if existing_tags.include?(tag)
|
|
27
|
+
warn("Tag already exists, deleting...")
|
|
28
|
+
unless system "git tag -d #{tag}"
|
|
29
|
+
abort "Tag deletion failed."
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
puts "Creating git tag '#{tag}'..."
|
|
33
|
+
unless system "git tag -a -m \"#{msg}\" #{tag}"
|
|
34
|
+
abort "Tag creation failed."
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
task "gem:release" => "git:tag:create"
|