actionfacade 0.0.12 → 0.0.13

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 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