slyphon-zookeeper 0.2.7 → 0.2.8
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/Rakefile +43 -2
- data/ext/Rakefile +1 -1
- data/ext/extconf.rb +11 -3
- data/ext/zookeeper_base.rb +8 -0
- data/ext/zookeeper_c.c +44 -6
- data/java/zookeeper_base.rb +8 -0
- data/lib/zookeeper.rb +10 -0
- data/slyphon-zookeeper.gemspec +2 -1
- data/spec/zookeeper_spec.rb +12 -0
- metadata +21 -5
    
        data/Rakefile
    CHANGED
    
    | @@ -1,8 +1,49 @@ | |
| 1 | 
            +
            def gemset_name
         | 
| 2 | 
            +
              ENV.fetch('GEM_HOME').split('@').last
         | 
| 3 | 
            +
            end
         | 
| 4 | 
            +
             | 
| 1 5 | 
             
            namespace :mb do
         | 
| 2 6 | 
             
              task :build_gems do
         | 
| 3 | 
            -
                sh "gem build slyphon-zookeeper.gemspec"
         | 
| 7 | 
            +
                sh "rvm 1.8.7 do gem build slyphon-zookeeper.gemspec"
         | 
| 4 8 | 
             
                ENV['JAVA_GEM'] = '1'
         | 
| 5 | 
            -
                sh "gem build slyphon-zookeeper.gemspec"
         | 
| 9 | 
            +
                sh "rvm 1.8.7 do gem build slyphon-zookeeper.gemspec"
         | 
| 6 10 | 
             
              end
         | 
| 7 11 | 
             
            end
         | 
| 8 12 |  | 
| 13 | 
            +
            %w[1.8.7 1.9.2 1.9.3 jruby].each do |rvm_ruby|
         | 
| 14 | 
            +
              ruby_with_gemset = "#{rvm_ruby}@#{gemset_name}"
         | 
| 15 | 
            +
             | 
| 16 | 
            +
              clobber_task_name = "mb:#{rvm_ruby}:clobber"
         | 
| 17 | 
            +
              build_task_name   = "mb:#{rvm_ruby}:build"
         | 
| 18 | 
            +
              bundle_task_name  = "mb:#{rvm_ruby}:bundle_install"
         | 
| 19 | 
            +
              rspec_task_name   = "mb:#{rvm_ruby}:run_rspec"
         | 
| 20 | 
            +
             | 
| 21 | 
            +
              task clobber_task_name do
         | 
| 22 | 
            +
                unless rvm_ruby == 'jruby'
         | 
| 23 | 
            +
                  cd 'ext' do
         | 
| 24 | 
            +
                    sh "rake clobber"
         | 
| 25 | 
            +
                  end
         | 
| 26 | 
            +
                end
         | 
| 27 | 
            +
              end
         | 
| 28 | 
            +
             | 
| 29 | 
            +
              task build_task_name => clobber_task_name do
         | 
| 30 | 
            +
                unless rvm_ruby == 'jruby'
         | 
| 31 | 
            +
                  cd 'ext' do
         | 
| 32 | 
            +
                    sh "rvm #{ruby_with_gemset} do rake build"
         | 
| 33 | 
            +
                  end
         | 
| 34 | 
            +
                end
         | 
| 35 | 
            +
              end
         | 
| 36 | 
            +
             | 
| 37 | 
            +
              task bundle_task_name => build_task_name do
         | 
| 38 | 
            +
                rm_f 'Gemfile.lock'
         | 
| 39 | 
            +
                sh "rvm #{ruby_with_gemset} do bundle install"
         | 
| 40 | 
            +
              end
         | 
| 41 | 
            +
             | 
| 42 | 
            +
              task rspec_task_name => bundle_task_name do
         | 
| 43 | 
            +
                sh "rvm #{ruby_with_gemset} do bundle exec rspec spec"
         | 
| 44 | 
            +
              end
         | 
| 45 | 
            +
             | 
| 46 | 
            +
              task "mb:test_all_rubies" => rspec_task_name
         | 
| 47 | 
            +
            end
         | 
| 48 | 
            +
             | 
| 49 | 
            +
             | 
    
        data/ext/Rakefile
    CHANGED
    
    
    
        data/ext/extconf.rb
    CHANGED
    
    | @@ -6,8 +6,16 @@ HERE = File.expand_path(File.dirname(__FILE__)) | |
| 6 6 | 
             
            BUNDLE = Dir.glob("zkc-*.tar.gz").first
         | 
| 7 7 | 
             
            BUNDLE_PATH = "c"
         | 
| 8 8 |  | 
| 9 | 
            -
            $ | 
| 10 | 
            -
             | 
| 9 | 
            +
            $EXTRA_CONF = ''
         | 
| 10 | 
            +
             | 
| 11 | 
            +
            # CLANG!!!! jeez, if apple would only *stop* "thinking different"
         | 
| 12 | 
            +
            if cc = RbConfig::CONFIG['CC'] && cc =~ /^gcc/
         | 
| 13 | 
            +
              $CC = cc
         | 
| 14 | 
            +
              $EXTRA_CONF = "#{$EXTRA_CONF} CC=#{$CC}"
         | 
| 15 | 
            +
            end
         | 
| 16 | 
            +
             | 
| 17 | 
            +
            $CFLAGS = "#{$CFLAGS}".gsub("$(cflags)", "").gsub("-arch ppc", "")
         | 
| 18 | 
            +
            $LDFLAGS = "#{$LDFLAGS}".gsub("$(ldflags)", "").gsub("-arch ppc", "")
         | 
| 11 19 | 
             
            $CXXFLAGS = " -std=gnu++98 #{$CFLAGS}"
         | 
| 12 20 | 
             
            $CPPFLAGS = $ARCH_FLAG = $DLDFLAGS = ""
         | 
| 13 21 |  | 
| @@ -16,7 +24,7 @@ DEBUG_CFLAGS = " -O0 -ggdb3 -DHAVE_DEBUG" | |
| 16 24 |  | 
| 17 25 | 
             
            if ZK_DEBUG
         | 
| 18 26 | 
             
              $stderr.puts "*** Setting debug flags. ***"
         | 
| 19 | 
            -
              $EXTRA_CONF = " --enable-debug"
         | 
| 27 | 
            +
              $EXTRA_CONF = "#{$EXTRA_CONF} --enable-debug"
         | 
| 20 28 | 
             
              $CFLAGS.gsub!(/ -O[^0] /, ' ')
         | 
| 21 29 | 
             
              $CFLAGS << DEBUG_CFLAGS
         | 
| 22 30 | 
             
            end
         | 
    
        data/ext/zookeeper_base.rb
    CHANGED
    
    | @@ -134,6 +134,14 @@ class ZookeeperBase < CZookeeper | |
| 134 134 | 
             
                super
         | 
| 135 135 | 
             
              end
         | 
| 136 136 |  | 
| 137 | 
            +
              def session_id
         | 
| 138 | 
            +
                client_id.session_id
         | 
| 139 | 
            +
              end
         | 
| 140 | 
            +
             | 
| 141 | 
            +
              def session_passwd
         | 
| 142 | 
            +
                client_id.passwd
         | 
| 143 | 
            +
              end
         | 
| 144 | 
            +
             | 
| 137 145 | 
             
            protected
         | 
| 138 146 | 
             
              def barf_unless_running!
         | 
| 139 147 | 
             
                @start_stop_mutex.synchronize do
         | 
    
        data/ext/zookeeper_c.c
    CHANGED
    
    | @@ -25,6 +25,7 @@ | |
| 25 25 | 
             
            #include "dbg.h"
         | 
| 26 26 |  | 
| 27 27 | 
             
            static VALUE Zookeeper = Qnil;
         | 
| 28 | 
            +
            static VALUE ZookeeperClientId = Qnil;
         | 
| 28 29 |  | 
| 29 30 | 
             
            // slyphon: possibly add a lock to this for synchronizing during get_next_event
         | 
| 30 31 |  | 
| @@ -542,12 +543,6 @@ static VALUE method_has_events(VALUE self) { | |
| 542 543 | 
             
              return rb_event;
         | 
| 543 544 | 
             
            }
         | 
| 544 545 |  | 
| 545 | 
            -
            static VALUE method_client_id(VALUE self) {
         | 
| 546 | 
            -
              FETCH_DATA_PTR(self, zk);
         | 
| 547 | 
            -
              const clientid_t *id = zoo_client_id(zk->zh);
         | 
| 548 | 
            -
              return UINT2NUM(id->client_id);
         | 
| 549 | 
            -
            }
         | 
| 550 | 
            -
             | 
| 551 546 |  | 
| 552 547 | 
             
            // wake up the event loop, used when shutting down
         | 
| 553 548 | 
             
            static VALUE method_wake_event_loop_bang(VALUE self) {
         | 
| @@ -612,6 +607,29 @@ static VALUE method_recv_timeout(VALUE self) { | |
| 612 607 | 
             
              return INT2NUM(zoo_recv_timeout(zk->zh));
         | 
| 613 608 | 
             
            }
         | 
| 614 609 |  | 
| 610 | 
            +
            /*static VALUE method_client_id(VALUE self) {*/
         | 
| 611 | 
            +
            /*  FETCH_DATA_PTR(self, zk);*/
         | 
| 612 | 
            +
            /*  const clientid_t *id = zoo_client_id(zk->zh);*/
         | 
| 613 | 
            +
            /*  return UINT2NUM(id->client_id);*/
         | 
| 614 | 
            +
            /*}*/
         | 
| 615 | 
            +
             | 
| 616 | 
            +
             | 
| 617 | 
            +
            // returns a CZookeeper::ClientId object with the values set for session_id and passwd
         | 
| 618 | 
            +
            static VALUE method_client_id(VALUE self) {
         | 
| 619 | 
            +
              FETCH_DATA_PTR(self, zk);
         | 
| 620 | 
            +
              const clientid_t *cid = zoo_client_id(zk->zh);
         | 
| 621 | 
            +
             | 
| 622 | 
            +
              VALUE session_id = LL2NUM(cid->client_id);
         | 
| 623 | 
            +
              VALUE passwd = rb_str_new2(cid->passwd);
         | 
| 624 | 
            +
             | 
| 625 | 
            +
              VALUE client_id_obj = rb_class_new_instance(0, RARRAY_PTR(rb_ary_new()), ZookeeperClientId);
         | 
| 626 | 
            +
             | 
| 627 | 
            +
              rb_funcall(client_id_obj, rb_intern("session_id="), 1, session_id);
         | 
| 628 | 
            +
              rb_funcall(client_id_obj, rb_intern("passwd="), 1, passwd);
         | 
| 629 | 
            +
             | 
| 630 | 
            +
              return client_id_obj;
         | 
| 631 | 
            +
            }
         | 
| 632 | 
            +
             | 
| 615 633 | 
             
            static VALUE klass_method_set_debug_level(VALUE klass, VALUE level) {
         | 
| 616 634 | 
             
              Check_Type(level, T_FIXNUM);
         | 
| 617 635 | 
             
              ZKRBDebugging = (FIX2INT(level) == ZOO_LOG_LEVEL_DEBUG);
         | 
| @@ -662,11 +680,31 @@ static void zkrb_define_methods(void) { | |
| 662 680 | 
             
              rb_define_method(Zookeeper, "wake_event_loop!", method_wake_event_loop_bang, 0);
         | 
| 663 681 | 
             
            }
         | 
| 664 682 |  | 
| 683 | 
            +
            // class CZookeeper::ClientId
         | 
| 684 | 
            +
            //   attr_accessor :session_id, :passwd
         | 
| 685 | 
            +
            //
         | 
| 686 | 
            +
            //   def initialize(session_id, passwd)
         | 
| 687 | 
            +
            //     @session_id = session_id
         | 
| 688 | 
            +
            //     @passwd = passwd
         | 
| 689 | 
            +
            //   end
         | 
| 690 | 
            +
            // end
         | 
| 691 | 
            +
             | 
| 692 | 
            +
            static VALUE zkrb_client_id_method_initialize(VALUE self) {
         | 
| 693 | 
            +
              rb_iv_set(self, "@session_id", Qnil);
         | 
| 694 | 
            +
              rb_iv_set(self, "@passwd", Qnil);
         | 
| 695 | 
            +
              return Qnil;
         | 
| 696 | 
            +
            }
         | 
| 697 | 
            +
             | 
| 665 698 | 
             
            void Init_zookeeper_c() {
         | 
| 666 699 | 
             
              ZKRBDebugging = 0;
         | 
| 667 700 | 
             
              /* initialize Zookeeper class */
         | 
| 668 701 | 
             
              Zookeeper = rb_define_class("CZookeeper", rb_cObject);
         | 
| 669 702 | 
             
              zkrb_define_methods();
         | 
| 703 | 
            +
             | 
| 704 | 
            +
              ZookeeperClientId = rb_define_class_under(Zookeeper, "ClientId", rb_cObject);
         | 
| 705 | 
            +
              rb_define_method(ZookeeperClientId, "initialize", zkrb_client_id_method_initialize, 0);
         | 
| 706 | 
            +
              rb_define_attr(ZookeeperClientId, "session_id", 1, 1);
         | 
| 707 | 
            +
              rb_define_attr(ZookeeperClientId, "passwd", 1, 1);
         | 
| 670 708 | 
             
            }
         | 
| 671 709 |  | 
| 672 710 | 
             
            // vim:ts=2:sw=2:sts=2:et
         | 
    
        data/java/zookeeper_base.rb
    CHANGED
    
    | @@ -475,6 +475,14 @@ class ZookeeperBase | |
| 475 475 | 
             
                @event_queue.clear_reads_on_pop = false
         | 
| 476 476 | 
             
                @event_queue.selectable_io
         | 
| 477 477 | 
             
              end
         | 
| 478 | 
            +
              
         | 
| 479 | 
            +
              def session_id
         | 
| 480 | 
            +
                @jzk.session_id
         | 
| 481 | 
            +
              end
         | 
| 482 | 
            +
             | 
| 483 | 
            +
              def session_passwd
         | 
| 484 | 
            +
                @jzk.session_passwd.to_s
         | 
| 485 | 
            +
              end
         | 
| 478 486 |  | 
| 479 487 | 
             
              def get_next_event(blocking=true)
         | 
| 480 488 | 
             
                @event_queue.pop(!blocking).tap do |event|
         | 
    
        data/lib/zookeeper.rb
    CHANGED
    
    | @@ -200,6 +200,16 @@ class Zookeeper < ZookeeperBase | |
| 200 200 | 
             
                super
         | 
| 201 201 | 
             
              end
         | 
| 202 202 |  | 
| 203 | 
            +
              # return the session id of the current connection as an Fixnum
         | 
| 204 | 
            +
              def session_id
         | 
| 205 | 
            +
                super
         | 
| 206 | 
            +
              end
         | 
| 207 | 
            +
             | 
| 208 | 
            +
              # Return the passwd portion of this connection's credentials as a String
         | 
| 209 | 
            +
              def session_passwd
         | 
| 210 | 
            +
                super
         | 
| 211 | 
            +
              end
         | 
| 212 | 
            +
             | 
| 203 213 | 
             
            protected
         | 
| 204 214 | 
             
              # used during shutdown, awaken the event delivery thread if it's blocked
         | 
| 205 215 | 
             
              # waiting for the next event
         | 
    
        data/slyphon-zookeeper.gemspec
    CHANGED
    
    | @@ -3,7 +3,7 @@ $:.push File.expand_path("../lib", __FILE__) | |
| 3 3 |  | 
| 4 4 | 
             
            Gem::Specification.new do |s|
         | 
| 5 5 | 
             
              s.name        = "slyphon-zookeeper"
         | 
| 6 | 
            -
              s.version     = '0.2. | 
| 6 | 
            +
              s.version     = '0.2.8'
         | 
| 7 7 |  | 
| 8 8 | 
             
              s.authors     = ["Phillip Pearson", "Eric Maland", "Evan Weaver", "Brian Wickman", "Neil Conway", "Jonathan D. Simms"]
         | 
| 9 9 | 
             
              s.email       = ["slyphon@gmail.com"]
         | 
| @@ -15,6 +15,7 @@ Gem::Specification.new do |s| | |
| 15 15 | 
             
              s.add_development_dependency 'flexmock', '~> 0.8.11'
         | 
| 16 16 | 
             
              s.add_development_dependency 'eventmachine', '1.0.0.beta.4'
         | 
| 17 17 | 
             
              s.add_development_dependency 'evented-spec', '~> 0.9.0'
         | 
| 18 | 
            +
              s.add_development_dependency 'rake', '~> 0.9.0'
         | 
| 18 19 |  | 
| 19 20 | 
             
              s.files         = `git ls-files`.split("\n")
         | 
| 20 21 | 
             
              s.require_paths = ["lib"]
         | 
    
        data/spec/zookeeper_spec.rb
    CHANGED
    
    | @@ -951,4 +951,16 @@ describe Zookeeper do | |
| 951 951 |  | 
| 952 952 | 
             
                end
         | 
| 953 953 | 
             
              end
         | 
| 954 | 
            +
             | 
| 955 | 
            +
              describe :session_id do
         | 
| 956 | 
            +
                it %[should return the session_id as a Fixnum] do
         | 
| 957 | 
            +
                  @zk.session_id.should be_kind_of(Fixnum)
         | 
| 958 | 
            +
                end
         | 
| 959 | 
            +
              end
         | 
| 960 | 
            +
             | 
| 961 | 
            +
              describe :session_passwd do
         | 
| 962 | 
            +
                it %[should return the session passwd as a String] do
         | 
| 963 | 
            +
                  @zk.session_passwd.should be_kind_of(String)
         | 
| 964 | 
            +
                end
         | 
| 965 | 
            +
              end
         | 
| 954 966 | 
             
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,13 +1,13 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification 
         | 
| 2 2 | 
             
            name: slyphon-zookeeper
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version 
         | 
| 4 | 
            -
              hash:  | 
| 4 | 
            +
              hash: 7
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
              segments: 
         | 
| 7 7 | 
             
              - 0
         | 
| 8 8 | 
             
              - 2
         | 
| 9 | 
            -
              -  | 
| 10 | 
            -
              version: 0.2. | 
| 9 | 
            +
              - 8
         | 
| 10 | 
            +
              version: 0.2.8
         | 
| 11 11 | 
             
            platform: ruby
         | 
| 12 12 | 
             
            authors: 
         | 
| 13 13 | 
             
            - Phillip Pearson
         | 
| @@ -20,7 +20,7 @@ autorequire: | |
| 20 20 | 
             
            bindir: bin
         | 
| 21 21 | 
             
            cert_chain: []
         | 
| 22 22 |  | 
| 23 | 
            -
            date:  | 
| 23 | 
            +
            date: 2012-01-27 00:00:00 Z
         | 
| 24 24 | 
             
            dependencies: 
         | 
| 25 25 | 
             
            - !ruby/object:Gem::Dependency 
         | 
| 26 26 | 
             
              name: rspec
         | 
| @@ -88,6 +88,22 @@ dependencies: | |
| 88 88 | 
             
                    version: 0.9.0
         | 
| 89 89 | 
             
              type: :development
         | 
| 90 90 | 
             
              version_requirements: *id004
         | 
| 91 | 
            +
            - !ruby/object:Gem::Dependency 
         | 
| 92 | 
            +
              name: rake
         | 
| 93 | 
            +
              prerelease: false
         | 
| 94 | 
            +
              requirement: &id005 !ruby/object:Gem::Requirement 
         | 
| 95 | 
            +
                none: false
         | 
| 96 | 
            +
                requirements: 
         | 
| 97 | 
            +
                - - ~>
         | 
| 98 | 
            +
                  - !ruby/object:Gem::Version 
         | 
| 99 | 
            +
                    hash: 59
         | 
| 100 | 
            +
                    segments: 
         | 
| 101 | 
            +
                    - 0
         | 
| 102 | 
            +
                    - 9
         | 
| 103 | 
            +
                    - 0
         | 
| 104 | 
            +
                    version: 0.9.0
         | 
| 105 | 
            +
              type: :development
         | 
| 106 | 
            +
              version_requirements: *id005
         | 
| 91 107 | 
             
            description: twitter's zookeeper client
         | 
| 92 108 | 
             
            email: 
         | 
| 93 109 | 
             
            - slyphon@gmail.com
         | 
| @@ -168,7 +184,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 168 184 | 
             
            requirements: []
         | 
| 169 185 |  | 
| 170 186 | 
             
            rubyforge_project: 
         | 
| 171 | 
            -
            rubygems_version: 1.8. | 
| 187 | 
            +
            rubygems_version: 1.8.10
         | 
| 172 188 | 
             
            signing_key: 
         | 
| 173 189 | 
             
            specification_version: 3
         | 
| 174 190 | 
             
            summary: twitter's zookeeper client
         |