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
@@ -0,0 +1,28 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<%= render 'layouts/header' %>
|
5
|
+
</head>
|
6
|
+
<body data-route="<%= dispatcher_route %>">
|
7
|
+
|
8
|
+
<!-- https://github.com/blog/273-github-ribbons -->
|
9
|
+
<a href="https://github.com/phstc/putsreq"><img style="position: absolute; top: 0; right: 0; border: 0;" src="https://camo.githubusercontent.com/365986a132ccd6a44c23a9169022c0b5c890c387/68747470733a2f2f73332e616d617a6f6e6177732e636f6d2f6769746875622f726962626f6e732f666f726b6d655f72696768745f7265645f6161303030302e706e67" alt="Fork me on GitHub" data-canonical-src="https://s3.amazonaws.com/github/ribbons/forkme_right_red_aa0000.png"></a>
|
10
|
+
|
11
|
+
<div class="container">
|
12
|
+
<%= render 'shared/flash' %>
|
13
|
+
<%= yield %>
|
14
|
+
<hr />
|
15
|
+
<div class="row">
|
16
|
+
<div style="float:left">
|
17
|
+
<strong>Requests Recorded: <%= REDIS.get 'requests_recorded' %></strong>
|
18
|
+
<br/>
|
19
|
+
<br/>
|
20
|
+
<p>Are you looking for Email testing tools? Have a look at <a href="http://putsbox.com" target="_blank">PutsBox</a>.</p>
|
21
|
+
</div>
|
22
|
+
<div style="float:right">
|
23
|
+
Developed by <a href="http://pablocantero.com" target="_blank">Pablo Cantero</a> | Design by <a href="http://rodger.com.br" target="_blank">Glauber Rodger</a>.
|
24
|
+
</div>
|
25
|
+
</div>
|
26
|
+
</div>
|
27
|
+
</body>
|
28
|
+
</html>
|
@@ -0,0 +1,22 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<%= render 'layouts/header' %>
|
5
|
+
</head>
|
6
|
+
<body data-route="<%= dispatcher_route %>">
|
7
|
+
|
8
|
+
<!-- https://github.com/blog/273-github-ribbons -->
|
9
|
+
<a href="https://github.com/phstc/putsreq"><img style="position: absolute; top: 0; right: 0; border: 0;" src="https://camo.githubusercontent.com/365986a132ccd6a44c23a9169022c0b5c890c387/68747470733a2f2f73332e616d617a6f6e6177732e636f6d2f6769746875622f726962626f6e732f666f726b6d655f72696768745f7265645f6161303030302e706e67" alt="Fork me on GitHub" data-canonical-src="https://s3.amazonaws.com/github/ribbons/forkme_right_red_aa0000.png"></a>
|
10
|
+
|
11
|
+
<div class="container">
|
12
|
+
<%= render 'shared/flash' %>
|
13
|
+
<ul class="nav">
|
14
|
+
<li class="logo"><a href="/"><%= image_tag 'logo.png' %></a></li>
|
15
|
+
</ul>
|
16
|
+
<%= yield %>
|
17
|
+
<hr />
|
18
|
+
<strong>Requests Recorded: <%= REDIS.get 'requests_recorded' %></strong>
|
19
|
+
</div>
|
20
|
+
|
21
|
+
</body>
|
22
|
+
</html>
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<h2>Resend confirmation instructions</h2>
|
2
|
+
|
3
|
+
<%= form_for(resource, as: resource_name, url: confirmation_path(resource_name), html: { method: :post }) do |f| %>
|
4
|
+
<%= devise_error_messages! %>
|
5
|
+
|
6
|
+
<div><%= f.label :email %><br />
|
7
|
+
<%= f.email_field :email, autofocus: true %></div>
|
8
|
+
|
9
|
+
<div><%= f.submit "Resend confirmation instructions" %></div>
|
10
|
+
<% end %>
|
11
|
+
|
12
|
+
<%= render "users/shared/links" %>
|
@@ -0,0 +1,8 @@
|
|
1
|
+
<p>Hello <%= @resource.email %>!</p>
|
2
|
+
|
3
|
+
<p>Someone has requested a link to change your password. You can do this through the link below.</p>
|
4
|
+
|
5
|
+
<p><%= link_to 'Change my password', edit_password_url(@resource, reset_password_token: @token) %></p>
|
6
|
+
|
7
|
+
<p>If you didn't request this, please ignore this email.</p>
|
8
|
+
<p>Your password won't change until you access the link above and create a new one.</p>
|
@@ -0,0 +1,7 @@
|
|
1
|
+
<p>Hello <%= @resource.email %>!</p>
|
2
|
+
|
3
|
+
<p>Your account has been locked due to an excessive number of unsuccessful sign in attempts.</p>
|
4
|
+
|
5
|
+
<p>Click the link below to unlock your account:</p>
|
6
|
+
|
7
|
+
<p><%= link_to 'Unlock my account', unlock_url(@resource, unlock_token: @token) %></p>
|
@@ -0,0 +1,32 @@
|
|
1
|
+
<h2>Change your password</h2>
|
2
|
+
|
3
|
+
<%= form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :put, class: 'form-horizontal' }) do |f| %>
|
4
|
+
<%= devise_error_messages! %>
|
5
|
+
<%= f.hidden_field :reset_password_token %>
|
6
|
+
|
7
|
+
<div class="form-group">
|
8
|
+
<%= f.label :password, "New password", class: "col-sm-2 control-label" %>
|
9
|
+
<div class="col-sm-6">
|
10
|
+
<%= f.password_field :password, autocomplete: "off", class: "form-control" %>
|
11
|
+
</div>
|
12
|
+
</div>
|
13
|
+
|
14
|
+
<div class="form-group">
|
15
|
+
<%= f.label :password_confirmation, "Confirm new password", class: "col-sm-2 control-label" %>
|
16
|
+
<div class="col-sm-6">
|
17
|
+
<%= f.password_field :password_confirmation, autocomplete: "off", class: "form-control" %>
|
18
|
+
</div>
|
19
|
+
</div>
|
20
|
+
|
21
|
+
<div class="form-group">
|
22
|
+
<div class="col-sm-6 col-sm-offset-2">
|
23
|
+
<%= f.submit "Change my password", class: "btn btn-primary" %>
|
24
|
+
</div>
|
25
|
+
</div>
|
26
|
+
|
27
|
+
<div class="form-group">
|
28
|
+
<div class="col-sm-6 col-sm-offset-2">
|
29
|
+
<%= render "users/shared/links" %>
|
30
|
+
</div>
|
31
|
+
</div>
|
32
|
+
<% end %>
|
@@ -0,0 +1,23 @@
|
|
1
|
+
<h2>Forgot your password?</h2>
|
2
|
+
|
3
|
+
<%= form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :post, class: 'form-horizontal' }) do |f| %>
|
4
|
+
<%= devise_error_messages! %>
|
5
|
+
|
6
|
+
<div class="form-group">
|
7
|
+
<%= f.label :email, class: "col-sm-2 control-label" %>
|
8
|
+
<div class="col-sm-6">
|
9
|
+
<%= f.email_field :email, autofocus: true, class: "form-control" %>
|
10
|
+
</div>
|
11
|
+
</div>
|
12
|
+
|
13
|
+
<div class="form-group">
|
14
|
+
<div class="col-sm-6 col-sm-offset-2">
|
15
|
+
<%= f.submit "Send me reset password instructions", class: "btn btn-primary" %>
|
16
|
+
</div>
|
17
|
+
</div>
|
18
|
+
<div class="form-group">
|
19
|
+
<div class="col-sm-6 col-sm-offset-2">
|
20
|
+
<%= render "users/shared/links" %>
|
21
|
+
</div>
|
22
|
+
</div>
|
23
|
+
<% end %>
|
@@ -0,0 +1,59 @@
|
|
1
|
+
<h2>Edit <%= resource_name.to_s.humanize %></h2>
|
2
|
+
|
3
|
+
<%= form_for(resource, as: resource_name, url: registration_path(resource_name), html: { method: :put, class: 'form-horizontal' }) do |f| %>
|
4
|
+
<%= devise_error_messages! %>
|
5
|
+
|
6
|
+
<div class="form-group">
|
7
|
+
<%= f.label :name, class: "col-sm-2 control-label" %>
|
8
|
+
<div class="col-sm-6">
|
9
|
+
<%= f.text_field :name, class: "form-control" %>
|
10
|
+
</div>
|
11
|
+
</div>
|
12
|
+
|
13
|
+
<div class="form-group">
|
14
|
+
<%= f.label :email, class: 'col-sm-2 control-label' %>
|
15
|
+
<div class="col-sm-6">
|
16
|
+
<%= f.email_field :email, class: 'form-control' %>
|
17
|
+
</div>
|
18
|
+
</div>
|
19
|
+
|
20
|
+
<div class="form-group">
|
21
|
+
<%= f.label :password, class: 'col-sm-2 control-label' %> <i>(leave blank if you don't want to change it)</i>
|
22
|
+
<div class="col-sm-6">
|
23
|
+
<%= f.password_field :password, autocomplete: "off", class: 'form-control' %>
|
24
|
+
</div>
|
25
|
+
</div>
|
26
|
+
|
27
|
+
|
28
|
+
<div class="form-group">
|
29
|
+
<%= f.label :password_confirmation, class: 'col-sm-2 control-label' %>
|
30
|
+
<div class="col-sm-6">
|
31
|
+
<%= f.password_field :password_confirmation, autocomplete: "off", class: 'form-control' %>
|
32
|
+
</div>
|
33
|
+
</div>
|
34
|
+
|
35
|
+
<div class="form-group">
|
36
|
+
<%= f.label :current_password, class: 'col-sm-2 control-label' %> <i>(we need your current password to confirm your changes)</i>
|
37
|
+
<div class="col-sm-6">
|
38
|
+
<%= f.password_field :current_password, autocomplete: "off", class: 'form-control' %>
|
39
|
+
</div>
|
40
|
+
</div>
|
41
|
+
|
42
|
+
<div class="form-group">
|
43
|
+
<div class="col-sm-offset-2 col-sm-6">
|
44
|
+
<%= f.submit "Update", class: "btn btn-primary" %>
|
45
|
+
</div>
|
46
|
+
</div>
|
47
|
+
|
48
|
+
<div class="form-group">
|
49
|
+
<div class="col-sm-offset-2 col-sm-6">
|
50
|
+
<%= render "users/shared/links" %>
|
51
|
+
</div>
|
52
|
+
</div>
|
53
|
+
<% end %>
|
54
|
+
|
55
|
+
<h5>Cancel my account</h5>
|
56
|
+
|
57
|
+
<p>Unhappy? <%= button_to "Cancel my account", registration_path(resource_name), data: { confirm: "Are you sure?" }, method: :delete, class: 'btn btn-default btn-xs' %></p>
|
58
|
+
|
59
|
+
<%= link_to "Back", :back %>
|
@@ -0,0 +1,46 @@
|
|
1
|
+
<h2>Sign up</h2>
|
2
|
+
|
3
|
+
<%= form_for(resource, as: resource_name, url: registration_path(resource_name), html: { class: 'form-horizontal' }) do |f| %>
|
4
|
+
|
5
|
+
<%= devise_error_messages! %>
|
6
|
+
|
7
|
+
<div class="form-group">
|
8
|
+
<%= f.label :name, class: "col-sm-2 control-label" %>
|
9
|
+
<div class="col-sm-6">
|
10
|
+
<%= f.text_field :name, class: "form-control" %>
|
11
|
+
</div>
|
12
|
+
</div>
|
13
|
+
|
14
|
+
<div class="form-group">
|
15
|
+
<%= f.label :email, class: "col-sm-2 control-label" %>
|
16
|
+
<div class="col-sm-6">
|
17
|
+
<%= f.email_field :email, class: "form-control" %>
|
18
|
+
</div>
|
19
|
+
</div>
|
20
|
+
|
21
|
+
<div class="form-group">
|
22
|
+
<%= f.label :password, class: "col-sm-2 control-label" %>
|
23
|
+
<div class="col-sm-6">
|
24
|
+
<%= f.password_field :password, autocomplete: "off", class: "form-control" %>
|
25
|
+
</div>
|
26
|
+
</div>
|
27
|
+
|
28
|
+
<div class="form-group">
|
29
|
+
<%= f.label :password_confirmation, class: "col-sm-2 control-label" %>
|
30
|
+
<div class="col-sm-6">
|
31
|
+
<%= f.password_field :password_confirmation, autocomplete: "off", class: "form-control" %>
|
32
|
+
</div>
|
33
|
+
</div>
|
34
|
+
|
35
|
+
<div class="form-group">
|
36
|
+
<div class="col-sm-offset-2 col-sm-6">
|
37
|
+
<%= f.submit "Sign up", class: "btn btn-primary" %>
|
38
|
+
</div>
|
39
|
+
</div>
|
40
|
+
|
41
|
+
<div class="form-group">
|
42
|
+
<div class="col-sm-offset-2 col-sm-6">
|
43
|
+
<%= render "users/shared/links" %>
|
44
|
+
</div>
|
45
|
+
</div>
|
46
|
+
<% end %>
|
@@ -0,0 +1,38 @@
|
|
1
|
+
<h2>Sign in</h2>
|
2
|
+
|
3
|
+
<%= form_for(resource, as: resource_name, url: session_path(resource_name), html: {class: 'form-horizontal'}) do |f| %>
|
4
|
+
<div class="form-group">
|
5
|
+
<%= f.label :email, class: "col-sm-2 control-label" %>
|
6
|
+
<div class="col-sm-6">
|
7
|
+
<%= f.email_field :email, autofocus: true , class: "form-control" %>
|
8
|
+
</div>
|
9
|
+
</div>
|
10
|
+
|
11
|
+
<div class="form-group">
|
12
|
+
<%= f.label :password, class: "col-sm-2 control-label" %>
|
13
|
+
<div class="col-sm-6">
|
14
|
+
<%= f.password_field :password, autocomplete: "off", class: "form-control" %>
|
15
|
+
</div>
|
16
|
+
</div>
|
17
|
+
|
18
|
+
<% if devise_mapping.rememberable? -%>
|
19
|
+
<div class="form-group">
|
20
|
+
<div class="col-sm-6 col-sm-offset-2">
|
21
|
+
<%= f.check_box :remember_me %> <%= f.label :remember_me %>
|
22
|
+
</div>
|
23
|
+
</div>
|
24
|
+
<% end -%>
|
25
|
+
|
26
|
+
<div class="form-group">
|
27
|
+
<div class="col-sm-6 col-sm-offset-2">
|
28
|
+
<%= f.submit "Sign in", class: 'btn btn-primary' %>
|
29
|
+
</div>
|
30
|
+
</div>
|
31
|
+
|
32
|
+
<div class="form-group">
|
33
|
+
<div class="col-sm-6 col-sm-offset-2">
|
34
|
+
<%= render "users/shared/links" %>
|
35
|
+
</div>
|
36
|
+
</div>
|
37
|
+
|
38
|
+
<% end %>
|
@@ -0,0 +1,25 @@
|
|
1
|
+
<%- if controller_name != 'sessions' %>
|
2
|
+
<%= link_to "Sign in", new_session_path(resource_name) %><br />
|
3
|
+
<% end -%>
|
4
|
+
|
5
|
+
<%- if devise_mapping.registerable? && controller_name != 'registrations' %>
|
6
|
+
<%= link_to "Sign up", new_registration_path(resource_name) %><br />
|
7
|
+
<% end -%>
|
8
|
+
|
9
|
+
<%- if devise_mapping.recoverable? && controller_name != 'passwords' && controller_name != 'registrations' %>
|
10
|
+
<%= link_to "Forgot your password?", new_password_path(resource_name) %><br />
|
11
|
+
<% end -%>
|
12
|
+
|
13
|
+
<%- if devise_mapping.confirmable? && controller_name != 'confirmations' %>
|
14
|
+
<%= link_to "Didn't receive confirmation instructions?", new_confirmation_path(resource_name) %><br />
|
15
|
+
<% end -%>
|
16
|
+
|
17
|
+
<%- if devise_mapping.lockable? && resource_class.unlock_strategy_enabled?(:email) && controller_name != 'unlocks' %>
|
18
|
+
<%= link_to "Didn't receive unlock instructions?", new_unlock_path(resource_name) %><br />
|
19
|
+
<% end -%>
|
20
|
+
|
21
|
+
<%- if devise_mapping.omniauthable? %>
|
22
|
+
<%- resource_class.omniauth_providers.each do |provider| %>
|
23
|
+
<%= link_to "Sign in with #{provider.to_s.titleize}", omniauth_authorize_path(resource_name, provider) %><br />
|
24
|
+
<% end -%>
|
25
|
+
<% end -%>
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<h2>Resend unlock instructions</h2>
|
2
|
+
|
3
|
+
<%= form_for(resource, as: resource_name, url: unlock_path(resource_name), html: { method: :post }) do |f| %>
|
4
|
+
<%= devise_error_messages! %>
|
5
|
+
|
6
|
+
<div><%= f.label :email %><br />
|
7
|
+
<%= f.email_field :email, autofocus: true %></div>
|
8
|
+
|
9
|
+
<div><%= f.submit "Resend unlock instructions" %></div>
|
10
|
+
<% end %>
|
11
|
+
|
12
|
+
<%= render "users/shared/links" %>
|
data/bin/bundle
ADDED
data/bin/putsreq
ADDED
@@ -0,0 +1,71 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# encoding: utf-8
|
3
|
+
|
4
|
+
require 'thor'
|
5
|
+
require 'pusher-client'
|
6
|
+
|
7
|
+
$LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..', 'lib')
|
8
|
+
|
9
|
+
require 'putsreq/version'
|
10
|
+
require 'httparty'
|
11
|
+
require 'uri'
|
12
|
+
|
13
|
+
class PutsReqCLI < Thor
|
14
|
+
no_commands do
|
15
|
+
def parse_bucket_token(p)
|
16
|
+
if p.start_with? 'http'
|
17
|
+
# from http://putsreq.com/token or http://putsreq.com/token/inspect
|
18
|
+
# to token
|
19
|
+
uri = URI(p)
|
20
|
+
return uri.path.split('/')[1]
|
21
|
+
end
|
22
|
+
|
23
|
+
p
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
desc 'forward', 'Forward requests from PutsReq to a given URL'
|
28
|
+
method_option :token, desc: 'PutsReq token', required: true
|
29
|
+
method_option :to, desc: 'destination URL', required: true
|
30
|
+
def forward
|
31
|
+
token = parse_bucket_token(options[:token])
|
32
|
+
to = options[:to]
|
33
|
+
|
34
|
+
puts "Starting to listen requests from #{token}"
|
35
|
+
puts "Forwarding to #{to}"
|
36
|
+
puts "Press CTRL+c to terminate"
|
37
|
+
|
38
|
+
PusherClient.logger.level = Logger::ERROR
|
39
|
+
|
40
|
+
options = { secure: true }
|
41
|
+
|
42
|
+
socket = PusherClient::Socket.new('3466d56fe2ef1fdd2943', options)
|
43
|
+
|
44
|
+
channel = "channel_requests_#{token}"
|
45
|
+
|
46
|
+
socket.subscribe(channel)
|
47
|
+
|
48
|
+
socket[channel].bind('new') do |data|
|
49
|
+
last_request = JSON.parse(data)['request']
|
50
|
+
|
51
|
+
options = { headers: last_request['headers'] }
|
52
|
+
|
53
|
+
options[:body] = last_request['body'] unless last_request['body'].to_s.empty?
|
54
|
+
|
55
|
+
forward_request = HTTParty.send(last_request['request_method'].downcase.to_sym,
|
56
|
+
to,
|
57
|
+
options)
|
58
|
+
|
59
|
+
puts "#{Time.now}\t#{last_request['request_method']}\t#{forward_request.code}"
|
60
|
+
end
|
61
|
+
|
62
|
+
socket.connect
|
63
|
+
end
|
64
|
+
|
65
|
+
desc 'version', 'Show version'
|
66
|
+
def version
|
67
|
+
puts "PutsReq #{PutsReq::VERSION}"
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
PutsReqCLI.start
|
data/bin/rails
ADDED
data/bin/rake
ADDED
data/bin/rspec
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# This file was generated by Bundler.
|
4
|
+
#
|
5
|
+
# The application 'rspec' is installed as part of a gem, and
|
6
|
+
# this file is here to facilitate running it.
|
7
|
+
#
|
8
|
+
|
9
|
+
require 'pathname'
|
10
|
+
ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
|
11
|
+
Pathname.new(__FILE__).realpath)
|
12
|
+
|
13
|
+
require 'rubygems'
|
14
|
+
require 'bundler/setup'
|
15
|
+
|
16
|
+
load Gem.bin_path('rspec-core', 'rspec')
|