shaf 0.1.0.beta → 0.2.0

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
  SHA256:
3
- metadata.gz: f841c557430b49c07e938734ae86d33572a7d6fa2b7ca5a65ae3c85d0a88cd65
4
- data.tar.gz: b01be584adcba338f10942a79b80a2f55625383e880b119de5c5f9a53212e196
3
+ metadata.gz: ac593813e29022a180b2109f36148800fd17d60ab86f9bd9e580a22d8a42687c
4
+ data.tar.gz: 0b54202b8c00b336ddbb8ec945586dd2bd3b73f1434252ca347a4ebde6764116
5
5
  SHA512:
6
- metadata.gz: 4e9006af2484b780d9d41781d8060c58658c6c398152353e475d8f4c8832fc8397589d1798d9e805faa71bf8de537c63453493c8c67cae74190261b1a0236294
7
- data.tar.gz: 2f62a554a41c79cd42a2669e6c844ece355db39a829754abe5dec7d81055949d88be6954ee4874b261181060374a06310b63790e7ed944edd521f8def10af942
6
+ metadata.gz: f38cd019699f44e951eef30d734577c8ddbde792616ba0f887cf8f8d84544c553efd332679e8cf303b55f8d948ed08d28de960cc57e401e1dd8121c857818edc
7
+ data.tar.gz: e0ff681691982c261b114faef75f58cf6e5f18a63183040eb35e1679e6448c071d8499583cb55827cf8c579e1c0104cc71d4f6633c0451f1256a7ddc5e57ccb0
Binary file
data.tar.gz.sig CHANGED
@@ -1 +1 @@
1
- q''�@e-<���Í�[%݁�cHݖ��p�[ pju��[^����M@K7�!���v������V-u�J��ה}/��I8�:�Ti���g����ӥ��]R�6*��5"�机�-����3�Ex=�.mhHc�iF��]��7=�T��0},�$4Ϙ�O՝���*@Xs�/�es�f�����G7��;��"}��4,Qso^�"#@]��Ч6��D��C��T�!��x������
1
+ RK��O(��� D{k⮼_46븘���{�}��l�T����:Q���*ab$���Ϸ��R2��T��mnq��Jt�>����ل��ʡ�0#N�'u�kUN�,�[� �T6��5�����]W|��-eexȘp�>� 7�q��y������_R�krV�.Y����n7n�;Ws��4Y�.�9ZHT����Y��>�PM��2�b�RK����r��|í���*�Q] �)(6���-�� ��d1� �
data/bin/shaf CHANGED
@@ -17,11 +17,11 @@ module Shaf
17
17
  return show_help if show_help?
18
18
  Command::Factory.create(*ARGV).call
19
19
  rescue RegistrableFactory::NotFoundError, Command::ArgumentError => e
20
- puts e.message, "\n"
20
+ STDERR.puts e.message, "\n"
21
21
  show_help
22
22
  exit 1
23
23
  rescue Utils::ProjectRootNotFound
24
- puts "This command can only be executed inside a Shaf project directory. " \
24
+ STDERR.puts "This command can only be executed inside a Shaf project directory. " \
25
25
  "Please change directory and try again!"
26
26
  exit 2
27
27
  end
@@ -27,6 +27,11 @@ module Shaf
27
27
  def usage(str = nil, &block)
28
28
  @usage = str || block
29
29
  end
30
+
31
+ def exit_with_error(msg, status)
32
+ STDERR.puts msg
33
+ exit status
34
+ end
30
35
  end
31
36
 
32
37
  def initialize(*args)
@@ -36,7 +36,7 @@ module Shaf
36
36
  # This class register uri helper methods like:
37
37
  # books_uri => /books
38
38
  # book_uri(book) => /books/5
39
- # new_book_uri => /books
39
+ # new_book_uri => /books/form
40
40
  # edit_book_uri(book) => /books/5/edit
41
41
  #
42
42
  class CreateUriMethods
@@ -22,7 +22,9 @@ module Shaf
22
22
 
23
23
  def lookup(*str)
24
24
  return if str.empty? || !str.all?
25
- reg.detect { |clazz| matching_class? str, clazz }
25
+ reg.select { |clazz| matching_class? str, clazz }
26
+ .sort_by(&method(:identifier_count))
27
+ .last
26
28
  end
27
29
 
28
30
  def usage
@@ -36,6 +36,17 @@ module Shaf
36
36
  App.instance
37
37
  end
38
38
 
39
+ def follow_rel(rel, method: nil)
40
+ assert_has_link(rel)
41
+ link = links[rel.to_sym]
42
+ if method && respond_to?(method)
43
+ public_send(method, link[:href])
44
+ else
45
+ get link[:href]
46
+ end
47
+ end
48
+
49
+
39
50
  # def login(email, pass)
40
51
  # params = {email: email, password: pass}
41
52
  # header 'Content-Type', 'application/json'
@@ -67,19 +67,22 @@ module Shaf
67
67
  end
68
68
 
69
69
  def embedded(name = nil)
70
- assert_has_embedded name
70
+ assert_has_embedded name unless name.nil?
71
71
  keys = [:_embedded, name&.to_sym].compact
72
72
  return last_payload.dig(*keys) unless block_given?
73
73
  Embedded.new(last_payload.dig(*keys), self, Proc.new).call
74
74
  end
75
75
 
76
- def follow_rel(rel, method: nil)
77
- assert_has_link(rel)
78
- link = links[rel.to_sym]
79
- if method && respond_to?(method)
80
- public_send(method, link[:href])
81
- else
82
- get link[:href]
76
+ def embedded_each(name, &block)
77
+ assert_has_embedded name
78
+ list = last_payload[:_embedded][name]
79
+ assert_instance_of(
80
+ Array,
81
+ list,
82
+ "Embedded '#{name}' is not an instance of Array. Actual: #{list.class}"
83
+ )
84
+ list.each do |resource|
85
+ Embedded.new(resource, block).call
83
86
  end
84
87
  end
85
88
 
@@ -1,3 +1,3 @@
1
1
  module Shaf
2
- VERSION = "0.1.0.beta"
2
+ VERSION = "0.2.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shaf
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0.beta
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sammy Henningsson
@@ -31,7 +31,7 @@ cert_chain:
31
31
  CNZdF8Vavp6xMQbPHZwqjaeZz2WRXYS7jyYSvCunjwa3OtvXtfbIEGEWE6IM+t9k
32
32
  H1g6Q+B6qk9O6g==
33
33
  -----END CERTIFICATE-----
34
- date: 2018-03-01 00:00:00.000000000 Z
34
+ date: 2018-03-08 00:00:00.000000000 Z
35
35
  dependencies:
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rake
@@ -336,9 +336,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
336
336
  version: '0'
337
337
  required_rubygems_version: !ruby/object:Gem::Requirement
338
338
  requirements:
339
- - - ">"
339
+ - - ">="
340
340
  - !ruby/object:Gem::Version
341
- version: 1.3.1
341
+ version: '0'
342
342
  requirements: []
343
343
  rubyforge_project:
344
344
  rubygems_version: 2.7.3
metadata.gz.sig CHANGED
Binary file