lucky_param 0.1.1 → 0.1.2

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: ccec36d0fcd976004cc8464dde95eaa07c28addad21077dde9081585c53d38ef
4
- data.tar.gz: 98a62a979a11ef8f2c35c2963cace3a0e580baf834b22a3ba83049eb3e7f34e2
3
+ metadata.gz: 74c92c60d88a3b80c6dcf648a3eebcd94867d9c3f332c383a59b034e53d0ab10
4
+ data.tar.gz: 598848e0d283df5c34089c9e497073b33891ae7b0b40e5555527e2809b10da5d
5
5
  SHA512:
6
- metadata.gz: f5ae2f511f00e5198f52832e8c9d4fb0e1095ad9fd5334924a3c11c4e208acf7a88bd780eb1843ad4d26478b6c69b755eec0b68472c47b87578704c15e39e0c0
7
- data.tar.gz: 6c6c7d91ae8c226b796329d659b1d28dc0a9970087c7fc58b0b4f2a3ace1a6bad8f9654ead328ca0df665ae7d0a2b177d8cb1b61796689c76241a498bf794361
6
+ metadata.gz: 3fac2010cc62e11ed9696977ee2f40518d185408de28f8ddb40c024eeea82532d3f9e1e828924fd6c045d9094e345f6a4c4f9eba180d377bb20bfa60e2274a8c
7
+ data.tar.gz: 9573ff399451714f7d9742fe2772b102feb1073182f911ce265172b5a41d712197c53136d0ecaab0aefd4a685991b45c1848b71d57f481f2432a1011d9c83f0e
@@ -6,17 +6,24 @@ module LuckyParam
6
6
  ->(_obj) { true }
7
7
  ],
8
8
  String: [
9
- ->(obj) { !obj.empty? },
9
+ ->(obj) { obj.is_a?(String) },
10
10
  "must be valid String"
11
11
  ],
12
+ Boolean: [
13
+ ->(obj) { %w[true false 1 0].include?(obj.to_s) },
14
+ "must be one of [true false 1 0]"
15
+ ],
12
16
  Integer: [
13
- ->(obj) { obj.to_i.to_s == obj },
17
+ ->(obj) { obj.to_s =~ /\A(0|[1-9]\d*)\Z$/ },
14
18
  "must be valid Integer"
15
19
  ],
16
20
  Float: [
17
- ->(obj) { obj.to_f.to_s == obj },
21
+ ->(obj) { obj.to_s =~ /\A^[-+]?[0-9]+([,.][0-9]+)?\Z$/ },
18
22
  "must be valid Float"
19
23
  ],
24
+ Number: [
25
+ ->(obj) { Float(obj) rescue false }
26
+ ],
20
27
  Email: [
21
28
  ->(obj) { obj =~ /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/ },
22
29
  "must be valid Email"
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module LuckyParam
4
- VERSION = "0.1.1".freeze
4
+ VERSION = "0.1.2".freeze
5
5
  end
data/lib/lucky_param.rb CHANGED
@@ -1,39 +1,29 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "active_support/core_ext/object/blank"
4
+
3
5
  require_relative "./lucky_param/version"
4
6
  require_relative "./lucky_param/checker"
5
7
 
6
8
  module LuckyParam
7
- class ParamMissError < StandardError
8
- end
9
-
10
- class ParamFormatError < StandardError
11
- end
12
-
13
- class UnknownCheckerError < StandardError
14
- end
9
+ class ParamMissError < StandardError; end
10
+ class ParamFormatError < StandardError; end
11
+ class UnknownCheckerError < StandardError; end
15
12
 
16
13
  def required(column, checker_type)
17
- required_optional(:required, column, checker_type)
14
+ raise ParamMissError.new("Missing Params: #{column}") if params[column].blank?
15
+ message = checker_message(column, checker_type)
16
+ raise ParamFormatError.new("Wrong Params Format: #{message}") if message
18
17
  end
19
18
 
20
19
  def optional(column, checker_type)
21
- required_optional(:optional, column, checker_type)
20
+ return if params[column].blank?
21
+ message = checker_message(column, checker_type)
22
+ raise ParamFormatError.new("Wrong Params Format: #{message}") if message
22
23
  end
23
24
 
24
25
  private
25
26
 
26
- def required_optional(type, column, checker_type)
27
- unless params[column]
28
- return if type == :optional
29
- raise ParamMissError, "Missing Params: #{column}"
30
- end
31
- message = checker_message(column, checker_type)
32
- if message
33
- raise ParamFormatError, "Wrong Params Format: #{message}"
34
- end
35
- end
36
-
37
27
  def checker_message(column, checker_type)
38
28
  checker = CUSTOM_CHECKER[checker_type] if LuckyParam.const_defined?(:CUSTOM_CHECKER)
39
29
  checker ||= CHECKER.fetch(checker_type) {
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lucky_param
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shooting Fly
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-10-26 00:00:00.000000000 Z
11
+ date: 2018-11-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails