joshua 0.1.0 → 0.2.1
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/.version +1 -1
- data/lib/joshua/base.rb +0 -11
- data/lib/joshua/opts.rb +22 -10
- data/lib/joshua/params/define.rb +2 -2
- data/lib/misc/doc.js +8 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b8ed7d3180c254b7ee353df2a4cda1e9c2e828bbcfb7b3fe3e9a3592aa97e9e0
|
4
|
+
data.tar.gz: a8975a90d90ce1c70ee572e31f546c15fce012f9c2a4e954afbd3e1100e6bb27
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0f65da1481545a4b12935621d267729ca41612f5303a0865a88be61ade614ef4d0fe2a0c9255ec86fa0a2e75dad6d00108de729659af1dccd3f12ad5a7486046
|
7
|
+
data.tar.gz: c6120e96a80efd09287d49525f39dadcf872f382038ff210d878fe33d200d252d1303632e1456e2ac3196bd61c194d1ea53851c776332cd84b033670b11b3a67
|
data/.version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1
|
1
|
+
0.2.1
|
data/lib/joshua/base.rb
CHANGED
@@ -16,17 +16,6 @@ class Joshua
|
|
16
16
|
attr_reader :api
|
17
17
|
|
18
18
|
class << self
|
19
|
-
# here we capture member & collection metods
|
20
|
-
def method_added name
|
21
|
-
return if name.to_s.start_with?('_api_')
|
22
|
-
return unless @method_type
|
23
|
-
|
24
|
-
set @method_type, name, PARAMS.fetch_and_clear_opts
|
25
|
-
|
26
|
-
alias_method "_api_#{@method_type}_#{name}", name
|
27
|
-
remove_method name
|
28
|
-
end
|
29
|
-
|
30
19
|
# perform auto_mount from a rake call
|
31
20
|
def call env
|
32
21
|
request = Rack::Request.new env
|
data/lib/joshua/opts.rb
CHANGED
@@ -1,11 +1,12 @@
|
|
1
1
|
class Joshua
|
2
|
-
PARAMS ||= Params::Define.new
|
3
2
|
ANNOTATIONS ||= {}
|
4
3
|
OPTS = {}
|
5
4
|
PLUGINS = {}
|
6
5
|
DOCUMENTED = []
|
7
6
|
|
8
7
|
class << self
|
8
|
+
@@params = Params::Define.new
|
9
|
+
|
9
10
|
def base what
|
10
11
|
set :opts, :base, what
|
11
12
|
end
|
@@ -33,7 +34,7 @@ class Joshua
|
|
33
34
|
def annotation name, &block
|
34
35
|
ANNOTATIONS[name] = block
|
35
36
|
self.define_singleton_method name do |*args|
|
36
|
-
|
37
|
+
@@params.add_annotation name, args
|
37
38
|
end
|
38
39
|
end
|
39
40
|
|
@@ -69,13 +70,13 @@ class Joshua
|
|
69
70
|
Params::Parse.define name, &block
|
70
71
|
else
|
71
72
|
only_in_api_methods!
|
72
|
-
|
73
|
+
@@params.send *args
|
73
74
|
end
|
74
75
|
elsif block
|
75
|
-
|
76
|
+
@@params.instance_eval &block
|
76
77
|
else
|
77
78
|
only_in_api_methods!
|
78
|
-
|
79
|
+
@@params
|
79
80
|
end
|
80
81
|
end
|
81
82
|
|
@@ -92,7 +93,7 @@ class Joshua
|
|
92
93
|
# api method description
|
93
94
|
def desc data
|
94
95
|
if @method_type
|
95
|
-
|
96
|
+
@@params.add_generic :desc, data
|
96
97
|
else
|
97
98
|
set :opts, :desc, data
|
98
99
|
end
|
@@ -103,7 +104,7 @@ class Joshua
|
|
103
104
|
return if data.to_s == ''
|
104
105
|
|
105
106
|
if @method_type
|
106
|
-
|
107
|
+
@@params.add_generic :detail, data
|
107
108
|
else
|
108
109
|
set :opts, :detail, data
|
109
110
|
end
|
@@ -112,7 +113,7 @@ class Joshua
|
|
112
113
|
# method in available for GET requests as well
|
113
114
|
def gettable
|
114
115
|
if @method_type
|
115
|
-
|
116
|
+
@@params.add_generic :gettable
|
116
117
|
else
|
117
118
|
raise ArgumentError.new('gettable can only be set on methods')
|
118
119
|
end
|
@@ -120,8 +121,8 @@ class Joshua
|
|
120
121
|
|
121
122
|
# allow methods without @api.bearer token set
|
122
123
|
def unsafe
|
123
|
-
|
124
|
-
|
124
|
+
if @method_type
|
125
|
+
@@params.add_generic :unsafe
|
125
126
|
else
|
126
127
|
raise ArgumentError.new('Only api methods can be unsafe')
|
127
128
|
end
|
@@ -183,6 +184,17 @@ class Joshua
|
|
183
184
|
out
|
184
185
|
end
|
185
186
|
|
187
|
+
# here we capture member & collection metods
|
188
|
+
def method_added name
|
189
|
+
return if name.to_s.start_with?('_api_')
|
190
|
+
return unless @method_type
|
191
|
+
|
192
|
+
set @method_type, name, @@params.fetch_and_clear_opts
|
193
|
+
|
194
|
+
alias_method "_api_#{@method_type}_#{name}", name
|
195
|
+
remove_method name
|
196
|
+
end
|
197
|
+
|
186
198
|
private
|
187
199
|
|
188
200
|
# generic opts set
|
data/lib/joshua/params/define.rb
CHANGED
@@ -40,11 +40,11 @@ class Joshua
|
|
40
40
|
.tap { @opts = {} }
|
41
41
|
end
|
42
42
|
|
43
|
-
def
|
43
|
+
def add_generic name, value=true
|
44
44
|
@opts[name] = value
|
45
45
|
end
|
46
46
|
|
47
|
-
def
|
47
|
+
def add_annotation name, data
|
48
48
|
@opts[:annotations] ||= {}
|
49
49
|
@opts[:annotations][name] = data
|
50
50
|
end
|
data/lib/misc/doc.js
CHANGED
@@ -105,9 +105,14 @@ window.TabResponse = {
|
|
105
105
|
post += 'api_token=' + bearer
|
106
106
|
}
|
107
107
|
|
108
|
-
$.
|
109
|
-
|
110
|
-
|
108
|
+
$.ajax({
|
109
|
+
type: 'POST',
|
110
|
+
url: url,
|
111
|
+
data: post,
|
112
|
+
complete: (response) => {
|
113
|
+
State.response = JSON.parse(response.responseText);
|
114
|
+
TabResponse.render_tab_data()
|
115
|
+
}
|
111
116
|
})
|
112
117
|
},
|
113
118
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: joshua
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dino Reic
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-05-
|
11
|
+
date: 2020-05-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: dry-inflector
|