path-builder 0.1.0 → 0.1.1

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.
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: