Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit ae41f15

Browse files
author
Badacadabra
committed
Refactor idiomatic patterns using modules
1 parent e838eaf commit ae41f15

File tree

245 files changed

+3831
-3393
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

245 files changed

+3831
-3393
lines changed
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
'use strict'
2+
3+
# ==============================
4+
# GO GO GO!
5+
# ==============================
6+
7+
go = (nextRelay) ->
8+
res = ""
9+
if nextRelay? then res += nextRelay.go() else res += ""
10+
res
11+
12+
# ==============================
13+
# RACERS
14+
# ==============================
15+
16+
walker =
17+
go: ->
18+
"""
19+
Walker: go!
20+
#{go(@nextRelay)}
21+
"""
22+
23+
runner =
24+
go: ->
25+
"""
26+
Runner: go!
27+
#{go(@nextRelay)}
28+
"""
29+
30+
swimmer =
31+
go: ->
32+
"""
33+
Swimmer: go!
34+
#{go(@nextRelay)}
35+
"""
36+
37+
module.exports =
38+
walker: walker
39+
runner: runner
40+
swimmer: swimmer
Lines changed: 5 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,12 @@
11
'use strict'
22

3-
go = (nextRelay) ->
4-
res = ""
5-
if nextRelay? then res += nextRelay.go() else res += ""
6-
res
3+
race = require './API/race'
74

85
# ==============================
9-
# RACERS
6+
# CLIENT CODE
107
# ==============================
118

12-
walker =
13-
go: ->
14-
"""
15-
Walker: go!
16-
#{go(@nextRelay)}
17-
"""
9+
race.walker.nextRelay = race.runner
10+
race.runner.nextRelay = race.swimmer
1811

19-
runner =
20-
go: ->
21-
"""
22-
Runner: go!
23-
#{go(@nextRelay)}
24-
"""
25-
26-
swimmer =
27-
go: ->
28-
"""
29-
Swimmer: go!
30-
#{go(@nextRelay)}
31-
"""
32-
33-
# ==============================
34-
# TEST
35-
# ==============================
36-
37-
walker.nextRelay = runner
38-
runner.nextRelay = swimmer
39-
40-
console.log walker.go()
12+
console.log race.walker.go()
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
'use strict';
2+
3+
// ==============================
4+
// GO GO GO!
5+
// ==============================
6+
7+
var go = function (nextRelay) {
8+
var res = "";
9+
if (nextRelay === undefined) {
10+
res += "";
11+
} else {
12+
res += nextRelay.go();
13+
}
14+
return res;
15+
};
16+
17+
// ==============================
18+
// RACERS
19+
// ==============================
20+
21+
var walker = {
22+
go: function () {
23+
return "Walker: go!\n" + go(this.nextRelay);
24+
}
25+
};
26+
27+
var runner = {
28+
go: function () {
29+
return "Runner: go!\n" + go(this.nextRelay);
30+
}
31+
};
32+
33+
var swimmer = {
34+
go: function () {
35+
return "Swimmer: go!\n" + go(this.nextRelay);
36+
}
37+
};
38+
39+
module.exports = {
40+
walker: walker,
41+
runner: runner,
42+
swimmer: swimmer
43+
};
Lines changed: 5 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,12 @@
11
'use strict';
22

3-
var go = function (nextRelay) {
4-
var res = "";
5-
if (nextRelay === undefined) {
6-
res += "";
7-
} else {
8-
res += nextRelay.go();
9-
}
10-
return res;
11-
};
3+
var race = require('./API/race');
124

135
// ==============================
14-
// RACERS
6+
// CLIENT CODE
157
// ==============================
168

17-
var walker = {
18-
go: function () {
19-
return "Walker: go!\n" + go(this.nextRelay);
20-
}
21-
};
9+
race.walker.nextRelay = race.runner;
10+
race.runner.nextRelay = race.swimmer;
2211

23-
var runner = {
24-
go: function () {
25-
return "Runner: go!\n" + go(this.nextRelay);
26-
}
27-
};
28-
29-
var swimmer = {
30-
go: function () {
31-
return "Swimmer: go!\n" + go(this.nextRelay);
32-
}
33-
};
34-
35-
// ==============================
36-
// TEST
37-
// ==============================
38-
39-
walker.nextRelay = runner;
40-
runner.nextRelay = swimmer;
41-
42-
console.log(walker.go());
12+
console.log(race.walker.go());
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
// ==============================
2+
// GO GO GO!
3+
// ==============================
4+
5+
const go = nextRelay => {
6+
let res = "";
7+
if (nextRelay === undefined) {
8+
res += "";
9+
} else {
10+
res += nextRelay.go();
11+
}
12+
return res;
13+
};
14+
15+
// ==============================
16+
// RACERS
17+
// ==============================
18+
19+
export const walker = {
20+
go() {
21+
return `Walker: go!
22+
${go(this.nextRelay)}`;
23+
}
24+
};
25+
26+
export const runner = {
27+
go() {
28+
return `Runner: go!
29+
${go(this.nextRelay)}`;
30+
}
31+
};
32+
33+
export const swimmer = {
34+
go() {
35+
return `Swimmer: go!
36+
${go(this.nextRelay)}`;
37+
}
38+
};

‎idiomatic/GoF/Behavioral/ChainOfResponsibility/ECMAScript/ES6/client.js

Lines changed: 2 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,7 @@
1-
// ==============================
2-
// RACERS
3-
// ==============================
4-
5-
const walker = {
6-
go() {
7-
return `Walker: go!
8-
${go(this.nextRelay)}`;
9-
}
10-
};
11-
12-
const runner = {
13-
go() {
14-
return `Runner: go!
15-
${go(this.nextRelay)}`;
16-
}
17-
};
18-
19-
const swimmer = {
20-
go() {
21-
return `Swimmer: go!
22-
${go(this.nextRelay)}`;
23-
}
24-
};
25-
26-
// ==============================
27-
// REQUEST (START)
28-
// ==============================
29-
30-
const go = nextRelay => {
31-
let res = "";
32-
if (nextRelay === undefined) {
33-
res += "";
34-
} else {
35-
res += nextRelay.go();
36-
}
37-
return res;
38-
};
1+
import { walker, runner, swimmer } from './API/race';
392

403
// ==============================
41-
// TEST
4+
// CLIENT CODE
425
// ==============================
436

447
walker.nextRelay = runner;
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
// ==============================
2+
// GO GO GO!
3+
// ==============================
4+
5+
const go: (nextRelay: Racer) => string = function (nextRelay: Racer): string {
6+
let res = "";
7+
if (nextRelay === undefined) {
8+
res += "";
9+
} else {
10+
res += nextRelay.go();
11+
}
12+
return res;
13+
};
14+
15+
// ==============================
16+
// RACERS
17+
// ==============================
18+
19+
export interface Racer {
20+
nextRelay?: Racer;
21+
go(): string;
22+
}
23+
24+
export const walker: Racer = {
25+
go() {
26+
return `Walker: go!
27+
${go(this.nextRelay)}`;
28+
}
29+
};
30+
31+
export const runner: Racer = {
32+
go() {
33+
return `Runner: go!
34+
${go(this.nextRelay)}`;
35+
}
36+
};
37+
38+
export const swimmer: Racer = {
39+
go() {
40+
return `Swimmer: go!
41+
${go(this.nextRelay)}`;
42+
}
43+
};

‎idiomatic/GoF/Behavioral/ChainOfResponsibility/TypeScript/client.ts

Lines changed: 2 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,7 @@
1-
// ==============================
2-
// RACERS
3-
// ==============================
4-
5-
interface Racer {
6-
nextRelay?: Racer;
7-
go(): string;
8-
}
9-
10-
const walker: Racer = {
11-
go() {
12-
return `Walker: go!
13-
${go(this.nextRelay)}`;
14-
}
15-
};
16-
17-
const runner: Racer = {
18-
go() {
19-
return `Runner: go!
20-
${go(this.nextRelay)}`;
21-
}
22-
};
23-
24-
const swimmer: Racer = {
25-
go() {
26-
return `Swimmer: go!
27-
${go(this.nextRelay)}`;
28-
}
29-
};
30-
31-
// ==============================
32-
// REQUEST (START)
33-
// ==============================
34-
35-
const go: (nextRelay: Racer) => string = function (nextRelay: Racer): string {
36-
let res = "";
37-
if (nextRelay === undefined) {
38-
res += "";
39-
} else {
40-
res += nextRelay.go();
41-
}
42-
return res;
43-
};
1+
import { walker, runner, swimmer } from './API/race';
442

453
// ==============================
46-
// TEST
4+
// CLIENT CODE
475
// ==============================
486

497
walker.nextRelay = runner;
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
'use strict'
2+
3+
# ==============================
4+
# CUSTOMER
5+
# ==============================
6+
7+
module.exports =
8+
pay: ->
9+
"Payment OK!\n"
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
'use strict'
2+
3+
# ==============================
4+
# ORDER
5+
# ==============================
6+
7+
module.exports =
8+
deliver: ->
9+
@customer.pay()

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /