joshua 0.1.0 → 0.2.1

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