heks 0.0.4 → 0.0.5
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/lib/generators/heks/templates/use_case.rb.erb +4 -6
- data/lib/heks/version.rb +1 -1
- data/test/dummy/app/controllers/cats_controller.rb +39 -0
- data/test/dummy/app/hexagon/cat.rb +13 -0
- data/test/dummy/app/hexagon/repository/adapters/ar/cat.rb +36 -0
- data/test/dummy/app/hexagon/repository/adapters/ar/data/cat.rb +4 -0
- data/test/dummy/app/hexagon/repository/database/cat.rb +54 -0
- data/test/dummy/app/hexagon/repository/memory/cat.rb +40 -0
- data/test/dummy/app/hexagon/use_case/blog_post.rb +20 -0
- data/test/dummy/app/hexagon/use_case/blog_posts.rb +20 -0
- data/test/dummy/app/hexagon/use_case/create_blog_post.rb +3 -5
- data/test/dummy/app/hexagon/use_case/create_cat.rb +20 -0
- data/test/dummy/app/hexagon/use_case/delete_blog_post.rb +3 -5
- data/test/dummy/app/hexagon/use_case/delete_cat.rb +20 -0
- data/test/dummy/app/hexagon/use_case/list_blog_posts.rb +3 -5
- data/test/dummy/app/hexagon/use_case/list_cats.rb +20 -0
- data/test/dummy/app/hexagon/use_case/read_blog_post.rb +3 -5
- data/test/dummy/app/hexagon/use_case/read_cat.rb +20 -0
- data/test/dummy/app/hexagon/use_case/update_blog_post.rb +3 -5
- data/test/dummy/app/hexagon/use_case/update_cat.rb +20 -0
- data/test/dummy/db/migrate/20150914164840_create_cats.rb +8 -0
- data/test/dummy/spec/hexagon/cat_spec.rb +6 -0
- data/test/dummy/spec/hexagon/repository/adapters/ar/cat_spec.rb +0 -0
- data/test/dummy/spec/hexagon/repository/adapters/ar/data/cat_spec.rb +0 -0
- data/test/dummy/spec/hexagon/repository/database/cat_spec.rb +54 -0
- data/test/dummy/spec/hexagon/repository/memory/cat_spec.rb +40 -0
- data/test/dummy/spec/hexagon/use_case/blog_post_spec.rb +20 -0
- data/test/dummy/spec/hexagon/use_case/blog_posts_spec.rb +20 -0
- data/test/dummy/spec/hexagon/use_case/create_cat_spec.rb +20 -0
- data/test/dummy/spec/hexagon/use_case/delete_cat_spec.rb +20 -0
- data/test/dummy/spec/hexagon/use_case/list_cats_spec.rb +20 -0
- data/test/dummy/spec/hexagon/use_case/read_cat_spec.rb +20 -0
- data/test/dummy/spec/hexagon/use_case/update_cat_spec.rb +20 -0
- metadata +53 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 600e1de43b99da484bd51c5bbc97756df3c0775d
|
4
|
+
data.tar.gz: 41e3390aa17cc38fcca6c1ca0a5de7b093c0ff9a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 584c6ecbda526f8e3ab550589bb6249c21a1022abc58e6935c971b539103a85d6627cccc2569f9a188cde77e772cd00133f58ab4136bc1c2f5b1119d02d2d3b5
|
7
|
+
data.tar.gz: b5bea9688def002d79f042ed840e7d99f7c52359fc846f122edd76e51293a4bf4ea612ba36b6766933dc641011771c99e8455d838aafe788ad910e4d5b7e8251
|
@@ -1,18 +1,16 @@
|
|
1
1
|
module UseCase
|
2
2
|
class <%= file_name.camelize %>
|
3
|
-
attr_accessor :repository_name
|
4
|
-
|
5
3
|
def initialize(listener, repository=nil)
|
6
4
|
@listener = listener
|
7
|
-
@repository = (repository || Repository::Memory::<%=
|
5
|
+
@repository = (repository || Repository::Memory::<%= repository_name.camelize %>).new(self)
|
8
6
|
end
|
9
7
|
|
10
|
-
def <%=
|
8
|
+
def <%= repository_action %> <%= parameters.join(", ") %>
|
11
9
|
@repository.<%= repository_action %> <%= parameters.join(", ") %>
|
12
10
|
end
|
13
11
|
|
14
|
-
def <%= repository_name %>_repository_<%= repository_action %>_success(<%=
|
15
|
-
@listener.<%= file_name %>_success(<%=
|
12
|
+
def <%= repository_name %>_repository_<%= repository_action %>_success(<%= repository_name %>)
|
13
|
+
@listener.<%= file_name %>_success(<%= repository_name %>)
|
16
14
|
end
|
17
15
|
|
18
16
|
def <%= repository_name %>_repository_<%= repository_action %>_failure
|
data/lib/heks/version.rb
CHANGED
@@ -0,0 +1,39 @@
|
|
1
|
+
class CatsController < ApplicationController
|
2
|
+
before_filter -> { @command_driver = Heks::Driver.new(self) }
|
3
|
+
|
4
|
+
def index
|
5
|
+
@command_driver[:list_cats].list
|
6
|
+
end
|
7
|
+
|
8
|
+
def new
|
9
|
+
@cat = Cat.new
|
10
|
+
end
|
11
|
+
|
12
|
+
def create
|
13
|
+
@command_driver[:create_cat].create(cat_attributes)
|
14
|
+
end
|
15
|
+
|
16
|
+
def edit
|
17
|
+
@command_driver[:read_cat].read(params[:id])
|
18
|
+
end
|
19
|
+
|
20
|
+
def update
|
21
|
+
@command_driver[:update_cat].update(params[:id], cat_attributes)
|
22
|
+
end
|
23
|
+
|
24
|
+
def destroy
|
25
|
+
@command_driver[:delete_cat].update(params[:id], cat_attributes)
|
26
|
+
end
|
27
|
+
|
28
|
+
private
|
29
|
+
|
30
|
+
listen_for(:list_cats_success) { |cats| @cats = cats }
|
31
|
+
listen_for(:create_cat_success) { |cat| redirect_to cats_path }
|
32
|
+
listen_for(:update_cat_success) { |cat| redirect_to cats_path }
|
33
|
+
listen_for(:read_cat_success) { |cat| @cat = cat }
|
34
|
+
listen_for(:destroy_cat_success){ |cat| redirect_to cats_path }
|
35
|
+
|
36
|
+
def cat_attributes
|
37
|
+
params.require(:cat).permit(:name, :age)
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
module Repository::Adapters::AR
|
2
|
+
class Cat
|
3
|
+
def initialize(listener)
|
4
|
+
@listener = listener
|
5
|
+
@data = Repository::Adapters::AR::Data::Cat
|
6
|
+
end
|
7
|
+
|
8
|
+
def read id
|
9
|
+
@listener.cat_adapter_read_success(
|
10
|
+
::Cat.new(@data.find(id).attributes))
|
11
|
+
end
|
12
|
+
|
13
|
+
def create(attributes)
|
14
|
+
@listener.cat_adapter_create_success(
|
15
|
+
::Cat.new(@data.create(attributes).attributes))
|
16
|
+
end
|
17
|
+
|
18
|
+
def update(id, attributes)
|
19
|
+
record = @data.find(id)
|
20
|
+
record.update_attributes(attributes)
|
21
|
+
|
22
|
+
@listener.cat_adapter_update_success(
|
23
|
+
::Cat.new(record.attributes)
|
24
|
+
)
|
25
|
+
end
|
26
|
+
|
27
|
+
def list
|
28
|
+
@listener.cat_adapter_list_success(@data.all)
|
29
|
+
end
|
30
|
+
|
31
|
+
def all
|
32
|
+
@listener.cat_adapter_all_success(
|
33
|
+
@data.all.map {|cat| ::Cat.new(cat.attributes)})
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
module Repository
|
2
|
+
module Database
|
3
|
+
class Cat
|
4
|
+
def initialize(listener = nil)
|
5
|
+
@listener = listener
|
6
|
+
@adapter = Repository::Adapters::AR::Cat.new(self)
|
7
|
+
@model = ::Cat
|
8
|
+
end
|
9
|
+
|
10
|
+
def create(attributes)
|
11
|
+
@model.new(attributes).tap do |cat|
|
12
|
+
return unless cat.valid?
|
13
|
+
@adapter.create(cat.attributes)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def cat_adapter_create_success(sequence)
|
18
|
+
@listener.cat_repository_create_success(sequence)
|
19
|
+
end
|
20
|
+
|
21
|
+
def list
|
22
|
+
@listener.cat_repository_list_success(@adapter.list)
|
23
|
+
end
|
24
|
+
|
25
|
+
def count
|
26
|
+
@model.count
|
27
|
+
end
|
28
|
+
|
29
|
+
def update(id, attributes)
|
30
|
+
@adapter.update(id, attributes)
|
31
|
+
end
|
32
|
+
|
33
|
+
def cat_adapter_update_success(cat)
|
34
|
+
@listener.cat_repository_update_success(cat)
|
35
|
+
end
|
36
|
+
|
37
|
+
def first
|
38
|
+
@adapter.first
|
39
|
+
end
|
40
|
+
|
41
|
+
def cat_adapter_list_success(sequences)
|
42
|
+
@listener.cat_repository_list_success(sequences)
|
43
|
+
end
|
44
|
+
|
45
|
+
def read(id)
|
46
|
+
@adapter.read(id)
|
47
|
+
end
|
48
|
+
|
49
|
+
def cat_adapter_read_success(cat)
|
50
|
+
@listener.cat_repository_read_success(cat)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module Repository
|
2
|
+
module Memory
|
3
|
+
class Cat
|
4
|
+
attr_accessor :listener
|
5
|
+
|
6
|
+
def initialize
|
7
|
+
@list = []
|
8
|
+
end
|
9
|
+
|
10
|
+
def find(cat)
|
11
|
+
@list.first do |listed_cat|
|
12
|
+
cat == listed_cat
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def all
|
17
|
+
@listener.cat_repository_all_success(@list)
|
18
|
+
end
|
19
|
+
|
20
|
+
def create(attributes)
|
21
|
+
::Cat.new(attributes).tap do |cat|
|
22
|
+
if cat.valid?
|
23
|
+
@list << cat
|
24
|
+
@listener.cat_repository_create_success(cat) if @listener
|
25
|
+
else
|
26
|
+
@listener.cat_repository_create_failure if @listener
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def count
|
32
|
+
@list.count
|
33
|
+
end
|
34
|
+
|
35
|
+
def first
|
36
|
+
@list.first
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module UseCase
|
2
|
+
class BlogPostBlogPost
|
3
|
+
def initialize(listener, repository=nil)
|
4
|
+
@listener = listener
|
5
|
+
@repository = (repository || Repository::Memory::BlogPost).new(self)
|
6
|
+
end
|
7
|
+
|
8
|
+
def blog id
|
9
|
+
@repository.delete id
|
10
|
+
end
|
11
|
+
|
12
|
+
def blog_post_repository_delete_success(blog_post)
|
13
|
+
@listener.blog_post_success(blog_post)
|
14
|
+
end
|
15
|
+
|
16
|
+
def blog_post_repository_delete_failure
|
17
|
+
@listener.blog_post_failure
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module UseCase
|
2
|
+
class BlogPostsBlogPost
|
3
|
+
def initialize(listener, repository=nil)
|
4
|
+
@listener = listener
|
5
|
+
@repository = (repository || Repository::Memory::BlogPosts).new(self)
|
6
|
+
end
|
7
|
+
|
8
|
+
def blog
|
9
|
+
@repository.list
|
10
|
+
end
|
11
|
+
|
12
|
+
def blog_post_repository_list_success(blog_posts)
|
13
|
+
@listener.blog_posts_success(blog_posts)
|
14
|
+
end
|
15
|
+
|
16
|
+
def blog_post_repository_list_failure
|
17
|
+
@listener.blog_posts_failure
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -1,18 +1,16 @@
|
|
1
1
|
module UseCase
|
2
2
|
class CreateBlogPost
|
3
|
-
attr_accessor :repository_name
|
4
|
-
|
5
3
|
def initialize(listener, repository=nil)
|
6
4
|
@listener = listener
|
7
|
-
@repository = (repository || Repository::Memory::
|
5
|
+
@repository = (repository || Repository::Memory::BlogPost).new(self)
|
8
6
|
end
|
9
7
|
|
10
8
|
def create attributes
|
11
9
|
@repository.create attributes
|
12
10
|
end
|
13
11
|
|
14
|
-
def blog_post_repository_create_success(
|
15
|
-
@listener.create_blog_post_success(
|
12
|
+
def blog_post_repository_create_success(blog_post)
|
13
|
+
@listener.create_blog_post_success(blog_post)
|
16
14
|
end
|
17
15
|
|
18
16
|
def blog_post_repository_create_failure
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module UseCase
|
2
|
+
class CreateCat
|
3
|
+
def initialize(listener, repository=nil)
|
4
|
+
@listener = listener
|
5
|
+
@repository = (repository || Repository::Memory::Cat).new(self)
|
6
|
+
end
|
7
|
+
|
8
|
+
def create attributes
|
9
|
+
@repository.create attributes
|
10
|
+
end
|
11
|
+
|
12
|
+
def cat_repository_create_success(cat)
|
13
|
+
@listener.create_cat_success(cat)
|
14
|
+
end
|
15
|
+
|
16
|
+
def cat_repository_create_failure
|
17
|
+
@listener.create_cat_failure
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -1,18 +1,16 @@
|
|
1
1
|
module UseCase
|
2
2
|
class DeleteBlogPost
|
3
|
-
attr_accessor :repository_name
|
4
|
-
|
5
3
|
def initialize(listener, repository=nil)
|
6
4
|
@listener = listener
|
7
|
-
@repository = (repository || Repository::Memory::
|
5
|
+
@repository = (repository || Repository::Memory::BlogPost).new(self)
|
8
6
|
end
|
9
7
|
|
10
8
|
def delete id
|
11
9
|
@repository.delete id
|
12
10
|
end
|
13
11
|
|
14
|
-
def blog_post_repository_delete_success(
|
15
|
-
@listener.delete_blog_post_success(
|
12
|
+
def blog_post_repository_delete_success(blog_post)
|
13
|
+
@listener.delete_blog_post_success(blog_post)
|
16
14
|
end
|
17
15
|
|
18
16
|
def blog_post_repository_delete_failure
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module UseCase
|
2
|
+
class DeleteCat
|
3
|
+
def initialize(listener, repository=nil)
|
4
|
+
@listener = listener
|
5
|
+
@repository = (repository || Repository::Memory::Cat).new(self)
|
6
|
+
end
|
7
|
+
|
8
|
+
def delete id
|
9
|
+
@repository.delete id
|
10
|
+
end
|
11
|
+
|
12
|
+
def cat_repository_delete_success(cat)
|
13
|
+
@listener.delete_cat_success(cat)
|
14
|
+
end
|
15
|
+
|
16
|
+
def cat_repository_delete_failure
|
17
|
+
@listener.delete_cat_failure
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -1,18 +1,16 @@
|
|
1
1
|
module UseCase
|
2
2
|
class ListBlogPosts
|
3
|
-
attr_accessor :repository_name
|
4
|
-
|
5
3
|
def initialize(listener, repository=nil)
|
6
4
|
@listener = listener
|
7
|
-
@repository = (repository || Repository::Memory::
|
5
|
+
@repository = (repository || Repository::Memory::BlogPost).new(self)
|
8
6
|
end
|
9
7
|
|
10
8
|
def list
|
11
9
|
@repository.list
|
12
10
|
end
|
13
11
|
|
14
|
-
def blog_post_repository_list_success(
|
15
|
-
@listener.list_blog_posts_success(
|
12
|
+
def blog_post_repository_list_success(blog_post)
|
13
|
+
@listener.list_blog_posts_success(blog_post)
|
16
14
|
end
|
17
15
|
|
18
16
|
def blog_post_repository_list_failure
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module UseCase
|
2
|
+
class ListCats
|
3
|
+
def initialize(listener, repository=nil)
|
4
|
+
@listener = listener
|
5
|
+
@repository = (repository || Repository::Memory::Cat).new(self)
|
6
|
+
end
|
7
|
+
|
8
|
+
def list
|
9
|
+
@repository.list
|
10
|
+
end
|
11
|
+
|
12
|
+
def cat_repository_list_success(cat)
|
13
|
+
@listener.list_cats_success(cat)
|
14
|
+
end
|
15
|
+
|
16
|
+
def cat_repository_list_failure
|
17
|
+
@listener.list_cats_failure
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -1,18 +1,16 @@
|
|
1
1
|
module UseCase
|
2
2
|
class ReadBlogPost
|
3
|
-
attr_accessor :repository_name
|
4
|
-
|
5
3
|
def initialize(listener, repository=nil)
|
6
4
|
@listener = listener
|
7
|
-
@repository = (repository || Repository::Memory::
|
5
|
+
@repository = (repository || Repository::Memory::BlogPost).new(self)
|
8
6
|
end
|
9
7
|
|
10
8
|
def read id
|
11
9
|
@repository.read id
|
12
10
|
end
|
13
11
|
|
14
|
-
def blog_post_repository_read_success(
|
15
|
-
@listener.read_blog_post_success(
|
12
|
+
def blog_post_repository_read_success(blog_post)
|
13
|
+
@listener.read_blog_post_success(blog_post)
|
16
14
|
end
|
17
15
|
|
18
16
|
def blog_post_repository_read_failure
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module UseCase
|
2
|
+
class ReadCat
|
3
|
+
def initialize(listener, repository=nil)
|
4
|
+
@listener = listener
|
5
|
+
@repository = (repository || Repository::Memory::Cat).new(self)
|
6
|
+
end
|
7
|
+
|
8
|
+
def read id
|
9
|
+
@repository.read id
|
10
|
+
end
|
11
|
+
|
12
|
+
def cat_repository_read_success(cat)
|
13
|
+
@listener.read_cat_success(cat)
|
14
|
+
end
|
15
|
+
|
16
|
+
def cat_repository_read_failure
|
17
|
+
@listener.read_cat_failure
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -1,18 +1,16 @@
|
|
1
1
|
module UseCase
|
2
2
|
class UpdateBlogPost
|
3
|
-
attr_accessor :repository_name
|
4
|
-
|
5
3
|
def initialize(listener, repository=nil)
|
6
4
|
@listener = listener
|
7
|
-
@repository = (repository || Repository::Memory::
|
5
|
+
@repository = (repository || Repository::Memory::BlogPost).new(self)
|
8
6
|
end
|
9
7
|
|
10
8
|
def update id, attributes
|
11
9
|
@repository.update id, attributes
|
12
10
|
end
|
13
11
|
|
14
|
-
def blog_post_repository_update_success(
|
15
|
-
@listener.update_blog_post_success(
|
12
|
+
def blog_post_repository_update_success(blog_post)
|
13
|
+
@listener.update_blog_post_success(blog_post)
|
16
14
|
end
|
17
15
|
|
18
16
|
def blog_post_repository_update_failure
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module UseCase
|
2
|
+
class UpdateCat
|
3
|
+
def initialize(listener, repository=nil)
|
4
|
+
@listener = listener
|
5
|
+
@repository = (repository || Repository::Memory::Cat).new(self)
|
6
|
+
end
|
7
|
+
|
8
|
+
def update id, attributes
|
9
|
+
@repository.update id, attributes
|
10
|
+
end
|
11
|
+
|
12
|
+
def cat_repository_update_success(cat)
|
13
|
+
@listener.update_cat_success(cat)
|
14
|
+
end
|
15
|
+
|
16
|
+
def cat_repository_update_failure
|
17
|
+
@listener.update_cat_failure
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
File without changes
|
File without changes
|
@@ -0,0 +1,54 @@
|
|
1
|
+
module Repository
|
2
|
+
module Database
|
3
|
+
class Cat
|
4
|
+
def initialize(listener = nil)
|
5
|
+
@listener = listener
|
6
|
+
@adapter = Repository::Adapters::AR::Cat.new(self)
|
7
|
+
@model = ::Cat
|
8
|
+
end
|
9
|
+
|
10
|
+
def create(attributes)
|
11
|
+
@model.new(attributes).tap do |cat|
|
12
|
+
return unless cat.valid?
|
13
|
+
@adapter.create(cat.attributes)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def cat_adapter_create_success(sequence)
|
18
|
+
@listener.cat_repository_create_success(sequence)
|
19
|
+
end
|
20
|
+
|
21
|
+
def list
|
22
|
+
@listener.cat_repository_list_success(@adapter.list)
|
23
|
+
end
|
24
|
+
|
25
|
+
def count
|
26
|
+
@model.count
|
27
|
+
end
|
28
|
+
|
29
|
+
def update(id, attributes)
|
30
|
+
@adapter.update(id, attributes)
|
31
|
+
end
|
32
|
+
|
33
|
+
def cat_adapter_update_success(cat)
|
34
|
+
@listener.cat_repository_update_success(cat)
|
35
|
+
end
|
36
|
+
|
37
|
+
def first
|
38
|
+
@adapter.first
|
39
|
+
end
|
40
|
+
|
41
|
+
def cat_adapter_list_success(sequences)
|
42
|
+
@listener.cat_repository_list_success(sequences)
|
43
|
+
end
|
44
|
+
|
45
|
+
def read(id)
|
46
|
+
@adapter.read(id)
|
47
|
+
end
|
48
|
+
|
49
|
+
def cat_adapter_read_success(cat)
|
50
|
+
@listener.cat_repository_read_success(cat)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module Repository
|
2
|
+
module Memory
|
3
|
+
class Cat
|
4
|
+
attr_accessor :listener
|
5
|
+
|
6
|
+
def initialize
|
7
|
+
@list = []
|
8
|
+
end
|
9
|
+
|
10
|
+
def find(cat)
|
11
|
+
@list.first do |listed_cat|
|
12
|
+
cat == listed_cat
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def all
|
17
|
+
@listener.cat_repository_all_success(@list)
|
18
|
+
end
|
19
|
+
|
20
|
+
def create(attributes)
|
21
|
+
::Cat.new(attributes).tap do |cat|
|
22
|
+
if cat.valid?
|
23
|
+
@list << cat
|
24
|
+
@listener.cat_repository_create_success(cat) if @listener
|
25
|
+
else
|
26
|
+
@listener.cat_repository_create_failure if @listener
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def count
|
32
|
+
@list.count
|
33
|
+
end
|
34
|
+
|
35
|
+
def first
|
36
|
+
@list.first
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'rails_helper'
|
2
|
+
|
3
|
+
describe UseCase::BlogPost do
|
4
|
+
describe 'blog' do
|
5
|
+
subject { described_class.new(listener, Repository::Memory::Blog Post.new) }
|
6
|
+
let (:listener) { double("blog_post listener", blog_post_success: nil, blog_post_failure: nil) }
|
7
|
+
let (:repository) { subject.repository }
|
8
|
+
|
9
|
+
context "With Valid Properties" do
|
10
|
+
it 'notifies listener of success' do
|
11
|
+
expect(listener).to receive(:blog_post_success)
|
12
|
+
subject.blog()
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
context "With Invalid Properties" do
|
17
|
+
it 'notifies the listener of failure'
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'rails_helper'
|
2
|
+
|
3
|
+
describe UseCase::BlogPosts do
|
4
|
+
describe 'blog' do
|
5
|
+
subject { described_class.new(listener, Repository::Memory::Blog Posts.new) }
|
6
|
+
let (:listener) { double("blog_posts listener", blog_posts_success: nil, blog_posts_failure: nil) }
|
7
|
+
let (:repository) { subject.repository }
|
8
|
+
|
9
|
+
context "With Valid Properties" do
|
10
|
+
it 'notifies listener of success' do
|
11
|
+
expect(listener).to receive(:blog_posts_success)
|
12
|
+
subject.blog()
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
context "With Invalid Properties" do
|
17
|
+
it 'notifies the listener of failure'
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'rails_helper'
|
2
|
+
|
3
|
+
describe UseCase::CreateCat do
|
4
|
+
describe 'create' do
|
5
|
+
subject { described_class.new(listener, Repository::Memory::Create Cat.new) }
|
6
|
+
let (:listener) { double("create_cat listener", create_cat_success: nil, create_cat_failure: nil) }
|
7
|
+
let (:repository) { subject.repository }
|
8
|
+
|
9
|
+
context "With Valid Properties" do
|
10
|
+
it 'notifies listener of success' do
|
11
|
+
expect(listener).to receive(:create_cat_success)
|
12
|
+
subject.create()
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
context "With Invalid Properties" do
|
17
|
+
it 'notifies the listener of failure'
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'rails_helper'
|
2
|
+
|
3
|
+
describe UseCase::DeleteCat do
|
4
|
+
describe 'delete' do
|
5
|
+
subject { described_class.new(listener, Repository::Memory::Delete Cat.new) }
|
6
|
+
let (:listener) { double("delete_cat listener", delete_cat_success: nil, delete_cat_failure: nil) }
|
7
|
+
let (:repository) { subject.repository }
|
8
|
+
|
9
|
+
context "With Valid Properties" do
|
10
|
+
it 'notifies listener of success' do
|
11
|
+
expect(listener).to receive(:delete_cat_success)
|
12
|
+
subject.delete()
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
context "With Invalid Properties" do
|
17
|
+
it 'notifies the listener of failure'
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'rails_helper'
|
2
|
+
|
3
|
+
describe UseCase::ListCats do
|
4
|
+
describe 'list' do
|
5
|
+
subject { described_class.new(listener, Repository::Memory::List Cats.new) }
|
6
|
+
let (:listener) { double("list_cats listener", list_cats_success: nil, list_cats_failure: nil) }
|
7
|
+
let (:repository) { subject.repository }
|
8
|
+
|
9
|
+
context "With Valid Properties" do
|
10
|
+
it 'notifies listener of success' do
|
11
|
+
expect(listener).to receive(:list_cats_success)
|
12
|
+
subject.list()
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
context "With Invalid Properties" do
|
17
|
+
it 'notifies the listener of failure'
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'rails_helper'
|
2
|
+
|
3
|
+
describe UseCase::ReadCat do
|
4
|
+
describe 'read' do
|
5
|
+
subject { described_class.new(listener, Repository::Memory::Read Cat.new) }
|
6
|
+
let (:listener) { double("read_cat listener", read_cat_success: nil, read_cat_failure: nil) }
|
7
|
+
let (:repository) { subject.repository }
|
8
|
+
|
9
|
+
context "With Valid Properties" do
|
10
|
+
it 'notifies listener of success' do
|
11
|
+
expect(listener).to receive(:read_cat_success)
|
12
|
+
subject.read()
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
context "With Invalid Properties" do
|
17
|
+
it 'notifies the listener of failure'
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'rails_helper'
|
2
|
+
|
3
|
+
describe UseCase::UpdateCat do
|
4
|
+
describe 'update' do
|
5
|
+
subject { described_class.new(listener, Repository::Memory::Update Cat.new) }
|
6
|
+
let (:listener) { double("update_cat listener", update_cat_success: nil, update_cat_failure: nil) }
|
7
|
+
let (:repository) { subject.repository }
|
8
|
+
|
9
|
+
context "With Valid Properties" do
|
10
|
+
it 'notifies listener of success' do
|
11
|
+
expect(listener).to receive(:update_cat_success)
|
12
|
+
subject.update()
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
context "With Invalid Properties" do
|
17
|
+
it 'notifies the listener of failure'
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: heks
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Young
|
@@ -104,17 +104,30 @@ files:
|
|
104
104
|
- test/dummy/app/controllers/application_controller.rb
|
105
105
|
- test/dummy/app/controllers/blog_post_controller.rb
|
106
106
|
- test/dummy/app/controllers/blog_posts_controller.rb
|
107
|
+
- test/dummy/app/controllers/cats_controller.rb
|
107
108
|
- test/dummy/app/helpers/application_helper.rb
|
108
109
|
- test/dummy/app/hexagon/blog_post.rb
|
110
|
+
- test/dummy/app/hexagon/cat.rb
|
109
111
|
- test/dummy/app/hexagon/repository/adapters/ar/blog_post.rb
|
112
|
+
- test/dummy/app/hexagon/repository/adapters/ar/cat.rb
|
110
113
|
- test/dummy/app/hexagon/repository/adapters/ar/data/blog_post.rb
|
114
|
+
- test/dummy/app/hexagon/repository/adapters/ar/data/cat.rb
|
111
115
|
- test/dummy/app/hexagon/repository/database/blog_post.rb
|
116
|
+
- test/dummy/app/hexagon/repository/database/cat.rb
|
112
117
|
- test/dummy/app/hexagon/repository/memory/blog_post.rb
|
118
|
+
- test/dummy/app/hexagon/repository/memory/cat.rb
|
119
|
+
- test/dummy/app/hexagon/use_case/blog_post.rb
|
120
|
+
- test/dummy/app/hexagon/use_case/blog_posts.rb
|
113
121
|
- test/dummy/app/hexagon/use_case/create_blog_post.rb
|
122
|
+
- test/dummy/app/hexagon/use_case/create_cat.rb
|
114
123
|
- test/dummy/app/hexagon/use_case/delete_blog_post.rb
|
124
|
+
- test/dummy/app/hexagon/use_case/delete_cat.rb
|
115
125
|
- test/dummy/app/hexagon/use_case/list_blog_posts.rb
|
126
|
+
- test/dummy/app/hexagon/use_case/list_cats.rb
|
116
127
|
- test/dummy/app/hexagon/use_case/read_blog_post.rb
|
128
|
+
- test/dummy/app/hexagon/use_case/read_cat.rb
|
117
129
|
- test/dummy/app/hexagon/use_case/update_blog_post.rb
|
130
|
+
- test/dummy/app/hexagon/use_case/update_cat.rb
|
118
131
|
- test/dummy/app/views/blog_posts/_form.html.erb
|
119
132
|
- test/dummy/app/views/blog_posts/edit.html.erb
|
120
133
|
- test/dummy/app/views/blog_posts/index.html.erb
|
@@ -145,6 +158,7 @@ files:
|
|
145
158
|
- test/dummy/config/secrets.yml
|
146
159
|
- test/dummy/db/development.sqlite3
|
147
160
|
- test/dummy/db/migrate/20150914062943_create_blog_posts.rb
|
161
|
+
- test/dummy/db/migrate/20150914164840_create_cats.rb
|
148
162
|
- test/dummy/db/schema.rb
|
149
163
|
- test/dummy/log/development.log
|
150
164
|
- test/dummy/public/404.html
|
@@ -157,15 +171,27 @@ files:
|
|
157
171
|
- test/dummy/spec/heks/use_case/read_blog_post_spec.rb
|
158
172
|
- test/dummy/spec/heks/use_case/update_blog_post_spec.rb
|
159
173
|
- test/dummy/spec/hexagon/blog_post_spec.rb
|
174
|
+
- test/dummy/spec/hexagon/cat_spec.rb
|
160
175
|
- test/dummy/spec/hexagon/repository/adapters/ar/blog_post_spec.rb
|
176
|
+
- test/dummy/spec/hexagon/repository/adapters/ar/cat_spec.rb
|
161
177
|
- test/dummy/spec/hexagon/repository/adapters/ar/data/blog_post_spec.rb
|
178
|
+
- test/dummy/spec/hexagon/repository/adapters/ar/data/cat_spec.rb
|
162
179
|
- test/dummy/spec/hexagon/repository/database/blog_post_spec.rb
|
180
|
+
- test/dummy/spec/hexagon/repository/database/cat_spec.rb
|
163
181
|
- test/dummy/spec/hexagon/repository/memory/blog_post_spec.rb
|
182
|
+
- test/dummy/spec/hexagon/repository/memory/cat_spec.rb
|
183
|
+
- test/dummy/spec/hexagon/use_case/blog_post_spec.rb
|
184
|
+
- test/dummy/spec/hexagon/use_case/blog_posts_spec.rb
|
164
185
|
- test/dummy/spec/hexagon/use_case/create_blog_post_spec.rb
|
186
|
+
- test/dummy/spec/hexagon/use_case/create_cat_spec.rb
|
165
187
|
- test/dummy/spec/hexagon/use_case/delete_blog_post_spec.rb
|
188
|
+
- test/dummy/spec/hexagon/use_case/delete_cat_spec.rb
|
166
189
|
- test/dummy/spec/hexagon/use_case/list_blog_posts_spec.rb
|
190
|
+
- test/dummy/spec/hexagon/use_case/list_cats_spec.rb
|
167
191
|
- test/dummy/spec/hexagon/use_case/read_blog_post_spec.rb
|
192
|
+
- test/dummy/spec/hexagon/use_case/read_cat_spec.rb
|
168
193
|
- test/dummy/spec/hexagon/use_case/update_blog_post_spec.rb
|
194
|
+
- test/dummy/spec/hexagon/use_case/update_cat_spec.rb
|
169
195
|
- test/dummy/spec/models/blog_post_spec.rb
|
170
196
|
- test/dummy/tmp/cache/assets/development/sprockets/v3.0/-vafv4A0l3iJF0-IyX9Uk_oQ-RIKXhPFXitPc3k4mk8.cache
|
171
197
|
- test/dummy/tmp/cache/assets/development/sprockets/v3.0/0ieeKnMtadPClPcf7n4_-7f9dFAa5EKPn-nhh8g4E_I.cache
|
@@ -215,17 +241,30 @@ test_files:
|
|
215
241
|
- test/dummy/app/controllers/application_controller.rb
|
216
242
|
- test/dummy/app/controllers/blog_post_controller.rb
|
217
243
|
- test/dummy/app/controllers/blog_posts_controller.rb
|
244
|
+
- test/dummy/app/controllers/cats_controller.rb
|
218
245
|
- test/dummy/app/helpers/application_helper.rb
|
219
246
|
- test/dummy/app/hexagon/blog_post.rb
|
247
|
+
- test/dummy/app/hexagon/cat.rb
|
220
248
|
- test/dummy/app/hexagon/repository/adapters/ar/blog_post.rb
|
249
|
+
- test/dummy/app/hexagon/repository/adapters/ar/cat.rb
|
221
250
|
- test/dummy/app/hexagon/repository/adapters/ar/data/blog_post.rb
|
251
|
+
- test/dummy/app/hexagon/repository/adapters/ar/data/cat.rb
|
222
252
|
- test/dummy/app/hexagon/repository/database/blog_post.rb
|
253
|
+
- test/dummy/app/hexagon/repository/database/cat.rb
|
223
254
|
- test/dummy/app/hexagon/repository/memory/blog_post.rb
|
255
|
+
- test/dummy/app/hexagon/repository/memory/cat.rb
|
256
|
+
- test/dummy/app/hexagon/use_case/blog_post.rb
|
257
|
+
- test/dummy/app/hexagon/use_case/blog_posts.rb
|
224
258
|
- test/dummy/app/hexagon/use_case/create_blog_post.rb
|
259
|
+
- test/dummy/app/hexagon/use_case/create_cat.rb
|
225
260
|
- test/dummy/app/hexagon/use_case/delete_blog_post.rb
|
261
|
+
- test/dummy/app/hexagon/use_case/delete_cat.rb
|
226
262
|
- test/dummy/app/hexagon/use_case/list_blog_posts.rb
|
263
|
+
- test/dummy/app/hexagon/use_case/list_cats.rb
|
227
264
|
- test/dummy/app/hexagon/use_case/read_blog_post.rb
|
265
|
+
- test/dummy/app/hexagon/use_case/read_cat.rb
|
228
266
|
- test/dummy/app/hexagon/use_case/update_blog_post.rb
|
267
|
+
- test/dummy/app/hexagon/use_case/update_cat.rb
|
229
268
|
- test/dummy/app/views/blog_posts/_form.html.erb
|
230
269
|
- test/dummy/app/views/blog_posts/edit.html.erb
|
231
270
|
- test/dummy/app/views/blog_posts/index.html.erb
|
@@ -256,6 +295,7 @@ test_files:
|
|
256
295
|
- test/dummy/config.ru
|
257
296
|
- test/dummy/db/development.sqlite3
|
258
297
|
- test/dummy/db/migrate/20150914062943_create_blog_posts.rb
|
298
|
+
- test/dummy/db/migrate/20150914164840_create_cats.rb
|
259
299
|
- test/dummy/db/schema.rb
|
260
300
|
- test/dummy/log/development.log
|
261
301
|
- test/dummy/public/404.html
|
@@ -270,15 +310,27 @@ test_files:
|
|
270
310
|
- test/dummy/spec/heks/use_case/read_blog_post_spec.rb
|
271
311
|
- test/dummy/spec/heks/use_case/update_blog_post_spec.rb
|
272
312
|
- test/dummy/spec/hexagon/blog_post_spec.rb
|
313
|
+
- test/dummy/spec/hexagon/cat_spec.rb
|
273
314
|
- test/dummy/spec/hexagon/repository/adapters/ar/blog_post_spec.rb
|
315
|
+
- test/dummy/spec/hexagon/repository/adapters/ar/cat_spec.rb
|
274
316
|
- test/dummy/spec/hexagon/repository/adapters/ar/data/blog_post_spec.rb
|
317
|
+
- test/dummy/spec/hexagon/repository/adapters/ar/data/cat_spec.rb
|
275
318
|
- test/dummy/spec/hexagon/repository/database/blog_post_spec.rb
|
319
|
+
- test/dummy/spec/hexagon/repository/database/cat_spec.rb
|
276
320
|
- test/dummy/spec/hexagon/repository/memory/blog_post_spec.rb
|
321
|
+
- test/dummy/spec/hexagon/repository/memory/cat_spec.rb
|
322
|
+
- test/dummy/spec/hexagon/use_case/blog_post_spec.rb
|
323
|
+
- test/dummy/spec/hexagon/use_case/blog_posts_spec.rb
|
277
324
|
- test/dummy/spec/hexagon/use_case/create_blog_post_spec.rb
|
325
|
+
- test/dummy/spec/hexagon/use_case/create_cat_spec.rb
|
278
326
|
- test/dummy/spec/hexagon/use_case/delete_blog_post_spec.rb
|
327
|
+
- test/dummy/spec/hexagon/use_case/delete_cat_spec.rb
|
279
328
|
- test/dummy/spec/hexagon/use_case/list_blog_posts_spec.rb
|
329
|
+
- test/dummy/spec/hexagon/use_case/list_cats_spec.rb
|
280
330
|
- test/dummy/spec/hexagon/use_case/read_blog_post_spec.rb
|
331
|
+
- test/dummy/spec/hexagon/use_case/read_cat_spec.rb
|
281
332
|
- test/dummy/spec/hexagon/use_case/update_blog_post_spec.rb
|
333
|
+
- test/dummy/spec/hexagon/use_case/update_cat_spec.rb
|
282
334
|
- test/dummy/spec/models/blog_post_spec.rb
|
283
335
|
- test/dummy/tmp/cache/assets/development/sprockets/v3.0/-vafv4A0l3iJF0-IyX9Uk_oQ-RIKXhPFXitPc3k4mk8.cache
|
284
336
|
- test/dummy/tmp/cache/assets/development/sprockets/v3.0/0ieeKnMtadPClPcf7n4_-7f9dFAa5EKPn-nhh8g4E_I.cache
|