lightrails 0.0.11 → 0.0.12

Sign up to get free protection for your applications and to get access to all the features.
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