lightrails 0.0.11 → 0.0.12

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.
Files changed (5) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +37 -7
  3. data/RELEASE_DATE +1 -1
  4. data/VERSION +1 -1
  5. metadata +8 -8
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9fb84a8780952da0d28ffdad8a395e57e24db474cd9b93f1c4885f7fe10a1db3
4
- data.tar.gz: 94d96a9023e79ba74ee05ba4d87e2f6dc4ea30825a31ba9d4f7f523c6c08d824
3
+ metadata.gz: a2336be03f7e41c32144119eec71068706e38be757234905f92a5cf4371ad34b
4
+ data.tar.gz: 6556485ecb50a01e62195dfcc6f8c9b1974aa4cb08d39db592ecba46f7bab6fb
5
5
  SHA512:
6
- metadata.gz: af61f1c69558ec1c19df0e0b40df1ac4678860a97d4a547631c83b99cf66add59fe44c6f57a95c3ba6519020f73d17d40c2c8c2c4dd93da0973a5af1bb32c24a
7
- data.tar.gz: 24d501a12cb11bbc84043ebe1fd9e28e123db325d50de871a31ea096d8a318f6f77e8403c699d01bf12de851c6c1d8ac454380d7dca85bba3d57e3d8f11e80db
6
+ metadata.gz: c47a083bc6e667cdefe917d719834b3f367ebfdafd07ce3625e0705d34eca6e21a7ab702e2f003973b9fff32febbe4d02926e9f1dd881e4a6d030efcc89fe6a8
7
+ data.tar.gz: 4331cd033caa9f79af6d579cafe03f31db9567a3c8f0d24b1505faceef2e4a81737aa39548fd2d7bb1557fad3f1990191b485e20b31e96017648cef71204f42b
data/README.md CHANGED
@@ -29,8 +29,8 @@ class Mypage::IndexFacade < ApplicationFacade
29
29
  @current_user = params[:current_user]
30
30
  end
31
31
 
32
- def active_user
33
- @all_user ||= User.active.order(login_at: :desc).limit(10)
32
+ def active_users
33
+ @active_users ||= User.active.order(login_at: :desc).limit(10)
34
34
  end
35
35
 
36
36
  def messages
@@ -44,6 +44,18 @@ def index
44
44
  end
45
45
  ```
46
46
 
47
+ ```erb
48
+ <%# in View %>
49
+
50
+ <% @facade.active_users.each do |user| %>
51
+ ...
52
+ <% end %>
53
+
54
+ <% @facade.messages.each do |user| %>
55
+ ...
56
+ <% end %>
57
+ ```
58
+
47
59
  To create an facade, you can use the generator.
48
60
 
49
61
  ```
@@ -65,16 +77,16 @@ end
65
77
 
66
78
  class RegistrationInteractor < ApplicationInteractor
67
79
  def execute
68
- return unless params[:name]
80
+ return fail! unless params[:name]
69
81
  add_result(:user, User.new(name: params[:name]))
70
82
  # complicated business logic
71
- finish!
83
+ success!
72
84
  end
73
85
  end
74
86
 
75
87
  interactor = RegistrationInteractor.execute(name: "John")
76
88
  interactor.success? # => true
77
- interactor.completed? # => true
89
+ interactor.finished? # => true
78
90
  user = interactor.result[:user]
79
91
  user.name # => 'John'
80
92
  ```
@@ -87,24 +99,42 @@ $ bin/rails generate interactor registration
87
99
 
88
100
  ## Active Representer
89
101
 
90
- Add an API model layer to your Rails application.
102
+ Add 'represented' model layer to your Rails application.
103
+ You can wrap hash-like (OpenStruct, Hashie::Mash etc.) objects like below.
91
104
 
92
105
  ```ruby
106
+ class ActivityRepresenter < ActiveRepresenter::Base
107
+ def created_on
108
+ created_at.to_date
109
+ end
110
+ end
111
+
93
112
  class UserRepresenter < ApplicationRepresenter
113
+ attr_collection :activities
114
+
94
115
  def full_name
95
116
  "#{first_name} #{last_name}"
96
117
  end
97
118
  end
98
119
 
99
- user = OpenStruct.new(first_name: "John", last_name: "Appleseed")
120
+ user = OpenStruct.new(
121
+ first_name: 'John',
122
+ last_name: 'Appleseed',
123
+ activities: [OpenStruct.new(created_at: Time.now)]
124
+ )
125
+
100
126
  representer = UserRepresenter.new(user)
101
127
  representer.full_name # => 'John Appleseed'
128
+ activity = representer.activities.first
129
+ activity.class # => ActivityRepresenter
130
+ activity.created_on # => returns current date
102
131
  ```
103
132
 
104
133
  To create a representer, you can use the generator.
105
134
 
106
135
  ```
107
136
  $ bin/rails generate representer user
137
+ $ bin/rails g representer activity
108
138
  ```
109
139
 
110
140
  ## License
data/RELEASE_DATE CHANGED
@@ -1 +1 @@
1
- 2018-10-12
1
+ 2018-10-20
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.11
1
+ 0.0.12
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lightrails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.11
4
+ version: 0.0.12
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-12 00:00:00.000000000 Z
11
+ date: 2018-10-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties
@@ -36,42 +36,42 @@ dependencies:
36
36
  requirements:
37
37
  - - '='
38
38
  - !ruby/object:Gem::Version
39
- version: 0.0.11
39
+ version: 0.0.12
40
40
  type: :runtime
41
41
  prerelease: false
42
42
  version_requirements: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - '='
45
45
  - !ruby/object:Gem::Version
46
- version: 0.0.11
46
+ version: 0.0.12
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: actioninteractor
49
49
  requirement: !ruby/object:Gem::Requirement
50
50
  requirements:
51
51
  - - '='
52
52
  - !ruby/object:Gem::Version
53
- version: 0.0.11
53
+ version: 0.0.12
54
54
  type: :runtime
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
57
  requirements:
58
58
  - - '='
59
59
  - !ruby/object:Gem::Version
60
- version: 0.0.11
60
+ version: 0.0.12
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: activerepresenter
63
63
  requirement: !ruby/object:Gem::Requirement
64
64
  requirements:
65
65
  - - '='
66
66
  - !ruby/object:Gem::Version
67
- version: 0.0.11
67
+ version: 0.0.12
68
68
  type: :runtime
69
69
  prerelease: false
70
70
  version_requirements: !ruby/object:Gem::Requirement
71
71
  requirements:
72
72
  - - '='
73
73
  - !ruby/object:Gem::Version
74
- version: 0.0.11
74
+ version: 0.0.12
75
75
  - !ruby/object:Gem::Dependency
76
76
  name: bundler
77
77
  requirement: !ruby/object:Gem::Requirement