lib/onstomp/components/frame_headers.rb in onstomp-1.0.0pre1 vs lib/onstomp/components/frame_headers.rb in onstomp-1.0.0

- old
+ new

@@ -12,11 +12,11 @@ # parameter. # @param [Hash] headers # @see #merge! def initialize(headers={}) @values = {} - __initialize_names__ + initialize_names merge! headers end # Merges a hash into this collection of headers. All of the keys used # in the hash must be convertable to Symbols through +to_sym+. @@ -113,11 +113,11 @@ # headers.delete(:'content-type') #=> [ 'text/html' ] # headers.delete('no such header') #=> nil def delete(name) name = name.to_sym if @values.key? name - __delete_name__ name + delete_name name @values.delete name end end # Gets the principle header value paired with the supplied header name. The name will @@ -148,11 +148,11 @@ # headers[:'content-type'] = nil #=> '' # headers['content-type'] #=> '' def []=(name, val) name = name.to_sym val = val.to_s - __add_name__ name + add_name name @values[name] = [val] val end # Returns a new +Hash+ object associating symbolized header names and their @@ -160,53 +160,50 @@ # @return [Hash] def to_hash @values.inject({}) { |h, (k,v)| h[k] = v.first; h } end + # Iterates over header name / value pairs, yielding them as a pair + # of strings to the supplied block. + # @yield [header_name, header_value] + # @yieldparam [String] header_name + # @yieldparam [String] header_value + def each &block + if block_given? + iterate_each &block + self + else + OnStomp::ENUMERATOR_KLASS.new(self) + end + end + if RUBY_VERSION >= "1.9" def names; @values.keys; end - def each(&block) - if block_given? - @values.each do |name, vals| - name_str = name.to_s - vals.each do |val| - yield [name_str, val] - end + private + def iterate_each + @values.each do |name, vals| + name_str = name.to_s + vals.each do |val| + yield [name_str, val] end - self - else - Enumerator.new(self) end end - - private - def __initialize_names__; end - def __delete_name__(name); end - def __add_name__(name); end + def initialize_names; end + def delete_name(name); end + def add_name(name); end else attr_reader :names - - # Iterates over header name / value pairs, yielding them as a pair - # of strings to the supplied block. - # @yield [header_name, header_value] - # @yieldparam [String] header_name - # @yieldparam [String] header_value - def each(&block) - if block_given? - @names.each do |name| - @values[name].each do |val| - yield [name.to_s, val] - end + + private + def iterate_each + @names.each do |name| + @values[name].each do |val| + yield [name.to_s, val] end - self - else - Enumerable::Enumerator.new(self) end end - - private - def __initialize_names__; @names = []; end - def __delete_name__(name); @names.delete name; end - def __add_name__(name); @names << name unless @values.key?(name); end + def initialize_names; @names = []; end + def delete_name(name); @names.delete name; end + def add_name(name); @names << name unless @values.key?(name); end end end