core-factory 0.1.0 → 0.2.0

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: 1ea60c907fe9fc7b903966970265324c03624b365204c9c0c0d5ec22a90754d3
4
- data.tar.gz: 334959ec4b1a60ea24b45507363c7a63da64ad6854c0b8c6d1aa17c524b12e73
3
+ metadata.gz: 818fa145e1743af2d177d3159909f65f8f1d9b680f40b737149e68dcabf2b5d2
4
+ data.tar.gz: 6c0dad40e8f5f448f76a5752c454745ed41cab888b4459d9c053b6e18e3543e9
5
5
  SHA512:
6
- metadata.gz: a7df03361ab1f61558db263a333c7d5fc28a4b371133f7a2ef4eb84e8505d8655817c1ce0e87d15d964fdca3bbe2bec28785c67f6de33b1c0af0e98e76aafd61
7
- data.tar.gz: 59cf5a86d3b5908774962631ce73d107bd591cf809467396105dfacd85bc3ff7aa14eb34153d22f040efe745c6f91866aa4084e351fc1a90eab894cecc983091
6
+ metadata.gz: 7a80004562b4964b7e6bf0c6d5b81531d81d1c32161ee7de38dd4a081ee3768f21cffb0d8a7cd46c230e6eb345284b4a408ea7e4f0cfb855c174efdbd13d9aef
7
+ data.tar.gz: 223c22d51d331dd19b5dc743d85c5745b769337f6fe7ffeb09a911057456ac026b02bddc919e0bc4d413549b408ec62991e68e481780a2c8ab23968533422050
data/CHANGELOG.md CHANGED
@@ -1,19 +1,26 @@
1
- ## [v0.1.0](https://github.com/metabahn/corerb/releases/tag/2022-01-08)
1
+ ## [v0.2.0](https://github.com/bryanp/corerb/releases/tag/2023-12-24)
2
+
3
+ *released on 2023-12-24*
4
+
5
+ * `dep` [#143](https://github.com/bryanp/corerb/pull/143) Deprecate `Is::*` and `Refine::*` namespaces ([bryanp](https://github.com/bryanp))
6
+ * `dep` [#135](https://github.com/bryanp/corerb/pull/135) Remove Ruby 2 support ([bryanp](https://github.com/bryanp))
7
+
8
+ ## [v0.1.0](https://github.com/bryanp/corerb/releases/tag/2022-01-08)
2
9
 
3
10
  *released on 2022-01-08*
4
11
 
5
- * `add` [#116](https://github.com/metabahn/corerb/pull/116) Return the makeable object types from factories ([bryanp](https://github.com/bryanp))
12
+ * `add` [#116](https://github.com/bryanp/corerb/pull/116) Return the makeable object types from factories ([bryanp](https://github.com/bryanp))
6
13
 
7
- ## [v0.0.1](https://github.com/metabahn/corerb/releases/tag/2021-11-23.1)
14
+ ## [v0.0.1](https://github.com/bryanp/corerb/releases/tag/2021-11-23.1)
8
15
 
9
16
  *released on 2021-11-23*
10
17
 
11
- * `chg` [#109](https://github.com/metabahn/corerb/pull/109) Prefer `__send__` to `send` ([bryanp](https://github.com/bryanp))
18
+ * `chg` [#109](https://github.com/bryanp/corerb/pull/109) Prefer `__send__` to `send` ([bryanp](https://github.com/bryanp))
12
19
 
13
- ## [v0.0.0](https://github.com/metabahn/corerb/releases/tag/2021-10-27)
20
+ ## [v0.0.0](https://github.com/bryanp/corerb/releases/tag/2021-10-27)
14
21
 
15
22
  *released on 2021-10-27*
16
23
 
17
- * `add` [#92](https://github.com/metabahn/corerb/pull/92) Initial implementation of the core-factory gem ([bryanp](https://github.com/bryanp))
24
+ * `add` [#92](https://github.com/bryanp/corerb/pull/92) Initial implementation of the core-factory gem ([bryanp](https://github.com/bryanp))
18
25
 
19
26
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Core
4
4
  module Factory
5
- VERSION = "0.1.0"
5
+ VERSION = "0.2.0"
6
6
 
7
7
  # [public]
8
8
  #
data/lib/core/factory.rb CHANGED
@@ -1,7 +1,61 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "core/define"
4
+ require "core/extension"
5
+ require "core/state"
6
+
3
7
  module Core
8
+ # [public]
9
+ #
4
10
  module Factory
5
11
  require_relative "factory/version"
12
+
13
+ extend Core::Extension
14
+
15
+ extends dependencies: [Core::State]
16
+
17
+ extends :definition do
18
+ # [public]
19
+ #
20
+ def makes(definable, object, suffix: nil, within: nil)
21
+ unless object.ancestors.include?(Core::Define)
22
+ object.include(Core::Define)
23
+ end
24
+
25
+ __makes__[definable.to_sym] = {
26
+ object: object,
27
+ suffix: suffix,
28
+ within: Array(within)
29
+ }
30
+ end
31
+
32
+ # [public]
33
+ #
34
+ def make(definable, *namespace, name, **kwargs, &block)
35
+ definable = __makes__.fetch(definable.to_sym)
36
+
37
+ if (suffix = definable[:suffix])
38
+ name = :"#{name}_#{suffix}"
39
+ end
40
+
41
+ definable[:object].define(*definable[:within], *namespace, name, **kwargs, &block)
42
+ end
43
+
44
+ # [public]
45
+ #
46
+ def makes?(definable)
47
+ @__makes__.include?(definable.to_sym)
48
+ end
49
+
50
+ # [public]
51
+ #
52
+ def makeables
53
+ @__makes__.keys
54
+ end
55
+ end
56
+
57
+ applies do
58
+ state :__makes__, :class, default: {}
59
+ end
6
60
  end
7
61
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: core-factory
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bryan Powell
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-01-09 00:00:00.000000000 Z
11
+ date: 2023-12-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: core-define
@@ -16,44 +16,44 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.0'
19
+ version: '0.2'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0.0'
26
+ version: '0.2'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: core-extension
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0.3'
33
+ version: '0.5'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0.3'
40
+ version: '0.5'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: core-state
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0.1'
47
+ version: '0.2'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '0.1'
54
+ version: '0.2'
55
55
  description: Turn any object into a factory.
56
- email: bryan@metabahn.com
56
+ email: bryan@bryanp.org
57
57
  executables: []
58
58
  extensions: []
59
59
  extra_rdoc_files: []
@@ -62,8 +62,7 @@ files:
62
62
  - LICENSE
63
63
  - lib/core/factory.rb
64
64
  - lib/core/factory/version.rb
65
- - lib/is/factory.rb
66
- homepage: https://github.com/metabahn/corerb/
65
+ homepage: https://github.com/bryanp/corerb/
67
66
  licenses:
68
67
  - MPL-2.0
69
68
  metadata: {}
@@ -75,14 +74,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
75
74
  requirements:
76
75
  - - ">="
77
76
  - !ruby/object:Gem::Version
78
- version: '2.7'
77
+ version: '3.0'
79
78
  required_rubygems_version: !ruby/object:Gem::Requirement
80
79
  requirements:
81
80
  - - ">="
82
81
  - !ruby/object:Gem::Version
83
82
  version: '0'
84
83
  requirements: []
85
- rubygems_version: 3.2.22
84
+ rubygems_version: 3.5.1
86
85
  signing_key:
87
86
  specification_version: 4
88
87
  summary: Turn any object into a factory.
data/lib/is/factory.rb DELETED
@@ -1,58 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "is/definable"
4
- require "is/extension"
5
-
6
- module Is
7
- # [public]
8
- #
9
- module Factory
10
- extend Is::Extension
11
-
12
- extends dependencies: [Is::Stateful]
13
-
14
- extends :definition do
15
- # [public]
16
- #
17
- def makes(definable, object, suffix: nil, within: nil)
18
- unless object.ancestors.include?(Is::Definable)
19
- object.include(Is::Definable)
20
- end
21
-
22
- __makes__[definable.to_sym] = {
23
- object: object,
24
- suffix: suffix,
25
- within: Array(within)
26
- }
27
- end
28
-
29
- # [public]
30
- #
31
- def make(definable, *namespace, name, **kwargs, &block)
32
- definable = __makes__.fetch(definable.to_sym)
33
-
34
- if (suffix = definable[:suffix])
35
- name = :"#{name}_#{suffix}"
36
- end
37
-
38
- definable[:object].define(*definable[:within], *namespace, name, **kwargs, &block)
39
- end
40
-
41
- # [public]
42
- #
43
- def makes?(definable)
44
- @__makes__.include?(definable.to_sym)
45
- end
46
-
47
- # [public]
48
- #
49
- def makeables
50
- @__makes__.keys
51
- end
52
- end
53
-
54
- applies do
55
- state :__makes__, :class, default: {}
56
- end
57
- end
58
- end