shaf 0.1.0.beta → 0.2.0

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