cuprum 0.10.0 → 1.0.0.rc.1

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: 87866e465634782fef9cd2ce7bebf42f56eeb789d235874a280134e6d2431104
4
- data.tar.gz: e60264b79e82f77f5cbc2149c6522f0ef74fad2c198238ea6db3338ba3e35ce3
3
+ metadata.gz: 1acf1f03e1b78fd7c90cb8b3eb96bd2ba8771b29dd92c743a7580c22700919df
4
+ data.tar.gz: 07eae29a24b5819cf80c646c016fb7e0508ffe93f5820795a74d1c2dfdbd6bf4
5
5
  SHA512:
6
- metadata.gz: 89aa00632c89bfddcc3063d0aff7344af81e36e4568d6899ef16c5a80b464ae43f7b530f689fb6a8e8f7e2c3987ee4463014744ab242b20828959483e070d968
7
- data.tar.gz: 05cf7814eeff05e179bc006d1a9c80f8bc3ca7b9e4ca12256b34f65bc6aa1ba253e12a2c00fe411e38162b65d9d1a5a1ac6a3df3e820af40cec2944291b6e3a5
6
+ metadata.gz: cec2ebc229e0507dde9ca02aedf2bd93f55161151eef230f43408d4e39d7ab8b8711c655c72d4b193733f9a2b235e95cb390c57cccebb61f6e129915b261588c
7
+ data.tar.gz: d10c6180899006af62022ac1f9543897d258f8407a3dfca56d270f0eba356a7aabd418234330901dd3b8e3c55de27f07e9ae4c2c37398056800331bd8b6ae8f1
data/CHANGELOG.md CHANGED
@@ -1,6 +1,64 @@
1
1
  # Changelog
2
2
 
3
- ## 0.10
3
+ ## 1.0.0
4
+
5
+ The "Look On My Works, Ye Mighty, and Despair" Update
6
+
7
+ #### Steps
8
+
9
+ Removed calling `#step` with a method name.
10
+
11
+ ## 0.11.0
12
+
13
+ The "One Giant Leap" Update
14
+
15
+ **Note:** This will be the last feature update before 1.0.
16
+
17
+ ### Commands
18
+
19
+ Implemented the `#to_proc` method, which allows for constructs such as `array.map(&command)`.
20
+
21
+ Removed the deprecated chaining mechanic.
22
+
23
+ #### Currying
24
+
25
+ Added support for currying block parameters.
26
+
27
+ #### Exception Handling
28
+
29
+ Defined `Cuprum::ExceptionHandling` to rescue uncaught errors in commands.
30
+
31
+ Exception handling is *not* included by default - add `include Cuprum::ExceptionHandling` to your command classes to use this feature.
32
+
33
+ #### Middleware
34
+
35
+ Defined `Cuprum::Middleware` to define a wrapper that calls other commands.
36
+
37
+ #### Steps
38
+
39
+ Deprecated calling `#step` with a method name.
40
+
41
+ The error type and message when calling `#steps` without a block has changed.
42
+
43
+ ### Errors
44
+
45
+ Errors can now define their comparable properties by passing additional keywords to the constructor (or `super` for error subclasses).
46
+
47
+ Added the `#type` method and property.
48
+
49
+ Added serialization via the `#as_json` method.
50
+
51
+ ### Matchers
52
+
53
+ Implemented `Cuprum::Matcher`, which provides a way to handle different result cases.
54
+
55
+ ### RSpec
56
+
57
+ Added the `#be_callable` macro, which is a wrapper for `#respond_to` that references the `#process` method.
58
+
59
+ RSpec matchers are no longer automatically included when the macro is required. To use the Cuprum matchers, add `config.include Cuprum::RSpec::Matchers` to your RSpec configuration, or add `include Cuprum::RSpec::Matchers` to your example groups.
60
+
61
+ ## 0.10.0
4
62
 
5
63
  The "One Small Step" Update
6
64
 
@@ -12,7 +70,7 @@ Implemented the `#curry` method, which performs partial application of arguments
12
70
 
13
71
  #### Chaining
14
72
 
15
- Added deprecation warnings to all chaining methods, and `Cuprum::Command` no longer includes `Cuprum::Chaining` by default. The `Cuprum::Chaining` module will be removed in version 1.0.
73
+ Added deprecation warnings to all chaining methods, and `Cuprum::Command` no longer includes `Cuprum::Chaining` by default. The `Cuprum::Chaining` module will be removed in version 0.11.
16
74
 
17
75
  #### Steps
18
76
 
@@ -0,0 +1,132 @@
1
+ # Contributor Covenant Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ We as members, contributors, and leaders pledge to make participation in our
6
+ community a harassment-free experience for everyone, regardless of age, body
7
+ size, visible or invisible disability, ethnicity, sex characteristics, gender
8
+ identity and expression, level of experience, education, socio-economic status,
9
+ nationality, personal appearance, race, religion, or sexual identity
10
+ and orientation.
11
+
12
+ We pledge to act and interact in ways that contribute to an open, welcoming,
13
+ diverse, inclusive, and healthy community.
14
+
15
+ ## Our Standards
16
+
17
+ Examples of behavior that contributes to a positive environment for our
18
+ community include:
19
+
20
+ * Demonstrating empathy and kindness toward other people
21
+ * Being respectful of differing opinions, viewpoints, and experiences
22
+ * Giving and gracefully accepting constructive feedback
23
+ * Accepting responsibility and apologizing to those affected by our mistakes,
24
+ and learning from the experience
25
+ * Focusing on what is best not just for us as individuals, but for the
26
+ overall community
27
+
28
+ Examples of unacceptable behavior include:
29
+
30
+ * The use of sexualized language or imagery, and sexual attention or
31
+ advances of any kind
32
+ * Trolling, insulting or derogatory comments, and personal or political attacks
33
+ * Public or private harassment
34
+ * Publishing others' private information, such as a physical or email
35
+ address, without their explicit permission
36
+ * Other conduct which could reasonably be considered inappropriate in a
37
+ professional setting
38
+
39
+ ## Enforcement Responsibilities
40
+
41
+ Community leaders are responsible for clarifying and enforcing our standards of
42
+ acceptable behavior and will take appropriate and fair corrective action in
43
+ response to any behavior that they deem inappropriate, threatening, offensive,
44
+ or harmful.
45
+
46
+ Community leaders have the right and responsibility to remove, edit, or reject
47
+ comments, commits, code, wiki edits, issues, and other contributions that are
48
+ not aligned to this Code of Conduct, and will communicate reasons for moderation
49
+ decisions when appropriate.
50
+
51
+ ## Scope
52
+
53
+ This Code of Conduct applies within all community spaces, and also applies when
54
+ an individual is officially representing the community in public spaces.
55
+ Examples of representing our community include using an official e-mail address,
56
+ posting via an official social media account, or acting as an appointed
57
+ representative at an online or offline event.
58
+
59
+ ## Enforcement
60
+
61
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be
62
+ reported to the community leaders responsible for enforcement at
63
+ merlin@sleepingkingstudios.com.
64
+ All complaints will be reviewed and investigated promptly and fairly.
65
+
66
+ All community leaders are obligated to respect the privacy and security of the
67
+ reporter of any incident.
68
+
69
+ ## Enforcement Guidelines
70
+
71
+ Community leaders will follow these Community Impact Guidelines in determining
72
+ the consequences for any action they deem in violation of this Code of Conduct:
73
+
74
+ ### 1. Correction
75
+
76
+ **Community Impact**: Use of inappropriate language or other behavior deemed
77
+ unprofessional or unwelcome in the community.
78
+
79
+ **Consequence**: A private, written warning from community leaders, providing
80
+ clarity around the nature of the violation and an explanation of why the
81
+ behavior was inappropriate. A public apology may be requested.
82
+
83
+ ### 2. Warning
84
+
85
+ **Community Impact**: A violation through a single incident or series
86
+ of actions.
87
+
88
+ **Consequence**: A warning with consequences for continued behavior. No
89
+ interaction with the people involved, including unsolicited interaction with
90
+ those enforcing the Code of Conduct, for a specified period of time. This
91
+ includes avoiding interactions in community spaces as well as external channels
92
+ like social media. Violating these terms may lead to a temporary or
93
+ permanent ban.
94
+
95
+ ### 3. Temporary Ban
96
+
97
+ **Community Impact**: A serious violation of community standards, including
98
+ sustained inappropriate behavior.
99
+
100
+ **Consequence**: A temporary ban from any sort of interaction or public
101
+ communication with the community for a specified period of time. No public or
102
+ private interaction with the people involved, including unsolicited interaction
103
+ with those enforcing the Code of Conduct, is allowed during this period.
104
+ Violating these terms may lead to a permanent ban.
105
+
106
+ ### 4. Permanent Ban
107
+
108
+ **Community Impact**: Demonstrating a pattern of violation of community
109
+ standards, including sustained inappropriate behavior, harassment of an
110
+ individual, or aggression toward or disparagement of classes of individuals.
111
+
112
+ **Consequence**: A permanent ban from any sort of public interaction within
113
+ the community.
114
+
115
+ ## Attribution
116
+
117
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage],
118
+ version 2.0, available at
119
+ [https://www.contributor-covenant.org/version/2/0/code_of_conduct.html][v2.0].
120
+
121
+ Community Impact Guidelines were inspired by
122
+ [Mozilla's code of conduct enforcement ladder][Mozilla CoC].
123
+
124
+ For answers to common questions about this code of conduct, see the FAQ at
125
+ [https://www.contributor-covenant.org/faq][FAQ]. Translations are available
126
+ at [https://www.contributor-covenant.org/translations][translations].
127
+
128
+ [homepage]: https://www.contributor-covenant.org
129
+ [v2.0]: https://www.contributor-covenant.org/version/2/0/code_of_conduct.html
130
+ [Mozilla CoC]: https://github.com/mozilla/diversity
131
+ [FAQ]: https://www.contributor-covenant.org/faq
132
+ [translations]: https://www.contributor-covenant.org/translations
data/DEVELOPMENT.md CHANGED
@@ -1,34 +1,9 @@
1
1
  # Development
2
2
 
3
- ## Version 1.0.0
4
-
5
- The "Look On My Works, Ye Mighty, and Despair" Update
6
-
7
- - Integration specs.
8
- - Code cleanup: Hash syntax, remove end comments, remove file headers
9
- - Status Badges!
10
-
11
- Steps Case Study: |
12
-
13
- CMS application - creating a new post.
14
- Directory has many Posts
15
- Post has a Content
16
- Content has many ContentVersions
17
- Post has many Tags
18
-
19
- Find Directory
20
- Create Post
21
- Create Content
22
- Create ContentVersion
23
- Tags.each { FindOrCreate Tag }
24
-
25
- ### Commands
26
-
27
- - Remove `Cuprum::Chaining`.
28
- - Implement `Command#to_proc`.
29
-
30
3
  ## Future Versions
31
4
 
5
+ Add `.rbs` files
6
+
32
7
  ### Commands
33
8
 
34
9
  - Implement #<<, #>> composition methods.
@@ -60,19 +35,10 @@ Steps Case Study: |
60
35
  - RetryCommand - takes command, retry count
61
36
  - optional only:, except: - restrict what errors are retried
62
37
 
63
- ### Matcher
64
-
65
- - Handle success(), failure(), failure(SomeError) cases.
66
- - Custom matcher to handle additional cases - halted, pending, etc?
67
-
68
38
  ### Middleware
69
39
 
70
40
  - Implement Command.subclass
71
41
  - Curries constructor arguments
72
- - Implement Cuprum::Middleware
73
- - #process takes next command, \*args, \*\*kwargs
74
- - calls next command with \*args, \*\*kwargs
75
- - .apply takes middleware: array, root: command
76
42
  - Implement Cuprum::AppliedMiddleware < Cuprum::Command
77
43
  - has readers #root (Class), #middleware (Array<Class>)
78
44
  - #initialize
@@ -87,8 +53,6 @@ Steps Case Study: |
87
53
 
88
54
  ### RSpec
89
55
 
90
- - be_callable matcher - delegates to respond_to(), but check arguments of
91
- private #process method
92
56
  - call_command_step matcher
93
57
  - (optionally) alias be_a_result family as have_result for operations
94
58