path-builder 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 254df16154ad72a0d5889fef16dffd7e8c509c13
4
- data.tar.gz: 429d1556c9ec898a2d75d3117241d480afed7e33
3
+ metadata.gz: 521f007f861ad8a9ff775ba70b651d3d18a17e2c
4
+ data.tar.gz: 469021e9173cb59262c58d2aac16dd76b69be95a
5
5
  SHA512:
6
- metadata.gz: e6f09f8b3027c314da981528576a8f277eb9e453fba6d0e424e9b9b4d511aa2a49c0a4e4e93b2615ee118cedca47f45f20205780cc26a1a4af2aa238815aded6
7
- data.tar.gz: c04c667be7062c7ca1c921c1dddd0de91bf52e0ec86c0566607b8072be3bec320037af221263d3c93792b718bd93947876229a0b51a6707abca8a4ad7329dbc4
6
+ metadata.gz: 20d6995c38f238cdc70c653bf3f6aa4afa46d70c90f4f297acfa99f7c93259c972082138097a1d486987379b384461bc0c825ad0b05b1bf57f8bad6328269481
7
+ data.tar.gz: c54c9c562b57942cec723c81666827cca0ff939cc55a3344367e6104b7deb0ae31510985779eaf54366e7d5a43ef95cfe015245925df6c59c32a2548e7929020
data/README.md CHANGED
@@ -32,22 +32,22 @@ path = PathBuilder.new
32
32
  path.api.moo.to_s #=> 'api/moo/'
33
33
  ```
34
34
 
35
- Add a variable path segment:
35
+ Make it variable:
36
36
  ```ruby
37
37
  path = PathBuilder.new
38
38
  path.api.(:version).moo.to_s('v1') #=> 'api/v1/moo/'
39
39
  ```
40
40
 
41
- Or use `#[]` instead of `#to_s`:
41
+ Why is that dot there? Because Ruby. Can we remove the dot? Yes, because Ruby:
42
42
  ```ruby
43
43
  path = PathBuilder.new
44
- path.api.(:version).moo['v1'] #=> 'api/v1/moo/'
44
+ path.api(:version).moo['v1'] #=> 'api/v1/moo/'
45
45
  ```
46
46
 
47
- Why is that dot there? Because Ruby. Can we remove the dot? Yes, because Ruby:
47
+ Or use `#[]` instead of `#to_s`:
48
48
  ```ruby
49
49
  path = PathBuilder.new
50
- path.api(:version).moo['v1'] #=> 'api/v1/moo/'
50
+ path.api.(:version).moo['v1'] #=> 'api/v1/moo/'
51
51
  ```
52
52
 
53
53
  Use it out of the box:
@@ -58,8 +58,7 @@ PathBuilder.new.api(:version).moo['v1'] #=> 'api/v1/moo/'
58
58
  Put in a url:
59
59
  ```ruby
60
60
  path = PathBuilder.new
61
- path[] = 'http://example.com'
62
- path.api(:version).moo.to_s #=> 'http://example.com/api/v1/moo'
61
+ path.('http://example.com').api(:version).moo[] #=> 'http://example.com/api/v1/moo/'
63
62
  ```
64
63
 
65
64
  Reuse it:
@@ -80,7 +79,7 @@ UsersPath = ApiPath.users(:user_id).save!
80
79
 
81
80
  UsersPath.new.to_s #=> 'api/v1/users/user_id/'
82
81
  UsersPath.new.to_s(break_on_empty: true) #=> 'api/v1/users/'
83
- UsersPath.new.to_s(1, break_on_empty: true) #=> 'api/v1/users/1'
82
+ UsersPath.new.to_s(1, break_on_empty: true) #=> 'api/v1/users/1/'
84
83
 
85
84
  # Or just:
86
85
 
@@ -88,11 +87,23 @@ UsersPath.break_on_empty = true # PROTIP: You can set PathBuilder#break_on_empty
88
87
 
89
88
  UsersPath.new[] #=> 'api/v1/users/'
90
89
  UsersPath.new[nil] #=> 'api/v1/users/'
91
- UsersPath.new['1'] #=> 'api/v1/users/1'
92
- UsersPath.new.comments[] #=> 'api/v1/users'
90
+ UsersPath.new['1'] #=> 'api/v1/users/1/'
91
+ UsersPath.new.comments[] #=> 'api/v1/users/'
93
92
  UsersPath.new.comments['1'] #=> 'api/v1/users/1/comments/'
94
93
  UsersPath.new.comments(:comment_id).post['1'] #=> 'api/v1/users/1/comments/'
95
- UsersPath.new.comments(:comment_id).post['1', '2'] #=> 'api/v1/users/1/comments/2/post'
94
+ UsersPath.new.comments(:comment_id).post['1', '2'] #=> 'api/v1/users/1/comments/2/post/'
95
+ ```
96
+
97
+ Make a mistake? Take it away!
98
+
99
+ ```ruby
100
+ path = UsersPath.new.comments(:comment_id).post.oops
101
+ path['1','2'] #=> 'api/v1/users/1/comments/2/post/oops/'
102
+ path - 1 #=> [:oops]
103
+ path['1', '2'] #=> 'api/v1/user/1/comments/2/post/'
104
+ path.oh.nose.this.shouldnt.be.here['1,2'] #=> 'api/v1/user/1/comments/2/post/oh/nose/this/shouldnt/be/here/'
105
+ path - 6 #=> [:oh, :nose, :this, :shouldnt, :be, :here]
106
+ path['1,2'] #=> #=> 'api/v1/user/1/comments/2/post/'
96
107
  ```
97
108
 
98
109
  Curious on how it works? Read the 88 line [source].
@@ -41,20 +41,7 @@ class PathBuilder
41
41
 
42
42
  # Add a variable segment (symbol)
43
43
  def call(segment)
44
- @path << segment.to_sym
45
- self
46
- end
47
-
48
- # Add a segment (string)
49
- def []=(*args)
50
- if args.length = 1
51
- segment = *args
52
- @path << segment.to_s if segment
53
- else
54
- variable_segment, *segment = *args
55
- @path << variable_segment.to_sym if variable_segment
56
- @path += segment.map(&:to_s)
57
- end
44
+ @path << segment
58
45
  self
59
46
  end
60
47
 
@@ -1,3 +1,3 @@
1
1
  module PathBuilder
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: path-builder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben
@@ -55,6 +55,7 @@ files:
55
55
  - bin/setup
56
56
  - lib/path-builder.rb
57
57
  - lib/path-builder/version.rb
58
+ - path-builder-0.1.0.gem
58
59
  - path-builder.gemspec
59
60
  homepage: https://github.com/penne12/path-builder
60
61
  licenses: