sparrow-entity 0.1.2 → 0.1.3
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 +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
|