normally 0.0.0 → 0.0.1
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.
- data/README.md +2 -2
- data/lib/normally.rb +10 -10
- metadata +2 -2
data/README.md
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
## Prioritizing the Happy Path
|
4
4
|
|
5
|
-
Much of the time when talking about conditional expressions, the concepts of a _happy path_ and a _sad path_ are useful. The happy path is the branch of the conditional that executes during the normal operation of your program. The sad path is there only to deal with errors or invalid input. When
|
5
|
+
Much of the time when talking about conditional expressions, the concepts of a _happy path_ and a _sad path_ are useful. The happy path is the branch of the conditional that executes during the normal operation of your program. The sad path is there only to deal with errors or invalid input. When reading code, I like to see the happy path first because the happy path tells me what the code is supposed to do, while the sad path just tells me how the code avoids doing things it's not supposed to do.
|
6
6
|
|
7
7
|
Despite the importance of the happy path, the sad path is often the most visible in code with conditionals. Consider the following:
|
8
8
|
|
@@ -37,7 +37,7 @@ You know the drill. If you're using [bundler](https://rubygems.org/gems/bundler)
|
|
37
37
|
gem 'normally'
|
38
38
|
```
|
39
39
|
|
40
|
-
To install globally,
|
40
|
+
To install globally, run `gem install normally`.
|
41
41
|
|
42
42
|
The `normally` method is part of the `Normally` module, which must be included either in the global namespace or in the class where you want to use the `normally` syntax. For example:
|
43
43
|
|
data/lib/normally.rb
CHANGED
@@ -1,15 +1,15 @@
|
|
1
|
-
class HappyPath
|
2
|
-
def initialize(happy_proc)
|
3
|
-
@happy_proc = happy_proc
|
4
|
-
end
|
5
|
-
|
6
|
-
def but_if(condition)
|
7
|
-
condition ? yield : @happy_proc.call
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
11
1
|
module Normally
|
12
2
|
def normally(&block)
|
13
3
|
HappyPath.new(block)
|
14
4
|
end
|
5
|
+
|
6
|
+
class HappyPath
|
7
|
+
def initialize(happy_proc)
|
8
|
+
@happy_proc = happy_proc
|
9
|
+
end
|
10
|
+
|
11
|
+
def but_if(condition)
|
12
|
+
condition ? yield : @happy_proc.call
|
13
|
+
end
|
14
|
+
end
|
15
15
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: normally
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -46,5 +46,5 @@ rubyforge_project:
|
|
46
46
|
rubygems_version: 1.8.23
|
47
47
|
signing_key:
|
48
48
|
specification_version: 3
|
49
|
-
summary: normally-0.0.
|
49
|
+
summary: normally-0.0.1
|
50
50
|
test_files: []
|