putsreq 0.0.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 +7 -0
- data/.codeclimate.yml +7 -0
- data/.coffeelint.json +5 -0
- data/.gitignore +20 -0
- data/.hound.yml +14 -0
- data/.jshintrc +3 -0
- data/.rspec +3 -0
- data/.rubocop.yml +110 -0
- data/.ruby-version +1 -0
- data/.travis.yml +18 -0
- data/Gemfile +91 -0
- data/Gemfile.lock +270 -0
- data/LICENSE +5 -0
- data/Procfile +1 -0
- data/README.md +147 -0
- data/Rakefile +8 -0
- data/app/assets/javascripts/application.js +27 -0
- data/app/assets/javascripts/buckets.js.coffee +68 -0
- data/app/assets/javascripts/initializers.js.coffee +8 -0
- data/app/assets/stylesheets/application.css +15 -0
- data/app/assets/stylesheets/base.css +68 -0
- data/app/assets/stylesheets/buckets.css.scss +91 -0
- data/app/assets/stylesheets/helpers.css +154 -0
- data/app/controllers/application_controller.rb +35 -0
- data/app/controllers/buckets_controller.rb +88 -0
- data/app/controllers/concerns/.keep +0 -0
- data/app/controllers/home_controller.rb +18 -0
- data/app/helpers/application_helper.rb +14 -0
- data/app/interactors/create_request.rb +15 -0
- data/app/interactors/create_response.rb +11 -0
- data/app/interactors/eval_response_builder.rb +55 -0
- data/app/interactors/filter_headers.rb +28 -0
- data/app/interactors/forward_request.rb +39 -0
- data/app/interactors/notify_count.rb +15 -0
- data/app/interactors/record_request.rb +5 -0
- data/app/mailers/.keep +0 -0
- data/app/models/.keep +0 -0
- data/app/models/bucket.rb +99 -0
- data/app/models/concerns/.keep +0 -0
- data/app/models/request.rb +36 -0
- data/app/models/response.rb +22 -0
- data/app/models/user.rb +42 -0
- data/app/views/buckets/_buttons.html.erb +4 -0
- data/app/views/buckets/_form.html.erb +33 -0
- data/app/views/buckets/_readonly_buttons.html.erb +1 -0
- data/app/views/buckets/_requests.html.erb +45 -0
- data/app/views/buckets/show.html.erb +58 -0
- data/app/views/home/index.html.erb +45 -0
- data/app/views/layouts/_header.html.erb +18 -0
- data/app/views/layouts/application.html.erb +28 -0
- data/app/views/layouts/devise.html.erb +22 -0
- data/app/views/shared/_flash.html.erb +10 -0
- data/app/views/users/confirmations/new.html.erb +12 -0
- data/app/views/users/mailer/confirmation_instructions.html.erb +5 -0
- data/app/views/users/mailer/reset_password_instructions.html.erb +8 -0
- data/app/views/users/mailer/unlock_instructions.html.erb +7 -0
- data/app/views/users/passwords/edit.html.erb +32 -0
- data/app/views/users/passwords/new.html.erb +23 -0
- data/app/views/users/registrations/edit.html.erb +59 -0
- data/app/views/users/registrations/new.html.erb +46 -0
- data/app/views/users/sessions/new.html.erb +38 -0
- data/app/views/users/shared/_links.erb +25 -0
- data/app/views/users/unlocks/new.html.erb +12 -0
- data/bin/bundle +3 -0
- data/bin/putsreq +71 -0
- data/bin/rails +4 -0
- data/bin/rake +4 -0
- data/bin/rspec +16 -0
- data/config.ru +4 -0
- data/config/application.rb +42 -0
- data/config/boot.rb +4 -0
- data/config/environment.rb +5 -0
- data/config/environments/development.rb +33 -0
- data/config/environments/production.rb +82 -0
- data/config/environments/test.rb +36 -0
- data/config/initializers/backtrace_silencers.rb +7 -0
- data/config/initializers/devise.rb +256 -0
- data/config/initializers/filter_parameter_logging.rb +4 -0
- data/config/initializers/inflections.rb +16 -0
- data/config/initializers/mime_types.rb +5 -0
- data/config/initializers/redis.rb +17 -0
- data/config/initializers/secret_token.rb +12 -0
- data/config/initializers/session_store.rb +3 -0
- data/config/initializers/setup_email.rb +10 -0
- data/config/initializers/wrap_parameters.rb +14 -0
- data/config/locales/devise.en.yml +59 -0
- data/config/locales/en.yml +23 -0
- data/config/mongoid.yml +47 -0
- data/config/routes.rb +15 -0
- data/config/unicorn.rb +16 -0
- data/lib/assets/.keep +0 -0
- data/lib/putsreq/version.rb +3 -0
- data/lib/tasks/.keep +0 -0
- data/public/404.html +58 -0
- data/public/422.html +58 -0
- data/public/500.html +57 -0
- data/public/favicon.ico +0 -0
- data/public/images/.keep +0 -0
- data/public/images/favicon.png +0 -0
- data/public/images/favicon144.png +0 -0
- data/public/images/favicon152.png +0 -0
- data/public/images/glyphicons-halflings-white.png +0 -0
- data/public/images/glyphicons-halflings.png +0 -0
- data/public/images/logo.png +0 -0
- data/public/javascripts/vendor/ace/theme-monokai.js +1 -0
- data/public/javascripts/vendor/ace/theme-textmate.js +1 -0
- data/public/javascripts/vendor/ace/worker-javascript.js +1 -0
- data/public/javascripts/vendor/ace/worker-json.js +1 -0
- data/public/robots.txt +5 -0
- data/putsreq.gemspec +22 -0
- data/spec/controllers/buckets_controller_spec.rb +164 -0
- data/spec/interactors/create_request_spec.rb +34 -0
- data/spec/interactors/create_response_spec.rb +14 -0
- data/spec/interactors/eval_response_builder_spec.rb +63 -0
- data/spec/interactors/forward_request_spec.rb +39 -0
- data/spec/models/bucket_spec.rb +96 -0
- data/spec/models/user_spec.rb +5 -0
- data/spec/spec_helper.rb +66 -0
- data/vendor/assets/javascripts/.keep +0 -0
- data/vendor/assets/javascripts/ace/ace.js +10 -0
- data/vendor/assets/javascripts/ace/ext-searchbox.js +1 -0
- data/vendor/assets/javascripts/ace/ext-spellcheck.js +1 -0
- data/vendor/assets/javascripts/ace/ext-static_highlight.js +1 -0
- data/vendor/assets/javascripts/ace/ext-textarea.js +1 -0
- data/vendor/assets/javascripts/ace/keybinding-emacs.js +1 -0
- data/vendor/assets/javascripts/ace/keybinding-vim.js +1 -0
- data/vendor/assets/javascripts/ace/mode-abap.js +1 -0
- data/vendor/assets/javascripts/ace/mode-asciidoc.js +1 -0
- data/vendor/assets/javascripts/ace/mode-c9search.js +1 -0
- data/vendor/assets/javascripts/ace/mode-c_cpp.js +1 -0
- data/vendor/assets/javascripts/ace/mode-clojure.js +1 -0
- data/vendor/assets/javascripts/ace/mode-coffee.js +1 -0
- data/vendor/assets/javascripts/ace/mode-coldfusion.js +1 -0
- data/vendor/assets/javascripts/ace/mode-csharp.js +1 -0
- data/vendor/assets/javascripts/ace/mode-css.js +1 -0
- data/vendor/assets/javascripts/ace/mode-curly.js +1 -0
- data/vendor/assets/javascripts/ace/mode-dart.js +1 -0
- data/vendor/assets/javascripts/ace/mode-diff.js +1 -0
- data/vendor/assets/javascripts/ace/mode-django.js +1 -0
- data/vendor/assets/javascripts/ace/mode-dot.js +1 -0
- data/vendor/assets/javascripts/ace/mode-glsl.js +1 -0
- data/vendor/assets/javascripts/ace/mode-golang.js +1 -0
- data/vendor/assets/javascripts/ace/mode-groovy.js +1 -0
- data/vendor/assets/javascripts/ace/mode-haml.js +1 -0
- data/vendor/assets/javascripts/ace/mode-haxe.js +1 -0
- data/vendor/assets/javascripts/ace/mode-html.js +1 -0
- data/vendor/assets/javascripts/ace/mode-jade.js +1 -0
- data/vendor/assets/javascripts/ace/mode-java.js +1 -0
- data/vendor/assets/javascripts/ace/mode-javascript.js +1 -0
- data/vendor/assets/javascripts/ace/mode-json.js +1 -0
- data/vendor/assets/javascripts/ace/mode-jsp.js +1 -0
- data/vendor/assets/javascripts/ace/mode-jsx.js +1 -0
- data/vendor/assets/javascripts/ace/mode-latex.js +1 -0
- data/vendor/assets/javascripts/ace/mode-less.js +1 -0
- data/vendor/assets/javascripts/ace/mode-liquid.js +1 -0
- data/vendor/assets/javascripts/ace/mode-lisp.js +1 -0
- data/vendor/assets/javascripts/ace/mode-livescript.js +1 -0
- data/vendor/assets/javascripts/ace/mode-lua.js +1 -0
- data/vendor/assets/javascripts/ace/mode-luapage.js +1 -0
- data/vendor/assets/javascripts/ace/mode-lucene.js +1 -0
- data/vendor/assets/javascripts/ace/mode-makefile.js +1 -0
- data/vendor/assets/javascripts/ace/mode-markdown.js +1 -0
- data/vendor/assets/javascripts/ace/mode-objectivec.js +1 -0
- data/vendor/assets/javascripts/ace/mode-ocaml.js +1 -0
- data/vendor/assets/javascripts/ace/mode-perl.js +1 -0
- data/vendor/assets/javascripts/ace/mode-pgsql.js +1 -0
- data/vendor/assets/javascripts/ace/mode-php.js +1 -0
- data/vendor/assets/javascripts/ace/mode-powershell.js +1 -0
- data/vendor/assets/javascripts/ace/mode-python.js +1 -0
- data/vendor/assets/javascripts/ace/mode-r.js +1 -0
- data/vendor/assets/javascripts/ace/mode-rdoc.js +1 -0
- data/vendor/assets/javascripts/ace/mode-rhtml.js +1 -0
- data/vendor/assets/javascripts/ace/mode-ruby.js +1 -0
- data/vendor/assets/javascripts/ace/mode-scad.js +1 -0
- data/vendor/assets/javascripts/ace/mode-scala.js +1 -0
- data/vendor/assets/javascripts/ace/mode-scheme.js +1 -0
- data/vendor/assets/javascripts/ace/mode-scss.js +1 -0
- data/vendor/assets/javascripts/ace/mode-sh.js +1 -0
- data/vendor/assets/javascripts/ace/mode-sql.js +1 -0
- data/vendor/assets/javascripts/ace/mode-stylus.js +1 -0
- data/vendor/assets/javascripts/ace/mode-svg.js +1 -0
- data/vendor/assets/javascripts/ace/mode-tcl.js +1 -0
- data/vendor/assets/javascripts/ace/mode-tex.js +1 -0
- data/vendor/assets/javascripts/ace/mode-text.js +0 -0
- data/vendor/assets/javascripts/ace/mode-textile.js +1 -0
- data/vendor/assets/javascripts/ace/mode-tm_snippet.js +1 -0
- data/vendor/assets/javascripts/ace/mode-typescript.js +1 -0
- data/vendor/assets/javascripts/ace/mode-vbscript.js +1 -0
- data/vendor/assets/javascripts/ace/mode-xml.js +1 -0
- data/vendor/assets/javascripts/ace/mode-xquery.js +1 -0
- data/vendor/assets/javascripts/ace/mode-yaml.js +1 -0
- data/vendor/assets/javascripts/ace/theme-ambiance.js +1 -0
- data/vendor/assets/javascripts/ace/theme-chaos.js +1 -0
- data/vendor/assets/javascripts/ace/theme-chrome.js +1 -0
- data/vendor/assets/javascripts/ace/theme-clouds.js +1 -0
- data/vendor/assets/javascripts/ace/theme-clouds_midnight.js +1 -0
- data/vendor/assets/javascripts/ace/theme-cobalt.js +1 -0
- data/vendor/assets/javascripts/ace/theme-crimson_editor.js +1 -0
- data/vendor/assets/javascripts/ace/theme-dawn.js +1 -0
- data/vendor/assets/javascripts/ace/theme-dreamweaver.js +1 -0
- data/vendor/assets/javascripts/ace/theme-eclipse.js +1 -0
- data/vendor/assets/javascripts/ace/theme-github.js +1 -0
- data/vendor/assets/javascripts/ace/theme-idle_fingers.js +1 -0
- data/vendor/assets/javascripts/ace/theme-kr.js +1 -0
- data/vendor/assets/javascripts/ace/theme-merbivore.js +1 -0
- data/vendor/assets/javascripts/ace/theme-merbivore_soft.js +1 -0
- data/vendor/assets/javascripts/ace/theme-mono_industrial.js +1 -0
- data/vendor/assets/javascripts/ace/theme-monokai.js +1 -0
- data/vendor/assets/javascripts/ace/theme-pastel_on_dark.js +1 -0
- data/vendor/assets/javascripts/ace/theme-solarized_dark.js +1 -0
- data/vendor/assets/javascripts/ace/theme-solarized_light.js +1 -0
- data/vendor/assets/javascripts/ace/theme-textmate.js +1 -0
- data/vendor/assets/javascripts/ace/theme-tomorrow.js +1 -0
- data/vendor/assets/javascripts/ace/theme-tomorrow_night.js +1 -0
- data/vendor/assets/javascripts/ace/theme-tomorrow_night_blue.js +1 -0
- data/vendor/assets/javascripts/ace/theme-tomorrow_night_bright.js +1 -0
- data/vendor/assets/javascripts/ace/theme-tomorrow_night_eighties.js +1 -0
- data/vendor/assets/javascripts/ace/theme-twilight.js +1 -0
- data/vendor/assets/javascripts/ace/theme-vibrant_ink.js +1 -0
- data/vendor/assets/javascripts/ace/theme-xcode.js +1 -0
- data/vendor/assets/javascripts/ace/worker-coffee.js +1 -0
- data/vendor/assets/javascripts/ace/worker-css.js +1 -0
- data/vendor/assets/javascripts/ace/worker-javascript.js +1 -0
- data/vendor/assets/javascripts/ace/worker-json.js +1 -0
- data/vendor/assets/javascripts/ace/worker-php.js +1 -0
- data/vendor/assets/javascripts/ace/worker-xquery.js +1 -0
- data/vendor/assets/javascripts/jquery.tipsy.js +198 -0
- data/vendor/assets/javascripts/mode-javascript.js +1 -0
- data/vendor/assets/javascripts/theme-monokai.js +1 -0
- data/vendor/assets/javascripts/worker-javascript.js +1 -0
- data/vendor/assets/stylesheets/.keep +0 -0
- data/vendor/assets/stylesheets/tipsy.css +25 -0
- metadata +311 -0
data/LICENSE
ADDED
data/Procfile
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
web: bundle exec unicorn -p $PORT -c ./config/unicorn.rb
|
data/README.md
ADDED
@@ -0,0 +1,147 @@
|
|
1
|
+
[](https://travis-ci.org/phstc/putsreq)
|
2
|
+
[](https://codeclimate.com/github/phstc/putsreq)
|
3
|
+
[](https://codeclimate.com/github/phstc/putsreq/coverage)
|
4
|
+
|
5
|
+
## PutsReq
|
6
|
+
|
7
|
+
PutsReq lets you record HTTP requests and simulate responses like no other tool available. [Try it now](http://putsreq.com)!
|
8
|
+
|
9
|
+
Check this post: [Play Rock-paper-scissors with Slack and PutsReq](http://www.pablocantero.com/blog/2014/10/12/play-rock-paper-scissors-with-slack-and-putsreq/) for some other examples.
|
10
|
+
|
11
|
+
### Getting Started
|
12
|
+
|
13
|
+
Steps to run PutsReq in development.
|
14
|
+
|
15
|
+
#### Install MongoDB
|
16
|
+
|
17
|
+
```bash
|
18
|
+
brew install mongo
|
19
|
+
|
20
|
+
mongod
|
21
|
+
```
|
22
|
+
|
23
|
+
#### Start PutsReq
|
24
|
+
|
25
|
+
```
|
26
|
+
cd ~/workspace
|
27
|
+
|
28
|
+
git clone git@github.com:phstc/putsreq.git
|
29
|
+
|
30
|
+
cd putsreq
|
31
|
+
|
32
|
+
bundle install
|
33
|
+
|
34
|
+
rails s
|
35
|
+
|
36
|
+
open http://localhost:3000
|
37
|
+
```
|
38
|
+
|
39
|
+
### Response Builder
|
40
|
+
|
41
|
+
The Response Builder is the place where you can create your responses using JavaScript V8.
|
42
|
+
|
43
|
+
Here is the list of request attributes you can access to create your responses:
|
44
|
+
|
45
|
+
#### request
|
46
|
+
|
47
|
+
```javascript
|
48
|
+
// curl -X POST -H 'X-MyHeader: MyHeaderValue' -d 'name=Pablo' https://putsreq.com/<YOUR-TOKEN>
|
49
|
+
|
50
|
+
request.request_method;
|
51
|
+
// => POST
|
52
|
+
|
53
|
+
request.body;
|
54
|
+
// => name=Pablo
|
55
|
+
|
56
|
+
request.params.name;
|
57
|
+
// => Pablo
|
58
|
+
|
59
|
+
request.headers['HTTP_X_MYHEADER'];
|
60
|
+
// => MyHeaderValue
|
61
|
+
```
|
62
|
+
|
63
|
+
Parsing a JSON request:
|
64
|
+
|
65
|
+
```javascript
|
66
|
+
// curl -i -X POST -H 'Content-Type: application/json' -d '{"message":"Hello World"}' https://putsreq.com/<YOUR-TOKEN>
|
67
|
+
|
68
|
+
var parsedBody = JSON.parse(request.body);
|
69
|
+
|
70
|
+
parsedBody.message;
|
71
|
+
// => Hello World
|
72
|
+
```
|
73
|
+
|
74
|
+
#### response
|
75
|
+
|
76
|
+
```javascript
|
77
|
+
response.status = 200; // default value
|
78
|
+
response.headers = {}; // default value
|
79
|
+
response.body = 'ok'; // default value
|
80
|
+
```
|
81
|
+
|
82
|
+
Returning a JSON response:
|
83
|
+
|
84
|
+
```javascript
|
85
|
+
response.headers['Content-Type'] = 'application/json';
|
86
|
+
|
87
|
+
response.body = { 'message': 'Hello World' };
|
88
|
+
```
|
89
|
+
|
90
|
+
#### forwardTo
|
91
|
+
|
92
|
+
If you only want to log your requests, you can use PutsReq as a proxy to forward them.
|
93
|
+
|
94
|
+
```javascript
|
95
|
+
request.forwardTo = 'http://example.com/api';
|
96
|
+
```
|
97
|
+
|
98
|
+
You can also modify the requests before forwarding them.
|
99
|
+
|
100
|
+
```javascript
|
101
|
+
// add or change a header
|
102
|
+
request.headers['X-MyNewHeader'] = 'MyHeaderValue'
|
103
|
+
|
104
|
+
var parsedBody = JSON.parse(request.body);
|
105
|
+
|
106
|
+
// add or change a value
|
107
|
+
parsedBody['my_new_key'] = 'my new value';
|
108
|
+
|
109
|
+
request.body = parsedBody;
|
110
|
+
|
111
|
+
request.forwardTo = 'http://example.com/api';
|
112
|
+
```
|
113
|
+
|
114
|
+
### Ajax
|
115
|
+
|
116
|
+
PutsReq supports [CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing), so you can use it to test your Ajax calls.
|
117
|
+
|
118
|
+
```html
|
119
|
+
<html>
|
120
|
+
<head>
|
121
|
+
<title>Your Website</title>
|
122
|
+
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
|
123
|
+
<script>
|
124
|
+
// Sample PutsReq Response Builder
|
125
|
+
// https://putsreq.com/<YOUR-TOKEN>/inspect
|
126
|
+
// response.headers['Content-Type'] = 'application/json';
|
127
|
+
// response.body = { 'message': 'Hello World' };
|
128
|
+
|
129
|
+
// Sample Ajax call
|
130
|
+
$.get('https://putsreq.com/<YOUR-TOKEN>', function(data) {
|
131
|
+
alert(data.message);
|
132
|
+
// => 'Hello World'
|
133
|
+
});
|
134
|
+
</script>
|
135
|
+
</head>
|
136
|
+
<body>
|
137
|
+
</body>
|
138
|
+
</html>
|
139
|
+
```
|
140
|
+
|
141
|
+
### Sample Integration Tests
|
142
|
+
|
143
|
+
https://github.com/phstc/putsreq_integration_sample
|
144
|
+
|
145
|
+
### License
|
146
|
+
|
147
|
+
Please see [LICENSE](https://github.com/phstc/putsreq/blob/master/LICENSE) for licensing details.
|
data/Rakefile
ADDED
@@ -0,0 +1,8 @@
|
|
1
|
+
# Add your own tasks in files placed in lib/tasks ending in .rake,
|
2
|
+
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
|
3
|
+
|
4
|
+
require File.expand_path('../config/application', __FILE__)
|
5
|
+
|
6
|
+
PutsReq::Application.load_tasks
|
7
|
+
|
8
|
+
require 'bundler/gem_tasks'
|
@@ -0,0 +1,27 @@
|
|
1
|
+
// This is a manifest file that'll be compiled into application.js, which will include all the files
|
2
|
+
// listed below.
|
3
|
+
//
|
4
|
+
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
|
5
|
+
// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
|
6
|
+
//
|
7
|
+
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
|
8
|
+
// compiled file.
|
9
|
+
//
|
10
|
+
// Read Sprockets README (https://github.com/sstephenson/sprockets#sprockets-directives) for details
|
11
|
+
// about supported directives.
|
12
|
+
//
|
13
|
+
//= require jquery
|
14
|
+
//= require jquery_ujs
|
15
|
+
//= require bootstrap
|
16
|
+
//= require jquery.tipsy
|
17
|
+
//= require clipboard
|
18
|
+
//= require favico.js
|
19
|
+
//
|
20
|
+
//= require ace/ace
|
21
|
+
//= require ace/theme-chrome
|
22
|
+
//= require ace/mode-json
|
23
|
+
//= require ace/mode-javascript
|
24
|
+
//
|
25
|
+
//= require dispatcher
|
26
|
+
//= require initializers
|
27
|
+
//= require_tree .
|
@@ -0,0 +1,68 @@
|
|
1
|
+
App.buckets = {}
|
2
|
+
|
3
|
+
App.buckets['share'] = App.buckets['show'] = ->
|
4
|
+
App.buckets.initializeAce()
|
5
|
+
RequestCountPoller.start()
|
6
|
+
|
7
|
+
tipsyConfig = title: 'Copy to Clipboard', copiedHint: 'Copied!'
|
8
|
+
|
9
|
+
$copyButton = $('#copy-button')
|
10
|
+
$copyButton.tipsy(gravity: $.fn.tipsy.autoNS)
|
11
|
+
$copyButton.attr('title', tipsyConfig.title)
|
12
|
+
|
13
|
+
clipboard = new Clipboard('#copy-button')
|
14
|
+
clipboard.on 'success', ->
|
15
|
+
$copyButton.prop('title', tipsyConfig.copiedHint).tipsy('show')
|
16
|
+
$copyButton.attr('original-title', tipsyConfig.title)
|
17
|
+
|
18
|
+
App.buckets.initializeAce = ->
|
19
|
+
autoResizeAce = ->
|
20
|
+
# http://stackoverflow.com/questions/11584061/
|
21
|
+
newHeight = editor.getSession().getScreenLength() * editor.renderer.lineHeight + editor.renderer.scrollBar.getWidth()
|
22
|
+
|
23
|
+
newHeight = 150 if newHeight < 150
|
24
|
+
|
25
|
+
$('#editor').height "#{newHeight}px"
|
26
|
+
$('#editor-section').height "#{newHeight}x"
|
27
|
+
|
28
|
+
# This call is required for the editor to fix all of
|
29
|
+
# its inner structure for adapting to a change in size
|
30
|
+
editor.resize()
|
31
|
+
|
32
|
+
$('#putsreq-url-input').on 'click', -> $(this).select()
|
33
|
+
|
34
|
+
editor = ace.edit 'editor'
|
35
|
+
editor.setTheme 'ace/theme/monokai'
|
36
|
+
editor.setShowPrintMargin(false)
|
37
|
+
editor.getSession().setMode 'ace/mode/javascript'
|
38
|
+
editor.getSession().on 'change', ->
|
39
|
+
$('#bucket_response_builder').val editor.getSession().getValue()
|
40
|
+
|
41
|
+
editor.setValue $('#response-builder-container').text()
|
42
|
+
editor.clearSelection()
|
43
|
+
|
44
|
+
# Set initial size to match initial content
|
45
|
+
autoResizeAce()
|
46
|
+
|
47
|
+
# Whenever a change happens inside the ACE editor, update
|
48
|
+
# the size again
|
49
|
+
editor.getSession().on 'change', autoResizeAce
|
50
|
+
|
51
|
+
RequestCountPoller =
|
52
|
+
start: ->
|
53
|
+
favicon = new Favico(bgColor: '#6C92C8', animation: 'none')
|
54
|
+
favicon.badge($('#bucket-request-count').text())
|
55
|
+
|
56
|
+
bucket = $('#putsreq-url-input').data('bucket-token')
|
57
|
+
|
58
|
+
pusher = new Pusher('3466d56fe2ef1fdd2943')
|
59
|
+
channel = pusher.subscribe("channel_requests_#{bucket}")
|
60
|
+
channel.bind 'new', (data) ->
|
61
|
+
try
|
62
|
+
$('#bucket-request-count').text(data.count)
|
63
|
+
|
64
|
+
favicon.badge(data.count)
|
65
|
+
catch error
|
66
|
+
|
67
|
+
$('#new-requests-info').hide().
|
68
|
+
html('<em><a id="new-requests-received" href="javascript:window.location.reload();">New requests found. Load newer requests?</a></em>').fadeIn('slow')
|
@@ -0,0 +1,8 @@
|
|
1
|
+
window.App = {}
|
2
|
+
|
3
|
+
# We need it to load Ace editor workers. Otherwise it will fail with assets pipeline.
|
4
|
+
ace.config.set('workerPath', '/javascripts/vendor/ace/')
|
5
|
+
ace.config.set('themePath', '/javascripts/vendor/ace/')
|
6
|
+
|
7
|
+
$ ->
|
8
|
+
Dispatcher.run App, $('body').data('route')
|
@@ -0,0 +1,15 @@
|
|
1
|
+
/*
|
2
|
+
* This is a manifest file that'll be compiled into application.css, which will include all the files
|
3
|
+
* listed below.
|
4
|
+
*
|
5
|
+
* Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
|
6
|
+
* or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path.
|
7
|
+
*
|
8
|
+
* You're free to add application-wide styles to this file and they'll appear at the top of the
|
9
|
+
* compiled file, but it's generally better to create a new file per style scope.
|
10
|
+
*
|
11
|
+
*= require bootstrap
|
12
|
+
*= require tipsy
|
13
|
+
*= require_self
|
14
|
+
*= require_tree .
|
15
|
+
*/
|
@@ -0,0 +1,68 @@
|
|
1
|
+
html { font-size: 62.5%; }
|
2
|
+
body { font-size: 14px; font-size: 1.4rem; background: #f7f7f7;} /* =14px */
|
3
|
+
#editor {
|
4
|
+
width: 100%;
|
5
|
+
height: 100%;
|
6
|
+
}
|
7
|
+
body {
|
8
|
+
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
9
|
+
}
|
10
|
+
header {
|
11
|
+
margin-top: 50px;
|
12
|
+
text-align: center;
|
13
|
+
}
|
14
|
+
header h3 {
|
15
|
+
width: 750px;
|
16
|
+
margin: 20px auto;
|
17
|
+
line-height: 1.2em;
|
18
|
+
text-align: center;
|
19
|
+
font-weight: normal;
|
20
|
+
}
|
21
|
+
header h3 em {
|
22
|
+
font-weight: bold;
|
23
|
+
font-style: normal;
|
24
|
+
}
|
25
|
+
section.start {
|
26
|
+
color: #58585a;
|
27
|
+
width: 750px;
|
28
|
+
margin: 5em auto;
|
29
|
+
}
|
30
|
+
.nav {
|
31
|
+
margin: 10px 0 50px 0;
|
32
|
+
overflow: hidden;
|
33
|
+
}
|
34
|
+
.nav li {
|
35
|
+
float: left;
|
36
|
+
margin-right: 10px;
|
37
|
+
line-height: 30px;
|
38
|
+
}
|
39
|
+
.nav li a {
|
40
|
+
padding: 0 10px;
|
41
|
+
}
|
42
|
+
.nav li.logo img {
|
43
|
+
max-width: 100px;
|
44
|
+
}
|
45
|
+
.nav li.logo {
|
46
|
+
margin: 0;
|
47
|
+
}
|
48
|
+
.nav li.logo a {
|
49
|
+
background: none;
|
50
|
+
padding: 0 20px 0 0;
|
51
|
+
}
|
52
|
+
.putsreq-url-box {
|
53
|
+
text-align: center;
|
54
|
+
}
|
55
|
+
.putsreq-url {
|
56
|
+
margin: 0 auto;
|
57
|
+
width: 633px;
|
58
|
+
}
|
59
|
+
.putsreq-url input {
|
60
|
+
font-size: 2em;
|
61
|
+
width: 645px;
|
62
|
+
text-indent: 10px;
|
63
|
+
}
|
64
|
+
.putsreq-name input {
|
65
|
+
font-size: 2em;
|
66
|
+
width: 400px;
|
67
|
+
text-indent: 10px;
|
68
|
+
}
|
@@ -0,0 +1,91 @@
|
|
1
|
+
// Place all the styles related to the buckets controller here.
|
2
|
+
// They will automatically be included in application.css.
|
3
|
+
// You can use Sass (SCSS) here: http://sass-lang.com/
|
4
|
+
|
5
|
+
.requests-header {
|
6
|
+
font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', monospace;
|
7
|
+
font-size: 12px;
|
8
|
+
width: 100%;
|
9
|
+
text-align: left;
|
10
|
+
border-collapse: collapse;
|
11
|
+
table-layout: fixed;
|
12
|
+
}
|
13
|
+
.requests-header thead th:nth-child(1) {
|
14
|
+
-moz-border-radius-topleft: 10px;
|
15
|
+
-webkit-border-top-left-radius: 10px;
|
16
|
+
width: 300px;
|
17
|
+
}
|
18
|
+
.requests-header thead th:nth-child(2) {
|
19
|
+
-moz-border-radius-topright: 10px;
|
20
|
+
-webkit-border-top-right-radius: 10px;
|
21
|
+
width: 700px;
|
22
|
+
}
|
23
|
+
.requests-header thead th {
|
24
|
+
font-weight: normal;
|
25
|
+
font-size: 13px;
|
26
|
+
color: #fff;
|
27
|
+
background: #428bca;
|
28
|
+
padding: 8px;
|
29
|
+
}
|
30
|
+
.requests-header tbody td {
|
31
|
+
background: #fff;
|
32
|
+
border-top: 1px solid #eee;
|
33
|
+
color: #669;
|
34
|
+
padding: 4px;
|
35
|
+
overflow: hidden;
|
36
|
+
text-overflow: ellipsis;
|
37
|
+
white-space: nowrap;
|
38
|
+
}
|
39
|
+
.requests-header tbody td.key {
|
40
|
+
width: 250px;
|
41
|
+
}
|
42
|
+
.requests-header tbody td.value {
|
43
|
+
width: 920px;
|
44
|
+
max-width: 920px;
|
45
|
+
}
|
46
|
+
.requests-header tfoot td {
|
47
|
+
margin-top: 10px;
|
48
|
+
-moz-border-radius-bottomright: 10px;
|
49
|
+
-moz-border-radius-bottomleft: 10px;
|
50
|
+
-webkit-border-bottom-left-radius: 10px;
|
51
|
+
-webkit-border-bottom-right-radius: 10px;
|
52
|
+
padding: 10px;
|
53
|
+
background: #f2f2f2;
|
54
|
+
}
|
55
|
+
.request-footer-info {
|
56
|
+
float: left;
|
57
|
+
margin-right: 20px;
|
58
|
+
}
|
59
|
+
.request-footer-info small {
|
60
|
+
display: block;
|
61
|
+
}
|
62
|
+
.request-footer-info span {
|
63
|
+
white-space: nowrap;
|
64
|
+
}
|
65
|
+
.requests-header tbody tr:hover td{background:#d0dafd;}
|
66
|
+
.history {
|
67
|
+
float: right;
|
68
|
+
background-color: #eee;
|
69
|
+
margin: 0 0 0 20px;
|
70
|
+
padding: 10px;
|
71
|
+
border-left: 3px solid #428bca;
|
72
|
+
}
|
73
|
+
.history ul {
|
74
|
+
margin: 0;
|
75
|
+
list-style-position: inside;
|
76
|
+
padding: 0;
|
77
|
+
}
|
78
|
+
|
79
|
+
.request-show {
|
80
|
+
pre {
|
81
|
+
background-color: #fff;
|
82
|
+
border: 1px solid #fff;
|
83
|
+
margin: 0;
|
84
|
+
padding: 0;
|
85
|
+
}
|
86
|
+
|
87
|
+
pre p {
|
88
|
+
margin: 0;
|
89
|
+
padding: 0;
|
90
|
+
}
|
91
|
+
}
|