choron_support 0.1.4 → 0.1.5

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: 5aec7e221e4fc870c2cd989203b23d977c361a55830d4f3ec54732254ef9d68c
4
- data.tar.gz: 7ce392003f8f967ac35019e436dd29230a36d1b2232c5676b98f86820535fcb9
3
+ metadata.gz: ee00806dd922746ab7a93c6835f09ddc18d78f39f34c5498abd00faad0f02948
4
+ data.tar.gz: 00047a1d9e08362f7cf476518b5c67d93f490f5058260ec5abee3d363c9ccffd
5
5
  SHA512:
6
- metadata.gz: 3a1eb4b85d33c2e40060b1b4d9941f432a06ba034dc6f8dee696817969bb4da9b7456ceac7be5bce90ce090ffd02e995c593587f0894bfd0f7645017d777b496
7
- data.tar.gz: 7f88d5b647058c03b70f0e95fb02df0b757ea11c2c5c2493a9da4346c876d81713e4c3a7576514c03a9471f5e27f31e1a9eb56febe3aeb5353cefa5e44132148
6
+ metadata.gz: 5142e115d399be76589e39bdf21ea33944a8cd2bc1f3f2c5bcaba15aca77ec9244d27b48325d46a3eeea6f611cc5ecc08abc0e31a920b238a0ec3ec13fbba4c7
7
+ data.tar.gz: c3dadd661f9261167656b268acddf945671dea4cf9ecad9b85d12d42bfc9f11241045ec080fe58a0c39a49443ad8e69901ddf6ecb36885a6a95127b2070ac770
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- choron_support (0.1.4)
4
+ choron_support (0.1.5)
5
5
  activesupport
6
6
 
7
7
  GEM
@@ -3,13 +3,19 @@ require_relative "props/ext/relation"
3
3
  require_relative "props/ext/hash"
4
4
  module ChoronSupport
5
5
  module AsProps
6
+ class NameError < StandardError; end
7
+ # @param [Symbol, String, nil] type_symbol どのPropsクラスを利用してPropsを生成するかを指定するシンボル。nilのときはデフォルトのPropsクラスを利用する。
8
+ # @param [Hash] params その他のパラメータ。camel: false を指定すると自動でキャメライズしない。
9
+ # @return [Hash]
6
10
  def as_props(type_symbol = nil, **params)
7
11
  serializer = self.__get_props_class(type_symbol, **params)
8
12
 
13
+ skip_camel = (params[:camel] == false)
14
+ pass_params = params.except(:camel)
9
15
  if serializer.nil?
10
- self.as_json
16
+ skip_camel ? self.as_json : self.as_json.as_camel
11
17
  else
12
- serializer.as_props(**params)
18
+ skip_camel ? serializer.as_props(**pass_params) : serializer.as_props(**pass_params).as_camel
13
19
  end
14
20
  end
15
21
 
@@ -39,15 +45,19 @@ module ChoronSupport
39
45
 
40
46
  props_class.new(self)
41
47
  rescue *rescue_errors
42
- return nil
48
+ if type_symbol.blank?
49
+ return nil
50
+ else
51
+ raise ChoronSupport::AsProps::NameError, "Props class not found: #{props_class_name}. Got type symbol: #{type_symbol}."
52
+ end
43
53
  end
44
54
  end
45
55
 
46
56
  def rescue_errors
47
57
  if defined?(Zeitwerk)
48
- [NameError, Zeitwerk::NameError]
58
+ [::NameError, Zeitwerk::NameError]
49
59
  else
50
- [NameError]
60
+ [::NameError]
51
61
  end
52
62
  end
53
63
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ChoronSupport
4
- VERSION = "0.1.4"
4
+ VERSION = "0.1.5"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: choron_support
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - mksava
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-01-22 00:00:00.000000000 Z
11
+ date: 2023-03-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport