actionfacade 0.0.12 → 0.0.13

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: e01b28a54d8b2cd05ac6c7db009c190cac39e493f0bf466fb8c36d4158e233b0
4
- data.tar.gz: caba68f77f4c1965bb3c5bd4c475fa937de309af69e9a59ac853af4ee256e108
3
+ metadata.gz: 15444cae65c3cfa72d1e4f6316cda00ac18b4815eb3cc097f9b6529869783071
4
+ data.tar.gz: 87473f3fac3f8a7d6293128cfea0515210dc595a371a39f2d29cad9dc08d992e
5
5
  SHA512:
6
- metadata.gz: 64102d5774d00caa5ea64195bcf2a676fa5c688452b7cffb079874ad97f49bc3ed24ad50cb6ef88621ea5f158ef6aaca3bdde16698b6f8e4212362168f4205ad
7
- data.tar.gz: 96eb68e00fcda053d61efc88f6ba1e04384c0ce90f907a07b88db24c8cce0786a0b8a53ddbd45b1558299d5e9d8a42d9f86b526669ce5806ae0ab7a70e1862f2
6
+ metadata.gz: a9897269bd8bd934ff4f5bb3fb883e2cdf247de8b804d71e742cc57618a488fd1257e4c7239a51468831b2e0e894570181d62bbc183ca1972a666ac88a385932
7
+ data.tar.gz: 7566f37395dd369d72b15a831fcad09c810603981459ae78da963428c958708be8e897302fbae43bbda32f002cbcfe9ce8c9a5047aca77db94e7aa361adc6d3d
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ActionFacade
4
+ module Retrieval
5
+ def retrieve(facade, *variable_names)
6
+ variable_names.each do |name|
7
+ instance_variable_set("@#{name}", facade.send(name.to_sym))
8
+ end
9
+ end
10
+ end
11
+ end
data/lib/actionfacade.rb CHANGED
@@ -1,3 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "action_facade/base"
4
+ require "action_facade/retrieval"
@@ -0,0 +1,36 @@
1
+ require "test/unit"
2
+ require_relative "../lib/action_facade/base.rb"
3
+ require_relative "../lib/action_facade/retrieval.rb"
4
+
5
+ class UserFacade < ActionFacade::Base
6
+ USER_DATA = [{ id: 1, name: "john" }]
7
+
8
+ def john
9
+ USER_DATA.find { |user| user[:name] == "john" }
10
+ end
11
+ end
12
+
13
+ class UsersController
14
+ include ActionFacade::Retrieval
15
+
16
+ attr_reader :john
17
+
18
+ def show
19
+ params = {}
20
+ facade = UserFacade.new(params)
21
+ retrieve(facade, :john)
22
+ end
23
+ end
24
+
25
+ class RetrievalTest < Test::Unit::TestCase
26
+ test ".show does not raise error" do
27
+ assert_nothing_raised { UsersController.new.show }
28
+ end
29
+
30
+ test "@john is set after retrieve(facade, :john)" do
31
+ controller = UsersController.new
32
+ assert_nil(controller.john)
33
+ controller.show
34
+ assert_equal(controller.john, { id: 1, name: "john" })
35
+ end
36
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: actionfacade
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.12
4
+ version: 0.0.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryo Hashimoto
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-10-20 00:00:00.000000000 Z
11
+ date: 2018-10-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -48,9 +48,11 @@ files:
48
48
  - Rakefile
49
49
  - actionfacade.gemspec
50
50
  - lib/action_facade/base.rb
51
+ - lib/action_facade/retrieval.rb
51
52
  - lib/actionfacade.rb
52
53
  - test/base_test.rb
53
54
  - test/inheritance_test.rb
55
+ - test/retrieval_test.rb
54
56
  homepage: https://github.com/ryohashimoto/lightrails
55
57
  licenses:
56
58
  - MIT
@@ -79,3 +81,4 @@ summary: Action Facade provides a simple interface for data required by view / c
79
81
  test_files:
80
82
  - test/base_test.rb
81
83
  - test/inheritance_test.rb
84
+ - test/retrieval_test.rb