sparrow-entity 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/README.md +26 -0
- data/lib/generators/sparrow/entity/entity_generator.rb +6 -4
- data/lib/sparrow/boolean.rb +13 -0
- data/lib/sparrow/class_methods.rb +5 -0
- data/lib/sparrow/version.rb +1 -1
- data/lib/sparrow.rb +1 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 69113e86b45a13eb5d19a0943cb23cf4e3c8d3851335570d1712de019a316b7f
|
4
|
+
data.tar.gz: 24556d2a767791e72ac5d22521e3fd2b1bede695ee9eb317b66f356b0dab673e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9bf271a192c53689eee128a566a2fa0b212b45830893fe8e41c27460bba8a12ad7c1dc3538bdde1afb536e77df5d34d9eca4820a354cba7dbf81c33012e42edb
|
7
|
+
data.tar.gz: cf9accc428f958c6eba624ff8199d14d7df63e696c78f13bbe200d3d7818f4e6bec634ed459b4a30c48ef8418d4e20bea25be883a76921d690c458c982b3abdd
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -57,6 +57,32 @@ me.birthday
|
|
57
57
|
# => <Date 2022年1月1日> 实例对象
|
58
58
|
```
|
59
59
|
|
60
|
+
### 布尔型属性
|
61
|
+
|
62
|
+
当需要定义一个属性字段为布尔型时,可以使用本 gem 内置的 `Sparrow::Boolean` 作为类型定义即可。当赋予 **true** 值或者等价于(即使用 `present?` 判断为真)其值时被赋予真值,否则被赋予假值。同样的,如果没有对其进行赋值,则获取该字段属性会返回 **nil** 空值。
|
63
|
+
|
64
|
+
```ruby
|
65
|
+
class OtherEntity < Sparrow::Base
|
66
|
+
field :married, Sparrow::Boolean
|
67
|
+
end
|
68
|
+
|
69
|
+
obj = OtherEntity.new
|
70
|
+
obj.married
|
71
|
+
# => nil
|
72
|
+
|
73
|
+
obj.married = true
|
74
|
+
obj.married
|
75
|
+
# => true
|
76
|
+
|
77
|
+
obj.married = ''
|
78
|
+
obj.married
|
79
|
+
# => false
|
80
|
+
|
81
|
+
obj.married = 'yes'
|
82
|
+
obj.married
|
83
|
+
# => true
|
84
|
+
```
|
85
|
+
|
60
86
|
### 赋值
|
61
87
|
|
62
88
|
上例中也展示了为实体类的实例进行属性赋值的方式之一,即创建时指定属性名对应的值。当然也可以在创建后分别给属性赋值。
|
@@ -11,7 +11,7 @@ module Sparrow
|
|
11
11
|
TARGET_RELATIVE_PATH = 'app/entities'
|
12
12
|
|
13
13
|
# 单模组模板
|
14
|
-
MODULE_TEMPLATE
|
14
|
+
MODULE_TEMPLATE = <<~MODULE.strip
|
15
15
|
module %{module_name}
|
16
16
|
%{module_content}
|
17
17
|
end
|
@@ -59,11 +59,11 @@ module Sparrow
|
|
59
59
|
end
|
60
60
|
|
61
61
|
def __module_content__(name, content)
|
62
|
-
|
62
|
+
MODULE_TEMPLATE % { module_name: name.camelize, module_content: indent(content, 2) }
|
63
63
|
end
|
64
64
|
|
65
65
|
def __class_content__
|
66
|
-
|
66
|
+
CLASS_TEMPLATE % { class_name: file_name.camelize }
|
67
67
|
end
|
68
68
|
|
69
69
|
def __class_body__
|
@@ -76,7 +76,9 @@ module Sparrow
|
|
76
76
|
current = paths.shift
|
77
77
|
content = paths.size.positive? ? __module_body__(paths) : ''
|
78
78
|
result = current ? __module_content__(current, content) : ''
|
79
|
-
result.each_line.select
|
79
|
+
result = result.each_line.select(&:present?).join
|
80
|
+
result << "\n"
|
81
|
+
result
|
80
82
|
end
|
81
83
|
end
|
82
84
|
end
|
@@ -98,6 +98,11 @@ module Sparrow
|
|
98
98
|
end
|
99
99
|
instance_variable_set(instance_var_name, val)
|
100
100
|
end
|
101
|
+
elsif attr_class == ::Sparrow::Boolean
|
102
|
+
# 如果是布尔值类型
|
103
|
+
define_method(setter_name) do |value|
|
104
|
+
instance_variable_set(instance_var_name, value.present?)
|
105
|
+
end
|
101
106
|
else
|
102
107
|
# 其他类型原封不动
|
103
108
|
define_method(setter_name) do |value|
|
data/lib/sparrow/version.rb
CHANGED
data/lib/sparrow.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sparrow-entity
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- shiner
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-01-
|
11
|
+
date: 2022-01-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activemodel
|
@@ -182,6 +182,7 @@ files:
|
|
182
182
|
- lib/generators/sparrow/entity/templates/sparrow_entity.rb.tt
|
183
183
|
- lib/sparrow.rb
|
184
184
|
- lib/sparrow/base.rb
|
185
|
+
- lib/sparrow/boolean.rb
|
185
186
|
- lib/sparrow/class_methods.rb
|
186
187
|
- lib/sparrow/version.rb
|
187
188
|
- sparrow.gemspec
|