wallaby-core 0.2.2 → 0.2.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +42 -1
- data/lib/utils/wallaby/utils.rb +16 -1
- data/lib/wallaby/core/version.rb +1 -1
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d0d88e52f518d36150436506a1aabb09b893bd9cfd8d63714d43885a3996d6c1
|
4
|
+
data.tar.gz: bf0b36a51ff84c21af190e403ef4cd97f7ebe3081859a92dbde1ed2dc078791d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6beae8bb92548901e4ef9cffd91d29c71b5357ec7b6b092439c09ca561fc67b35d950c5f3d439971dd17b8fcacbd77b6bfe6b79b533c720b3e70b5a49628a73c
|
7
|
+
data.tar.gz: 4fb24f6c6dc2a1a6efe58607e8da3fb4fcb96bc7fe359130fbf952e695c38cbd7bb7a668f1b3ed3a5b4ce235449263557b76d1739cfd67809c0f37dda266789d
|
data/README.md
CHANGED
@@ -7,7 +7,7 @@
|
|
7
7
|
[![Test Coverage](https://api.codeclimate.com/v1/badges/f16f8d87553424c1aacc/test_coverage)](https://codeclimate.com/github/wallaby-rails/wallaby-core/test_coverage)
|
8
8
|
[![Inch CI](https://inch-ci.org/github/wallaby-rails/wallaby-core.svg?branch=master)](https://inch-ci.org/github/wallaby-rails/wallaby-core)
|
9
9
|
|
10
|
-
Wallaby::Core holds all the core interfaces that [Wallaby](https://github.com/wallaby-rails/wallaby) gem is built upon.
|
10
|
+
**Wallaby::Core** holds all the core interfaces that [Wallaby](https://github.com/wallaby-rails/wallaby) gem is built upon.
|
11
11
|
|
12
12
|
## Install
|
13
13
|
|
@@ -28,6 +28,47 @@ bundle install
|
|
28
28
|
- [API Reference](https://www.rubydoc.info/gems/wallaby-core)
|
29
29
|
- [Change Logs](https://github.com/wallaby-rails/wallaby-core/blob/master/CHANGELOG.md)
|
30
30
|
|
31
|
+
## Build, test and update document
|
32
|
+
|
33
|
+
To set up local development environment:
|
34
|
+
|
35
|
+
- git clone this repo
|
36
|
+
- install Ruby (2.4 ~ 3.0)
|
37
|
+
- install gems
|
38
|
+
|
39
|
+
```shell
|
40
|
+
bundle install
|
41
|
+
```
|
42
|
+
|
43
|
+
- install both MySQL and PostgreSQL
|
44
|
+
- create databases
|
45
|
+
|
46
|
+
```shell
|
47
|
+
bundle exec rake db:create
|
48
|
+
```
|
49
|
+
|
50
|
+
- start developing
|
51
|
+
|
52
|
+
Make sure to pass the following checks and tests before putting up a PR:
|
53
|
+
|
54
|
+
- rubocop analysis and format check
|
55
|
+
|
56
|
+
```shell
|
57
|
+
bundle exec rubocop -a
|
58
|
+
```
|
59
|
+
|
60
|
+
- rspec test suites and 100% test coverage
|
61
|
+
|
62
|
+
```shell
|
63
|
+
RAILS_ENV=test bundle exec rake --trace spec
|
64
|
+
```
|
65
|
+
|
66
|
+
- update the comments and build the yardoc
|
67
|
+
|
68
|
+
```shell
|
69
|
+
yardoc
|
70
|
+
```
|
71
|
+
|
31
72
|
## Want to contribute?
|
32
73
|
|
33
74
|
Raise an [issue](https://github.com/wallaby-rails/wallaby-core/issues/new), discuss and resolve!
|
data/lib/utils/wallaby/utils.rb
CHANGED
@@ -7,7 +7,22 @@ module Wallaby
|
|
7
7
|
# @param object [Object]
|
8
8
|
# @return [Object] a clone object
|
9
9
|
def self.clone(object)
|
10
|
-
|
10
|
+
# NOTE: Neither marshal/deep_dup/dup are able to achieve real and correct deep copy,
|
11
|
+
# so here we need a custom solution below:
|
12
|
+
case object
|
13
|
+
when Hash
|
14
|
+
object.each_with_object(
|
15
|
+
object.class.new(object.default)
|
16
|
+
) { |(key, value), hash| hash[key] = clone(value) }
|
17
|
+
when Array
|
18
|
+
object.each_with_object(object.class.new) { |value, array| array << clone(value) }
|
19
|
+
when Class
|
20
|
+
# NOTE: `Class.dup` will turn the duplicate class into anonymous class
|
21
|
+
# therefore, we just return the Class itself here
|
22
|
+
object
|
23
|
+
else
|
24
|
+
object.dup
|
25
|
+
end
|
11
26
|
end
|
12
27
|
|
13
28
|
# @param object [Object, nil]
|
data/lib/wallaby/core/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wallaby-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tian Chen
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-02-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activemodel
|
@@ -226,7 +226,7 @@ metadata:
|
|
226
226
|
homepage_uri: https://github.com/wallaby-rails/wallaby-core
|
227
227
|
source_code_uri: https://github.com/wallaby-rails/wallaby-core
|
228
228
|
changelog_uri: https://github.com/wallaby-rails/wallaby-core/blob/master/CHANGELOG.md
|
229
|
-
post_install_message:
|
229
|
+
post_install_message:
|
230
230
|
rdoc_options: []
|
231
231
|
require_paths:
|
232
232
|
- lib
|
@@ -242,7 +242,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
242
242
|
version: '0'
|
243
243
|
requirements: []
|
244
244
|
rubygems_version: 3.0.3
|
245
|
-
signing_key:
|
245
|
+
signing_key:
|
246
246
|
specification_version: 4
|
247
247
|
summary: The core of Wallaby
|
248
248
|
test_files: []
|