dev-time 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,4 @@
1
+ *.gem
2
+ .bundle
3
+ Gemfile.lock
4
+ pkg/*
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in dev-time.gemspec
4
+ gemspec
@@ -0,0 +1,35 @@
1
+ Dev Time
2
+ ========
3
+
4
+ Ever wish it were last month instead of right now when trying to test
5
+ your Rails app? DevTime uses the Delorean gem to add time travel capabilies
6
+ to your application so you can make it so!
7
+
8
+ Requirements
9
+ ------------
10
+
11
+ rails >= 3.1
12
+
13
+ Installation
14
+ ------------
15
+
16
+ Add dev-item to your `Gemfile`
17
+
18
+ gem 'dev-time'
19
+
20
+
21
+ Then run `bundle install` and start your app as normal.
22
+
23
+ Usage
24
+ -----
25
+
26
+ Go to http://localhost:3000/time-machine and get started time travelling!
27
+
28
+ Notes
29
+ -----
30
+ The time machine understands many ways of talking about time. Both absolute
31
+ (e.g. November 5, 1999) and relative (e.g. 3 years ago) will work.
32
+
33
+ Note that if your development server checks for timeout (like Unicorn does)
34
+ you may need to start it with a very long timeout setting (e.g. 1 year) in
35
+ order to avoid having the worker killed while it is time travelling.
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
@@ -0,0 +1,52 @@
1
+ body {
2
+ background-color: #C0C0C0;
3
+ padding: 10px;
4
+ margin: 0px;
5
+ }
6
+
7
+ h1, h3 {
8
+ margin: 5px 0px;
9
+ }
10
+
11
+ h1 {
12
+ text-shadow: white 0px 0px 1px;
13
+ }
14
+
15
+ h3 {
16
+ font-size: 0.9em;
17
+ color: #333;
18
+ }
19
+
20
+ .time-machine-dashboard {
21
+ margin: 20px 0px;
22
+ padding: 20px;
23
+ border: 1px solid black;
24
+ float: left;
25
+ border-radius: 10px;
26
+ background-color: #F0F0F0;
27
+ box-shadow: 0px 0px 2px 2px #400090;
28
+ }
29
+
30
+ .time-machine-dashboard > div {
31
+ margin: 5px 0px;
32
+ }
33
+
34
+ .time-machine-readout {
35
+ }
36
+
37
+ .time-machine-error {
38
+ color: #A00;
39
+ }
40
+
41
+ .time-machine-message {
42
+ color: #060;
43
+ }
44
+
45
+ .time-machine-controls {
46
+ clear: both;
47
+ }
48
+
49
+ .time-machine-instructions {
50
+ max-width: 500px;
51
+ }
52
+
@@ -0,0 +1,12 @@
1
+ .dev-time-current-time {
2
+ position: fixed;
3
+ z-index: 1000;
4
+ background-color: black;
5
+ background-color: rgba(0,0,0,0.7);
6
+ padding: 5px 50px;
7
+ color: white;
8
+ font-size: 18px;
9
+ -webkit-transform:rotate(-45deg);
10
+ top: 40px;
11
+ left: -55px;
12
+ }
@@ -0,0 +1,29 @@
1
+ if Rails.env.development?
2
+ module DevTime
3
+ class TimeMachineController < ApplicationController
4
+ def show
5
+ render layout: false
6
+ end
7
+
8
+ def travel
9
+ if params[:destination].blank?
10
+ flash[:time_machine_error] = "You must specify a destination time!"
11
+ else
12
+ begin
13
+ Delorean.time_travel_to params[:destination]
14
+ flash[:time_machine_message] = "Time travel successful."
15
+ rescue => e
16
+ flash[:time_machine_error] = "The Delorean wasn't able to understand your destination"
17
+ end
18
+ end
19
+ redirect_to :time_machine
20
+ end
21
+
22
+ def return
23
+ Delorean.back_to_the_present
24
+ flash[:time_machine_message] = "You are safely back in the present."
25
+ redirect_to :time_machine
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,22 @@
1
+ module DevTime
2
+ module CurrentTimeHelper
3
+ def dev_time_stylesheet_link_tag
4
+ if Rails.env.development?
5
+ stylesheet_link_tag 'dev_time/current_time'
6
+ else
7
+ ''
8
+ end
9
+ end
10
+
11
+ def dev_time_current_time_display
12
+ if Rails.env.development? &&
13
+ Delorean.send(:time_travel_offsets).any?
14
+ content_tag :div, class: "dev-time-current-time" do
15
+ "Time Travelling<br/>#{Time.now.strftime "%H:%M:%S %Y-%m-%d"}".html_safe
16
+ end
17
+ else
18
+ ''
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,53 @@
1
+ <html>
2
+ <head>
3
+ <title>DevTime Time Machine</title>
4
+ <%= stylesheet_link_tag "dev-time" %>
5
+ </head>
6
+ <body>
7
+ <h1>Welcome to the DevTime Time Machine</h1>
8
+ <h3>powered by Delorean</h3>
9
+
10
+ <div class="time-machine-dashboard">
11
+ <div class="time-machine-readout">
12
+ The time is now <%= Time.now.strftime "%H:%M:%S %Y-%m-%d" %>
13
+ </div>
14
+
15
+ <%- if flash[:time_machine_error].present? %>
16
+ <div class="time-machine-error">
17
+ <%= flash[:time_machine_error] %>
18
+ </div>
19
+ <% end %>
20
+
21
+ <%- if flash[:time_machine_message].present? %>
22
+ <div class="time-machine-message">
23
+ <%= flash[:time_machine_message] %>
24
+ </div>
25
+ <% end %>
26
+ </div>
27
+
28
+ <div class="time-machine-controls">
29
+ <%= form_tag time_machine_travel_path do %>
30
+ Destination:
31
+ <%= text_field_tag :destination %>
32
+ <%= submit_tag "Travel through time!" %>
33
+ <% end %>
34
+
35
+ <%= form_tag time_machine_return_path do %>
36
+ <%= submit_tag "Go back to the present!" %>
37
+ <% end %>
38
+
39
+ <p class="time-machine-instructions">
40
+ The time machine understands many ways of talking about time.
41
+ Both absolute (e.g. November 5, 1999) and
42
+ relative (e.g. 3 years ago) will work.
43
+ </p>
44
+
45
+ <p class="time-machine-instructions">
46
+ Note that if your development server checks for timeout (like
47
+ Unicorn does) you may need to start it with a very long timeout
48
+ setting (e.g. 1 year) in order to avoid having the worker killed
49
+ while it is time travelling.
50
+ </p>
51
+ </div>
52
+ </body>
53
+ </html>
@@ -0,0 +1,12 @@
1
+ if Rails.env.development?
2
+ Rails.application.routes.draw do
3
+ get '/time-machine' => 'dev_time/time_machine#show',
4
+ as: :time_machine
5
+
6
+ post '/time-machine/travel' => 'dev_time/time_machine#travel',
7
+ as: :time_machine_travel
8
+
9
+ post '/time-machine/return' => 'dev_time/time_machine#return',
10
+ as: :time_machine_return
11
+ end
12
+ end
@@ -0,0 +1,27 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "dev-time/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "dev-time"
7
+ s.version = Dev::Time::VERSION
8
+ s.authors = ["David Vollbracht"]
9
+ s.email = ["david@flipstone.com"]
10
+ s.homepage = "http://github.com/flipstone/dev-time"
11
+ s.summary = %q{Give your Rails app the ability to time travel in development mode!}
12
+ s.description = %q{Ever wish it were last month instead of right now when trying to test
13
+ your Rails app? DevTime uses the Delorean gem to add time travel capabilies
14
+ to your application so you can make it so!}
15
+
16
+ s.rubyforge_project = "dev-time"
17
+
18
+ s.files = `git ls-files`.split("\n")
19
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
20
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
21
+ s.require_paths = ["lib"]
22
+
23
+ # specify any dependencies here; for example:
24
+ # s.add_development_dependency "rspec"
25
+ s.add_runtime_dependency "rails", ">= 3.1"
26
+ s.add_runtime_dependency "delorean", ">= 1.2.0"
27
+ end
@@ -0,0 +1,2 @@
1
+ require "dev-time/version"
2
+ require "dev-time/engine"
@@ -0,0 +1,11 @@
1
+ module DevTime
2
+ class Engine < Rails::Engine
3
+ config.to_prepare do
4
+ ApplicationController.helper(DevTime::CurrentTimeHelper)
5
+
6
+ if Rails.env.development?
7
+ require 'delorean'
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,5 @@
1
+ module Dev
2
+ module Time
3
+ VERSION = "0.0.1"
4
+ end
5
+ end
metadata ADDED
@@ -0,0 +1,85 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: dev-time
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - David Vollbracht
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-03-20 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rails
16
+ requirement: &2161468560 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '3.1'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *2161468560
25
+ - !ruby/object:Gem::Dependency
26
+ name: delorean
27
+ requirement: &2161467940 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: 1.2.0
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *2161467940
36
+ description: ! 'Ever wish it were last month instead of right now when trying to test
37
+
38
+ your Rails app? DevTime uses the Delorean gem to add time travel capabilies
39
+
40
+ to your application so you can make it so!'
41
+ email:
42
+ - david@flipstone.com
43
+ executables: []
44
+ extensions: []
45
+ extra_rdoc_files: []
46
+ files:
47
+ - .gitignore
48
+ - Gemfile
49
+ - README.markdown
50
+ - Rakefile
51
+ - app/assets/stylesheets/dev-time.css
52
+ - app/assets/stylesheets/dev_time/current_time.css
53
+ - app/controllers/dev_time/time_machine_controller.rb
54
+ - app/helpers/dev_time/current_time_helper.rb
55
+ - app/views/dev_time/time_machine/show.html.erb
56
+ - config/routes.rb
57
+ - dev-time.gemspec
58
+ - lib/dev-time.rb
59
+ - lib/dev-time/engine.rb
60
+ - lib/dev-time/version.rb
61
+ homepage: http://github.com/flipstone/dev-time
62
+ licenses: []
63
+ post_install_message:
64
+ rdoc_options: []
65
+ require_paths:
66
+ - lib
67
+ required_ruby_version: !ruby/object:Gem::Requirement
68
+ none: false
69
+ requirements:
70
+ - - ! '>='
71
+ - !ruby/object:Gem::Version
72
+ version: '0'
73
+ required_rubygems_version: !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ! '>='
77
+ - !ruby/object:Gem::Version
78
+ version: '0'
79
+ requirements: []
80
+ rubyforge_project: dev-time
81
+ rubygems_version: 1.8.5
82
+ signing_key:
83
+ specification_version: 3
84
+ summary: Give your Rails app the ability to time travel in development mode!
85
+ test_files: []