roda-action 0.0.1 → 0.0.2
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/README.md +68 -8
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7d75dac923931fb09b1f939b98ccb0d49cb2b012
|
4
|
+
data.tar.gz: c5633b96f98290978a256e1fba19d59b623e53f9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4f4049f11ec8896ad165c9156cc34db34b7d552a08126e10c061b8d011dcdaca425037dacd6995c870457e4b86535a98d35708fad8dba5b170af28de7b3f35f3
|
7
|
+
data.tar.gz: 97a311a592bc1d34a943c4e09b90e6e3a11778830af949124ee43867dce05621048c012ca4d54629d40f9efb8c1237e0f27695e9f696ec614bed762e63205e31
|
data/README.md
CHANGED
@@ -5,13 +5,14 @@ A plugin for Roda to resolve actions from roda-container
|
|
5
5
|
## Installation
|
6
6
|
|
7
7
|
```ruby
|
8
|
-
gem 'roda-action', '0.0.
|
8
|
+
gem 'roda-action', '0.0.2'
|
9
9
|
```
|
10
10
|
|
11
11
|
## Usage
|
12
12
|
|
13
13
|
```ruby
|
14
14
|
class MyApplication < Roda
|
15
|
+
plugin :json
|
15
16
|
plugin :action
|
16
17
|
end
|
17
18
|
|
@@ -23,22 +24,22 @@ class UsersController
|
|
23
24
|
end
|
24
25
|
|
25
26
|
def index
|
26
|
-
repository
|
27
|
+
repository
|
27
28
|
end
|
28
29
|
|
29
30
|
def show(user_id)
|
30
|
-
repository[user_id]
|
31
|
+
repository[user_id.to_i - 1]
|
31
32
|
end
|
32
33
|
end
|
33
34
|
|
34
35
|
MyApplication.register(:users_controller) do
|
35
|
-
UsersController.new(
|
36
|
-
|
37
|
-
|
38
|
-
|
36
|
+
UsersController.new([
|
37
|
+
{ name: 'Jack' },
|
38
|
+
{ name: 'Gill' }
|
39
|
+
])
|
39
40
|
end
|
40
41
|
|
41
|
-
route do |r|
|
42
|
+
MyApplication.route do |r|
|
42
43
|
r.on 'users' do
|
43
44
|
r.is do
|
44
45
|
r.get(&MyApplication.action(:users_controller, :index))
|
@@ -51,6 +52,65 @@ route do |r|
|
|
51
52
|
end
|
52
53
|
```
|
53
54
|
|
55
|
+
If you wish to have access to the usual Roda application instance methods in your registered controllers, it is recommended that you register the application and resolve it for use in your controllers:
|
56
|
+
|
57
|
+
```ruby
|
58
|
+
class MyApplication < Roda
|
59
|
+
plugin :json
|
60
|
+
plugin :action
|
61
|
+
end
|
62
|
+
|
63
|
+
class UsersController
|
64
|
+
attr_reader :app, :repository
|
65
|
+
|
66
|
+
def initialize(app, repository = [])
|
67
|
+
@app, @repository = app, repository
|
68
|
+
end
|
69
|
+
|
70
|
+
def index
|
71
|
+
repository
|
72
|
+
end
|
73
|
+
|
74
|
+
def show(user_id)
|
75
|
+
repository[user_id.to_i - 1]
|
76
|
+
end
|
77
|
+
|
78
|
+
def create
|
79
|
+
id = repository.length.next
|
80
|
+
|
81
|
+
if (name = app.request.params['name'].to_s).length > 0
|
82
|
+
repository << { name: name }
|
83
|
+
puts repository.inspect
|
84
|
+
app.response.redirect "/users/#{id}"
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
MyApplication.register(:users_repository, [
|
90
|
+
{ name: 'Jack' },
|
91
|
+
{ name: 'Gill' }
|
92
|
+
])
|
93
|
+
|
94
|
+
MyApplication.register(:users_controller) do
|
95
|
+
UsersController.new(MyApplication.resolve(:app), MyApplication.resolve(:users_repository))
|
96
|
+
end
|
97
|
+
|
98
|
+
MyApplication.route do |r|
|
99
|
+
MyApplication.register(:app, self, call: false)
|
100
|
+
|
101
|
+
r.on 'users' do
|
102
|
+
r.is do
|
103
|
+
r.get(&MyApplication.action(:users_controller, :index))
|
104
|
+
r.post(&MyApplication.action(:users_controller, :create))
|
105
|
+
end
|
106
|
+
|
107
|
+
r.is :id do |id|
|
108
|
+
r.get(&MyApplication.action(:users_controller, :show).bind_arguments(id))
|
109
|
+
end
|
110
|
+
end
|
111
|
+
end
|
112
|
+
```
|
113
|
+
|
54
114
|
## Contributing
|
55
115
|
|
56
116
|
1. Fork it ( https://github.com/AMHOL/roda-action )
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: roda-action
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andy Holland
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-05-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: roda-container
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.0.
|
19
|
+
version: 0.0.3
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.0.
|
26
|
+
version: 0.0.3
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|