try_api 0.1.4 → 0.1.5

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
  SHA1:
3
- metadata.gz: b641b5c9910f77e6b1e5d868f239beb51c0ec683
4
- data.tar.gz: 7f0ea527339f494fb08251956aeee9e587b86c40
3
+ metadata.gz: bb091dde6b40cbf507ce459fd4bafb4225574a75
4
+ data.tar.gz: 9898a53fb35652246ee75e8d6fb978b547c194dd
5
5
  SHA512:
6
- metadata.gz: 6b9d29e9eaaae990098ad0b101d9495aaa6697aeb13de00ed11262d619f58bc71cc4a5339103e085d31c23871eeab860ca91f01954f3202dd05a803bb36fee45
7
- data.tar.gz: 8a75f8800385d097391acccf07438f4b6719266148820bef3aa39e58c88329a5955da1c2c67d36603b6ebda05a93c37b826bd846d861eacb8d5d160fe8a1dc36
6
+ metadata.gz: 34690c1a886da0f038bd5c0669182d648a417154779e8eb2600bb5a83ed728bdbfda9715b5a6520ec366e99eaa4a966b69ec810ebd73fc24c62c8d469a8bb571
7
+ data.tar.gz: 550882bfbccec64c051a1734b35416b93651700804903fcb45554780ccdafee12cde1cd9a3c56024534967320fb9710e8f73595ccad851f6f63afa1e3945ac20
@@ -1,7 +1,9 @@
1
1
  #= require try_api/params.directive
2
2
  #= require try_api/param.directive
3
3
  #= require try_api/paramsarray.directive
4
+ #= require try_api/paramsobject.directive
4
5
  #= require try_api/image.directive
6
+ #= require try_api/curl.directive
5
7
  #= require try_api/url.directive
6
8
  #= require try_api/scrollspy.directive
7
9
 
@@ -27,7 +29,6 @@ $ ->
27
29
 
28
30
 
29
31
  TryApiApp = angular.module('TryApiApp', [
30
- 'ui.bootstrap'
31
32
  'ngAnimate'
32
33
  'ngCookies'
33
34
  'TryApi'
@@ -135,13 +136,14 @@ TryApiApp.controller 'HomeController', [
135
136
  .success method.response_handler
136
137
  .error method.response_handler
137
138
 
138
- $http.get('/developers/projects.json').success (data) -> # TODO this should depends from app routes
139
+ $http.get('<%= TryApi::Engine.routes.url_helpers.projects_path %>').success (data) ->
139
140
  $scope.project = data.project
140
141
  $.each $scope.project.menu_items, () ->
141
142
  menu_item = this
142
143
  $.each menu_item.methods, ()->
143
144
  method = this
144
145
  method.pending = false
146
+ method.endpoint = $scope.project.endpoint;
145
147
  method.response_handler = (data, status, headers, config) ->
146
148
  method.pending = false
147
149
  try # TODO catch different types of response
@@ -214,6 +216,14 @@ TryApiApp.controller 'HomeController', [
214
216
  form.append parameter.name + '[]' + subparameter.name, subparameter.value || false
215
217
  else
216
218
  form.append parameter.name + '[]' + subparameter.name, subparameter.value || ''
219
+ if parameter.type == 'object'
220
+ $.each parameter.values, ->
221
+ subparameter = this
222
+ switch subparameter.type
223
+ when 'boolean'
224
+ form.append parameter.name + '[' + subparameter.name + ']', subparameter.value || false
225
+ else
226
+ form.append parameter.name + '[' + subparameter.name + ']', subparameter.value || ''
217
227
  else
218
228
  switch parameter.type
219
229
  when 'boolean'
@@ -0,0 +1,139 @@
1
+ 'use strict';
2
+
3
+ angular.module('TryApi').directive('curl', ['$filter', function($filter) {
4
+
5
+ function link(scope, element, attributes, ctrl) {
6
+
7
+ scope.curlString = '';
8
+
9
+ scope.$watch(function(){
10
+ return JSON.stringify(scope.model);
11
+ }, function(){
12
+ let method = scope.model.method.toString().toUpperCase();
13
+ let headers = [];
14
+ let formData = scope.isFormData(scope.model.parameters);
15
+
16
+ if(formData) {
17
+
18
+ }else{
19
+ headers.push(" -H \"Content-Type: application/json\"");
20
+ }
21
+
22
+ if(scope.model.headers){
23
+ scope.model.headers.forEach(function(header){
24
+ headers.push(' -H "' + header.name + ': ' + (header.value || '') + '"')
25
+ })
26
+ }
27
+
28
+ scope.curlString = 'curl -X ' + method + ' ' + scope.model.endpoint + '/' + scope.model.submit_path + headers.join('');
29
+
30
+ if(scope.model.parameters && scope.model.parameters.length > 0) {
31
+ if (formData) {
32
+ scope.curlString += ' -c -include ' + scope.toFormDataKeys(scope.model.parameters);
33
+ } else {
34
+ scope.curlString += ' -d "' + JSON.stringify(scope.toJsonParameters(scope.model.parameters)).replace(/"/g, '\\"').replace(/,/g, ', ') + '"';
35
+ }
36
+ }
37
+
38
+ }, true)
39
+
40
+ scope.toFormDataKeys = function(parameters, prefix){
41
+ let result = '';
42
+
43
+ if(parameters && parameters.length > 0){
44
+ parameters.forEach(function(parameter){
45
+
46
+ let name = '';
47
+
48
+ if(prefix) {
49
+ name = prefix + '[' + parameter.name + ']';
50
+ }else{
51
+ name = parameter.name;
52
+ }
53
+
54
+ if(parameter.type == 'array'){
55
+ if(parameter.values && parameter.values.length > 0){
56
+ let i = 0;
57
+ parameter.values.forEach(function(value){
58
+ let temp_parameters = [];
59
+ for(let k in value){
60
+ temp_parameters.push(value[k]);
61
+ }
62
+ result += scope.toFormDataKeys(temp_parameters, name + '[]');
63
+ i++;
64
+ })
65
+ }
66
+ }else{
67
+ let value = '';
68
+
69
+ if(parameter.type == 'image'){
70
+ value = parameter.value ? '@' + parameter.value.name : '';
71
+ }else{
72
+ value = parameter.value || '';
73
+ }
74
+
75
+ result += ' -F "' + name + '=' + value + '"';
76
+ }
77
+ });
78
+ }
79
+ return result;
80
+ }
81
+
82
+ scope.toJsonParameters = function(parameters){
83
+ let result = {};
84
+
85
+ if(parameters && parameters.length > 0){
86
+ parameters.forEach(function(parameter){
87
+ if(parameter.type == 'array'){
88
+ if(parameter.values && parameter.values.length > 0){
89
+ result[parameter.name] = [];
90
+ parameter.values.forEach(function(value){
91
+ let temp_parameters = [];
92
+ for(let k in value){
93
+ temp_parameters.push(value[k]);
94
+ }
95
+ result[parameter.name].push(scope.toJsonParameters(temp_parameters));
96
+ })
97
+ }
98
+ }else{
99
+ result[parameter.name] = parameter.value;
100
+ }
101
+ });
102
+ }
103
+ return result;
104
+ }
105
+
106
+ scope.isFormData = function(parameters){
107
+ let result = false;
108
+
109
+ if(parameters && parameters.length > 0){
110
+ parameters.forEach(function(parameter){
111
+ if(parameter.type == 'array'){
112
+ if(parameter.values && parameter.values.length > 0){
113
+ parameter.values.forEach(function(value){
114
+ let temp_parameters = [];
115
+ for(let k in value){
116
+ temp_parameters.push(value[k]);
117
+ }
118
+ result = scope.toJsonParameters(temp_parameters);
119
+ })
120
+ }
121
+ }else if(parameter.type == 'image'){
122
+ result = true;
123
+ }
124
+ });
125
+ }
126
+ return result;
127
+ }
128
+ }
129
+
130
+ return {
131
+ link: link,
132
+ restrict: 'A',
133
+ require: 'ngModel',
134
+ scope: {
135
+ model: '=ngModel'
136
+ },
137
+ template: "{{ curlString }}"
138
+ };
139
+ }]);
@@ -12,21 +12,16 @@ angular.module('TryApi').directive('image', ['$filter', function($filter) {
12
12
  scope.removeImage = function(e){
13
13
  e.stopPropagation();
14
14
  e.preventDefault();
15
- scope.image.base64 = null;
15
+ scope.image.blob_url = null;
16
16
  return false;
17
17
  };
18
18
 
19
19
  var addImage = function(image){
20
- var base64 ='';
21
20
  if(image.type.indexOf("image") > -1) {
22
- var reader = new FileReader();
23
- reader.onload = function(e){
24
- scope.$apply(function(){
25
- scope.model = image;
26
- scope.image = {base64: e.target.result };
27
- });
28
- };
29
- reader.readAsDataURL(image);
21
+ scope.$apply(function(){
22
+ scope.model = image;
23
+ scope.image = { blob_url: (window.URL || window.webkitURL).createObjectURL(image), filename: image.name };
24
+ });
30
25
  }else{
31
26
 
32
27
  }
@@ -81,9 +76,9 @@ angular.module('TryApi').directive('image', ['$filter', function($filter) {
81
76
  },
82
77
  template: "<div class='droppable-area'>" +
83
78
  "<ul class='images-list' >" +
84
- '<li class="plus" style="background-image: url(\'{{ image.base64 || image.url }}\')">' +
79
+ '<li class="plus" style="background-image: url(\'{{ image.blob_url || image.url }}\')">' +
85
80
  "<label>" +
86
- '<i class="fa fa-plus" ng-hide="image.base64"/>' +
81
+ '<i class="fa fa-plus" ng-hide="image.blob_url"/>' +
87
82
  '<input type="file" class="file-select" />' +
88
83
  "</label>" +
89
84
  "</li>" +
@@ -16,11 +16,11 @@ angular.module('TryApi').directive 'param', [
16
16
  scope:
17
17
  parameter: '=ngModel'
18
18
  template: '' +
19
- '<div class="col-md-4 text-right" ng-if=\'parameter.type != "array"\'>' +
19
+ '<div class="col-md-4 text-right" ng-if=\'parameter.type != "array" && parameter.type != "object"\'>' +
20
20
  ' <b>{{ parameter.name }}</b>' +
21
21
  ' <span class="label label-success">{{ parameter.type }}</span>' +
22
22
  '</div>' +
23
- '<div class="col-md-8" ng-if=\'parameter.type != "array"\'>' +
23
+ '<div class="col-md-8" ng-if=\'parameter.type != "array" && parameter.type != "object"\'>' +
24
24
  ' <div ng-switch="parameter.type">' +
25
25
  ' <input ng-switch-when="string" type="text" ng-model="parameter.value" placeholder=\'{{ parameter.required ? "required" : "optional"}}\'>' +
26
26
  ' <textarea ng-switch-when="text" ng-model="parameter.value" placeholder=\'{{ parameter.required ? "required" : "optional"}}\' style="max-width: 100%" />' +
@@ -47,6 +47,18 @@ angular.module('TryApi').directive 'param', [
47
47
  ' </div>' +
48
48
  ' </div>' +
49
49
  ' <div paramsarray ng-model="parameter"></div>' +
50
+ '</div>' +
51
+ '<div class="col-md-12" ng-if=\'parameter.type == "object"\'>' +
52
+ ' <div class="row">' +
53
+ ' <div class="col-md-4 text-right">' +
54
+ ' <b>{{ parameter.name }}</b>' +
55
+ ' <span class="text-muted label label-warning">{{ parameter.type }}</span>' +
56
+ ' </div>' +
57
+ ' <div class="col-md-8">' +
58
+ ' <div class="text-muted small" ng-bind-html="getHtml(parameter.description)"></div>' +
59
+ ' </div>' +
60
+ ' </div>' +
61
+ ' <div paramsobject ng-model="parameter"></div>' +
50
62
  '</div>'
51
63
  }
52
- ]
64
+ ]
@@ -0,0 +1,20 @@
1
+ angular.module('TryApi').directive 'paramsobject', [
2
+ '$filter'
3
+ ($filter) ->
4
+
5
+ link = (scope, element, attrs, ctrl) ->
6
+
7
+ scope.parameter.values = jQuery.extend(true, {}, scope.parameter.parameters)
8
+
9
+ return {
10
+ link: link
11
+ restrict: 'A'
12
+ require: 'ngModel'
13
+ scope:
14
+ parameter: '=ngModel'
15
+ template: '' +
16
+ '<div style="border: 1px solid lightgray; margin: 1px 1px 1px 10px">' +
17
+ ' <div params ng-model="parameter.values"></div>' +
18
+ '</div>'
19
+ }
20
+ ]
@@ -46,7 +46,9 @@ angular.module('tryApiScrollSpy.directives', [])
46
46
 
47
47
  var activate = function(scope, $element, attrs) {
48
48
  $(attrs.target + ' .active').removeClass('active');
49
- $element.addClass('active');
49
+ if($element){
50
+ $element.addClass('active');
51
+ }
50
52
  };
51
53
 
52
54
  var process = function(scope, element, attrs) {
@@ -25,7 +25,7 @@ angular.module('TryApi').directive 'url', [
25
25
  , true
26
26
 
27
27
  scope.inputStyle = (part) ->
28
- charWidth = 13.3;
28
+ charWidth = 11.5;
29
29
  return {
30
30
  "width": ((part.value).length + 1) * charWidth + "px",
31
31
  "min-width": ((part.placeholder).length) * charWidth + "px"
@@ -2,6 +2,8 @@ body
2
2
  margin: 0
3
3
  background-color: #f3f3f4
4
4
  font-family: Arial, Helvetica, sans-serif
5
+ min-width: 700px
6
+ overflow: auto
5
7
 
6
8
  input, textarea
7
9
  border: 0
@@ -10,7 +12,6 @@ body
10
12
  &:not(.url-input)
11
13
  width: 100%
12
14
 
13
-
14
15
  ::-webkit-input-placeholder
15
16
  color: #19B698
16
17
  ::-moz-placeholder
@@ -21,11 +22,16 @@ body
21
22
  color: #19B698
22
23
 
23
24
  pre
24
- padding: 0
25
+ line-height: 1.25
26
+ border-radius: 5px
27
+ box-shadow: 0 0 200px rgba(0,0,0,.33) inset
25
28
  margin: 0
26
- background-color: transparent
27
- border: 0
28
- border-radius: 0
29
+ border-top: 1px solid #000
30
+ border-bottom: 1px solid #404040
31
+ white-space: pre-wrap
32
+ word-break: normal
33
+ word-spacing: normal
34
+ background-color: black
29
35
 
30
36
  button
31
37
  outline: none !important
@@ -99,13 +105,18 @@ body
99
105
  padding-bottom: 60px
100
106
  .second-level-menu-items
101
107
  list-style-type: none
102
- font-size: 14px
103
- padding: 10px 9px
108
+ font-size: 12px
109
+ padding: 4px 9px
110
+ li
111
+ a
112
+ color: rgb(61, 64, 66)
113
+ font-size: 12.5px
104
114
 
105
115
  &-item
106
116
  a
107
- color: rgb(61, 64, 66)
108
117
  text-decoration: none
118
+ font-size: 14px
119
+ color: black
109
120
  &:hover
110
121
  text-decoration: underline
111
122
 
@@ -120,38 +131,54 @@ body
120
131
  border-bottom: 1px solid lightgray
121
132
  &-try
122
133
  background-color: white
123
- padding: 20px 15px
124
-
134
+ padding: 15px 15px
135
+ @media (max-width: 1000px)
136
+ width: 100%
137
+ min-width: 500px
125
138
  &-heading
126
139
  color: rgb(137, 140, 143)
127
140
  font-weight: normal
128
-
141
+ .method-title
142
+ font-size: 18px
143
+ color: black
144
+ font-weight: 500
145
+ .method-url
146
+ font-size: 17px
147
+ color: black
148
+ .params-label
149
+ color: gray
150
+ text-align: center
151
+ text-transform: uppercase
152
+ margin-top: 14px
153
+ border-bottom: 1px solid lightgray
154
+ font-size: 13px
129
155
  &-example
130
- background-color: #32373a
156
+ background-color: #23241f
131
157
  color: #b1bdc4
132
158
  padding: 10px 15px
159
+ @media (max-width: 1000px)
160
+ width: 100%
161
+ min-width: 500px
133
162
  &-code, code
134
163
  color: #b1bdc4
135
164
  margin: 0
136
165
  padding: 20px 40px
137
- background: #272b2d
166
+ background: #23241f
138
167
  border-radius: 5px
139
168
  font-family: Source Code Pro,Menlo,monospace
140
169
  font-size: 13px
141
170
  line-height: 1.5em
142
171
  font-weight: 500
143
- h1
144
- font-size: 16px
145
- text-transform: uppercase
172
+ &-menu
173
+ text-align: right
174
+ .label
175
+ cursor: pointer
146
176
 
147
177
  &-response
148
178
  margin: 2px 0
149
179
  &-header
150
- background-color: #272b2d
180
+ margin-top: 10px
151
181
  padding: 3px
152
- cursor: pointer
153
- border-top-right-radius: 5px
154
- border-top-left-radius: 5px
155
182
  position: relative
156
183
  i.fa
157
184
  position: absolute
@@ -185,9 +212,7 @@ body
185
212
  font-size: 16px
186
213
  color: rgb(137, 140, 143)
187
214
 
188
-
189
215
  .parameter
190
- padding-bottom: 5px
191
216
  padding-top: 5px
192
217
 
193
218
  .nav > li > a
@@ -9,7 +9,6 @@
9
9
  <script src="https://cdnjs.cloudflare.com/ajax/libs/jQuery-slimScroll/1.3.8/jquery.slimscroll.min.js"></script>
10
10
  <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.8/angular.min.js"></script>
11
11
  <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.8/angular-animate.min.js"></script>
12
- <script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/2.1.3/ui-bootstrap.min.js"></script>
13
12
  <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.6.0/highlight.min.js"></script>
14
13
  <script src="https://cdnjs.cloudflare.com/ajax/libs/angular-highlightjs/0.6.2/angular-highlightjs.min.js"></script>
15
14
  <script src="https://cdnjs.cloudflare.com/ajax/libs/spin.js/2.3.2/spin.min.js"></script>
@@ -18,7 +17,7 @@
18
17
  <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.8/angular-cookies.min.js"></script>
19
18
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.6.3/css/font-awesome.min.css"/>
20
19
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-alpha/css/bootstrap.min.css"/>
21
- <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.6.0/styles/atelier-savanna-dark.min.css"/>
20
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.10.0/styles/atelier-lakeside-dark.min.css"/>
22
21
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/Ladda/1.0.0/ladda.min.css"/>
23
22
 
24
23
  <%= stylesheet_link_tag "try_api/application", :media => "all", :async => false %>
@@ -38,22 +38,28 @@
38
38
  </div>
39
39
  </div>
40
40
  <div class="row method is-flex" id="{{ method.description ? '' : ('section' + menu_item.id + method.id) }}" ng-if="method.method != 'web_socket'">
41
- <div class="col-md-6 method-try"><h4>{{ method.title }}</h4>
42
- <h4>
41
+ <div class="col-md-6 method-try">
42
+ <div class="method-title">{{ method.title }}</div>
43
+ <div class="method-url">
43
44
  <span class="label label-success" style="text-transform: uppercase">{{ method.method }}</span>
44
45
  <span url=true ng-model="method.submit_path" pattern="method.local_path"></span>
45
- </h4>
46
- <div ng-if="method.headers.length > 0"><label>Headers:</label>
46
+ </div>
47
+ <div ng-if="method.headers.length > 0">
48
+ <div class="params-label">Headers</div>
47
49
  <div class="row parameter" ng-repeat="header in method.headers">
48
- <div class="col-md-4 text-right"><b>{{header.name }}</b></div>
49
- <div class="col-md-8"><input ng-model="header.value" type="text"/>
50
+ <div class="col-md-4 text-right">
51
+ <b>{{header.name }}</b>
52
+ </div>
53
+ <div class="col-md-8">
54
+ <input ng-model="header.value" type="text"/>
50
55
  <div class="text-muted small">
51
56
  <div ng-trust-html="getHtml(header.description)"></div>
52
57
  </div>
53
58
  </div>
54
59
  </div>
55
60
  </div>
56
- <div ng-if="method.parameters.length > 0"><label>Parameters:</label>
61
+ <div ng-if="method.parameters.length > 0">
62
+ <div class="params-label">Parameters</div>
57
63
  <div ng-model="method.parameters" params=""></div>
58
64
  </div>
59
65
  <br/>
@@ -76,16 +82,21 @@
76
82
  <div hljs="" hljs-language="json" hljs-source="method.response.headers"></div>
77
83
  </div>
78
84
  </div>
79
- <div class="col-md-6 method-example"><h1>Example responses</h1>
80
- <div ng-repeat="example in method.example_responses" class="method-example-response">
81
- <div class="method-example-response-header" ng-click="example.isCollapsed = !example.isCollapsed" ng-class="{ 'collapsed': example.isCollapsed }">
82
- <span class="label label-{{ example.color }}">
83
- {{ example.code }}
84
- </span>
85
- &nbsp;{{ example.description }}
86
- <i class="fa" ng-class=" example.isCollapsed ? 'fa-chevron-left' : 'fa-chevron-down' "></i>
85
+ <div class="col-md-6 method-example">
86
+ <div class="method-example-menu" ng-init="method.menu = 'resp'">
87
+ <span class="label" ng-class="{'label-success': method.menu == 'resp'}" ng-click="method.menu = 'resp'">Response</span>
88
+ <span class="label" ng-class="{'label-success': method.menu == 'curl'}" ng-click="method.menu = 'curl'">curl</span>
89
+ </div>
90
+
91
+ <div ng-show="method.menu == 'curl'">
92
+ <div curl ng-model="method"></div>
93
+ </div>
94
+ <div ng-repeat="example in method.example_responses" class="method-example-response" ng-show="method.menu == 'resp'">
95
+ <div class="method-example-response-header">
96
+ {{ example.code }}
97
+ {{ example.description }}
87
98
  </div>
88
- <div class="method-example-response-body" hljs="" hljs-language="{{ example.type }}" hljs-source="example.response" uib-collapse="example.isCollapsed">
99
+ <div class="method-example-response-body" hljs="" hljs-language="{{ example.type }}" hljs-source="example.response">
89
100
 
90
101
  </div>
91
102
  </div>
@@ -142,8 +153,12 @@
142
153
  <div class="row method is-flex">
143
154
  <div class="col-md-6 method-try"></div>
144
155
  <div class="col-md-6 method-example">
145
- <div class="text-right"><strong>Created using <a href="https://github.com/mskubenich/try_api">try_api <i
146
- class="fa fa-github"></i></a></strong></div>
156
+ <div class="text-right">
157
+ <strong>
158
+ Created using
159
+ <a href="https://github.com/mskubenich/try_api">try_api <i class="fa fa-github"></i></a>
160
+ </strong>
161
+ </div>
147
162
  </div>
148
163
  </div>
149
164
  </div>
@@ -1,3 +1,3 @@
1
1
  module TryApi
2
- VERSION = "0.1.4"
2
+ VERSION = "0.1.5"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: try_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
- - Mykhaylo Skubenych
7
+ - Michael Skubenych
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-10-18 00:00:00.000000000 Z
11
+ date: 2017-04-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -27,18 +27,20 @@ dependencies:
27
27
  description: 'Generates UI for rails apps with APIs. You can easily test, share and
28
28
  play with you''r APIs. Enjoy ) '
29
29
  email:
30
- - mykhaylo.skubenych@gmail.com
30
+ - michael.skubenych@gmail.com
31
31
  executables: []
32
32
  extensions: []
33
33
  extra_rdoc_files: []
34
34
  files:
35
35
  - MIT-LICENSE
36
36
  - Rakefile
37
- - app/assets/javascripts/try_api/application.js.coffee
37
+ - app/assets/javascripts/try_api/application.js.coffee.erb
38
+ - app/assets/javascripts/try_api/curl.directive.js
38
39
  - app/assets/javascripts/try_api/image.directive.js
39
40
  - app/assets/javascripts/try_api/param.directive.js.coffee
40
41
  - app/assets/javascripts/try_api/params.directive.js.coffee
41
42
  - app/assets/javascripts/try_api/paramsarray.directive.js.coffee
43
+ - app/assets/javascripts/try_api/paramsobject.directive.js.coffee
42
44
  - app/assets/javascripts/try_api/scrollspy.directive.js
43
45
  - app/assets/javascripts/try_api/url.directive.js.coffee
44
46
  - app/assets/stylesheets/try_api/application.css.sass