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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3681a7c08c75032f3f6c574645e6a8375e5613d64c729a90119d3bc1c6d3e5be
4
- data.tar.gz: 4cf6aeac3d58573b649f545ccdfae95f905c393ec476364989e8fb1fa0c38595
3
+ metadata.gz: b8ed7d3180c254b7ee353df2a4cda1e9c2e828bbcfb7b3fe3e9a3592aa97e9e0
4
+ data.tar.gz: a8975a90d90ce1c70ee572e31f546c15fce012f9c2a4e954afbd3e1100e6bb27
5
5
  SHA512:
6
- metadata.gz: 9791cbbf644061bf19821093e7f91367466df6e77f66b8a0ef414f2cd5b5b0b4fa9a0c36125a64b3c874cf55e791a920ce8381a55b6bbc58b6a38e0aed791a1b
7
- data.tar.gz: 3cf4e524aa396ee9c017c953f6eea4efc478df31160e1f96e92602a73ef9710cc896a297a1e7a6c3b77cbe2979571d51040471eef4e2a64bef47c1c5fb05dbed
6
+ metadata.gz: 0f65da1481545a4b12935621d267729ca41612f5303a0865a88be61ade614ef4d0fe2a0c9255ec86fa0a2e75dad6d00108de729659af1dccd3f12ad5a7486046
7
+ data.tar.gz: c6120e96a80efd09287d49525f39dadcf872f382038ff210d878fe33d200d252d1303632e1456e2ac3196bd61c194d1ea53851c776332cd84b033670b11b3a67
data/.version CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.2.1
@@ -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
@@ -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
- PARAMS.__add_annotation name, args
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
- PARAMS.send *args
73
+ @@params.send *args
73
74
  end
74
75
  elsif block
75
- PARAMS.instance_eval &block
76
+ @@params.instance_eval &block
76
77
  else
77
78
  only_in_api_methods!
78
- PARAMS
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
- PARAMS.__add :desc, data
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
- PARAMS.__add :detail, data
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
- PARAMS.__add :gettable
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
- if @method_type
124
- PARAMS.__add :unsafe
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
@@ -40,11 +40,11 @@ class Joshua
40
40
  .tap { @opts = {} }
41
41
  end
42
42
 
43
- def __add name, value=true
43
+ def add_generic name, value=true
44
44
  @opts[name] = value
45
45
  end
46
46
 
47
- def __add_annotation name, data
47
+ def add_annotation name, data
48
48
  @opts[:annotations] ||= {}
49
49
  @opts[:annotations][name] = data
50
50
  end
@@ -105,9 +105,14 @@ window.TabResponse = {
105
105
  post += 'api_token=' + bearer
106
106
  }
107
107
 
108
- $.post(url, post, (data) => {
109
- State.response = data;
110
- TabResponse.render_tab_data()
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.0
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-01 00:00:00.000000000 Z
11
+ date: 2020-05-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dry-inflector