stannum 0.2.0 → 0.4.0
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/CHANGELOG.md +49 -0
- data/README.md +130 -1200
- data/config/locales/en.rb +4 -0
- data/lib/stannum/association.rb +293 -0
- data/lib/stannum/associations/many.rb +250 -0
- data/lib/stannum/associations/one.rb +106 -0
- data/lib/stannum/associations.rb +11 -0
- data/lib/stannum/attribute.rb +86 -8
- data/lib/stannum/constraints/base.rb +3 -5
- data/lib/stannum/constraints/enum.rb +1 -1
- data/lib/stannum/constraints/equality.rb +1 -1
- data/lib/stannum/constraints/format.rb +72 -0
- data/lib/stannum/constraints/hashes/extra_keys.rb +13 -13
- data/lib/stannum/constraints/hashes/indifferent_extra_keys.rb +47 -0
- data/lib/stannum/constraints/hashes.rb +6 -2
- data/lib/stannum/constraints/identity.rb +1 -1
- data/lib/stannum/constraints/properties/base.rb +124 -0
- data/lib/stannum/constraints/properties/do_not_match_property.rb +117 -0
- data/lib/stannum/constraints/properties/match_property.rb +117 -0
- data/lib/stannum/constraints/properties/matching.rb +112 -0
- data/lib/stannum/constraints/properties.rb +17 -0
- data/lib/stannum/constraints/signature.rb +2 -2
- data/lib/stannum/constraints/tuples/extra_items.rb +6 -6
- data/lib/stannum/constraints/type.rb +4 -4
- data/lib/stannum/constraints/types/array_type.rb +2 -2
- data/lib/stannum/constraints/types/hash_type.rb +4 -4
- data/lib/stannum/constraints/union.rb +1 -1
- data/lib/stannum/constraints/uuid.rb +30 -0
- data/lib/stannum/constraints.rb +3 -0
- data/lib/stannum/contract.rb +7 -7
- data/lib/stannum/contracts/array_contract.rb +2 -7
- data/lib/stannum/contracts/base.rb +15 -15
- data/lib/stannum/contracts/builder.rb +15 -4
- data/lib/stannum/contracts/hash_contract.rb +3 -9
- data/lib/stannum/contracts/indifferent_hash_contract.rb +15 -2
- data/lib/stannum/contracts/map_contract.rb +6 -10
- data/lib/stannum/contracts/parameters/arguments_contract.rb +1 -1
- data/lib/stannum/contracts/parameters/keywords_contract.rb +1 -1
- data/lib/stannum/contracts/parameters/signature_contract.rb +1 -1
- data/lib/stannum/contracts/parameters_contract.rb +4 -4
- data/lib/stannum/contracts/tuple_contract.rb +6 -6
- data/lib/stannum/entities/associations.rb +451 -0
- data/lib/stannum/entities/attributes.rb +316 -0
- data/lib/stannum/entities/constraints.rb +178 -0
- data/lib/stannum/entities/primary_key.rb +148 -0
- data/lib/stannum/entities/properties.rb +208 -0
- data/lib/stannum/entities.rb +16 -0
- data/lib/stannum/entity.rb +87 -0
- data/lib/stannum/errors.rb +12 -16
- data/lib/stannum/messages/default_strategy.rb +2 -2
- data/lib/stannum/parameter_validation.rb +10 -10
- data/lib/stannum/rspec/match_errors_matcher.rb +7 -7
- data/lib/stannum/rspec/validate_parameter.rb +2 -2
- data/lib/stannum/rspec/validate_parameter_matcher.rb +22 -20
- data/lib/stannum/schema.rb +117 -76
- data/lib/stannum/struct.rb +12 -346
- data/lib/stannum/support/optional.rb +1 -1
- data/lib/stannum/version.rb +4 -4
- data/lib/stannum.rb +6 -0
- metadata +26 -85
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ae5716e2981afb94500df0ae1fdd297e6bb6fec528a1b68160e265bdb942fb1e
|
4
|
+
data.tar.gz: 1938e21fd43868841f731fff93662f8dab44785de96fdf936e5e5eda159465e2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 48d41130e4610c0860c86cfdcec98bd69e178df6f9d5975d4e7df6c528222c35e55d543d6f066529cbda2689fe54ab2ce7c0cf0e67682e377b10c417a44837f0
|
7
|
+
data.tar.gz: 7188256e955ad7c16bee2b690ce1d8324690b1fad7b1fcf8442d0b6250d8216cd06ea967b1a7e96a4e3082ef900c2ac35952ed6c3319bc5f3f981ed9189403aa
|
data/CHANGELOG.md
CHANGED
@@ -1,9 +1,58 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## 0.4.0
|
4
|
+
|
5
|
+
Published YARD documentation.
|
6
|
+
|
7
|
+
### Constraints
|
8
|
+
|
9
|
+
- Implemented `Stannum::Constraints::Format`
|
10
|
+
- Implemented `Stannum::Constraints::Uuid`
|
11
|
+
|
12
|
+
### Entities
|
13
|
+
|
14
|
+
- Added support for default blocks to `Stannum::Entities::Attributes`.
|
15
|
+
- Refactored `Stannum::Schema`. **Note:** This change is not backwards-compatible.
|
16
|
+
|
17
|
+
#### Associations
|
18
|
+
|
19
|
+
- Added support for one-to-one and one-to-many associations.
|
20
|
+
- Added support for association foreign keys.
|
21
|
+
- Added support for inverse associations.
|
22
|
+
|
23
|
+
#### Primary Keys
|
24
|
+
|
25
|
+
- Implemented `Stannum::Entities::PrimaryKey`.
|
26
|
+
|
27
|
+
## 0.3.0
|
28
|
+
|
29
|
+
### Constraints
|
30
|
+
|
31
|
+
- Implemented `Stannum::Constraints::Properties::MatchProperty`
|
32
|
+
- Implemented `Stannum::Constraints::Properties::DoNotMatchProperty`
|
33
|
+
|
34
|
+
### Contracts
|
35
|
+
|
36
|
+
- Added `#concat` to `Stannum::Contracts::Builder`.
|
37
|
+
|
38
|
+
### Entities
|
39
|
+
|
40
|
+
Implemented `Stannum::Entity`, a replacement for the existing `Stannum::Struct`.
|
41
|
+
|
42
|
+
Entities are largely identical to structs, except for the constructor signature - entities require properties to be passed as keyword parameters, rather than as an attributes hash. Entities (and now Structs) are defined using composable modules.
|
43
|
+
|
44
|
+
- Implemented `Stannum::Entities::Attributes`.
|
45
|
+
- Implemented `Stannum::Entities::Constraints`.
|
46
|
+
- Implemented `Stannum::Entities::Properties`.
|
47
|
+
|
48
|
+
`Stannum::Struct` is now deprecated, and will be removed in a future release.
|
49
|
+
|
3
50
|
## 0.2.0
|
4
51
|
|
5
52
|
### Constraints
|
6
53
|
|
54
|
+
#### Parameter Constraints
|
55
|
+
|
7
56
|
- Implemented `Stannum::Constraints::Parameters::ExtraArguments`
|
8
57
|
- Implemented `Stannum::Constraints::Parameters::ExtraKeywords`
|
9
58
|
|