pebbles-uid 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -7,10 +7,11 @@ module Pebbles
7
7
 
8
8
  NO_MARKER = Class.new
9
9
 
10
- attr_reader :values, :name, :suffix, :stop
10
+ attr_reader :values, :name, :suffix, :stop, :max_depth
11
11
 
12
12
  def initialize(values, options = {})
13
13
  @values = values
14
+ @max_depth = options[:max_depth]
14
15
  @name = options.fetch(:name) { 'label' }
15
16
  @suffix = options.fetch(:suffix) { nil }
16
17
  @stop = options.fetch(:stop) { NO_MARKER }
@@ -60,7 +61,7 @@ module Pebbles
60
61
  end
61
62
 
62
63
  def use_stop_marker?
63
- stop != NO_MARKER
64
+ stop != NO_MARKER && !(values.size == max_depth)
64
65
  end
65
66
 
66
67
  end
@@ -4,7 +4,7 @@ module Pebbles
4
4
 
5
5
  NO_MARKER = Class.new
6
6
 
7
- attr_reader :values, :name, :suffix, :stop
7
+ attr_reader :values, :name, :suffix, :stop, :max_depth
8
8
  def initialize(*values)
9
9
  options = values.pop if values.last.is_a?(Hash)
10
10
  options ||= {}
@@ -12,6 +12,7 @@ module Pebbles
12
12
  @name = options[:name]
13
13
  @suffix = options[:suffix]
14
14
  @stop = options.fetch(:stop) { NO_MARKER }
15
+ @max_depth = options[:max_depth]
15
16
  end
16
17
 
17
18
  def first
@@ -69,7 +70,7 @@ module Pebbles
69
70
  end
70
71
 
71
72
  def use_stop_marker?
72
- stop != NO_MARKER
73
+ stop != NO_MARKER && !(values.size == max_depth)
73
74
  end
74
75
 
75
76
  end
@@ -1,5 +1,5 @@
1
1
  module Pebbles
2
2
  class Uid
3
- VERSION = "0.0.4"
3
+ VERSION = "0.0.5"
4
4
  end
5
5
  end
@@ -16,6 +16,11 @@ describe Pebbles::Uid::Conditions do
16
16
  its(:to_hash) { should eq(:label_0 => "x", :label_1 => "y", :label_2 => "z", :label_3 => nil) }
17
17
  end
18
18
 
19
+ describe "stop label and max depth" do
20
+ subject { Pebbles::Uid::Conditions.new(%w(x y z), :stop => nil, :max_depth => 3) }
21
+ its(:to_hash) { should eq(:label_0 => "x", :label_1 => "y", :label_2 => "z") }
22
+ end
23
+
19
24
  describe "next label" do
20
25
  subject { Pebbles::Uid::Conditions.new(%w(h j k l), :name => 'vim') }
21
26
  its(:next) { should eq(:vim_4) }
data/spec/labels_spec.rb CHANGED
@@ -22,6 +22,11 @@ describe Pebbles::Uid::Labels do
22
22
  uid.to_hash.should eq(:whatevs_0_hey => 'a', :whatevs_1_hey => 'b', :whatevs_2_hey => 'c')
23
23
  end
24
24
 
25
+ it "handles max-depth" do
26
+ uid = Pebbles::Uid::Labels.new('a.b.c', :name => 'label', :stop => 'HALT', :max_depth => 3)
27
+ uid.to_hash.should eq(:label_0 => 'a', :label_1 => 'b', :label_2 => 'c')
28
+ end
29
+
25
30
  describe "alternate constructors" do
26
31
  it { Pebbles::Uid::Labels.new('a', 'b', 'c').to_s.should eq('a.b.c') }
27
32
  it { Pebbles::Uid::Labels.new(['a', 'b', 'c']).to_s.should eq('a.b.c') }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pebbles-uid
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2012-10-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
16
- requirement: &70099323387380 !ruby/object:Gem::Requirement
16
+ requirement: &70312268457800 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,7 +21,7 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70099323387380
24
+ version_requirements: *70312268457800
25
25
  description: Handle pebble UIDs conveniently.
26
26
  email:
27
27
  - katrina.owen@gmail.com