nightlight 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/.gitignore +13 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +112 -0
- data/LICENSE.txt +22 -0
- data/README.md +63 -0
- data/Rakefile +2 -0
- data/app/assets/fonts/nightlight/FontAwesome.otf +0 -0
- data/app/assets/fonts/nightlight/fontawesome-webfont.eot +0 -0
- data/app/assets/fonts/nightlight/fontawesome-webfont.svg +399 -0
- data/app/assets/fonts/nightlight/fontawesome-webfont.ttf +0 -0
- data/app/assets/fonts/nightlight/fontawesome-webfont.woff +0 -0
- data/app/assets/javascripts/nightlight/application.js +2 -0
- data/app/assets/javascripts/nightlight/jquery.min.js +4 -0
- data/app/assets/javascripts/nightlight/jquery_ujs.js +469 -0
- data/app/assets/stylesheets/nightlight/application.css +14 -0
- data/app/assets/stylesheets/nightlight/bootstrap.min.css +5 -0
- data/app/assets/stylesheets/nightlight/font-awesome.min.css +403 -0
- data/app/assets/stylesheets/nightlight/pages.css +30 -0
- data/app/controllers/nightlight/activities_controller.rb +29 -0
- data/app/controllers/nightlight/base_controller.rb +16 -0
- data/app/controllers/nightlight/pages_controller.rb +132 -0
- data/app/helpers/nightlight/pages_helper.rb +24 -0
- data/app/models/nightlight/activity.rb +38 -0
- data/app/models/nightlight/page.rb +43 -0
- data/app/views/layouts/nightlight/_alert.html.erb +11 -0
- data/app/views/layouts/nightlight/application.html.erb +20 -0
- data/app/views/nightlight/pages/_activity.html.erb +19 -0
- data/app/views/nightlight/pages/_brightness.html.erb +3 -0
- data/app/views/nightlight/pages/_form.html.erb +34 -0
- data/app/views/nightlight/pages/_pages.html.erb +42 -0
- data/app/views/nightlight/pages/add.js.erb +13 -0
- data/app/views/nightlight/pages/edit.html.erb +17 -0
- data/app/views/nightlight/pages/index.html.erb +50 -0
- data/app/views/nightlight/pages/new.html.erb +11 -0
- data/app/views/nightlight/pages/show.html.erb +67 -0
- data/config/routes.rb +16 -0
- data/lib/generators/nightlight/install_generator.rb +29 -0
- data/lib/generators/nightlight/templates/install.rb +23 -0
- data/lib/nightlight/engine.rb +11 -0
- data/lib/nightlight/version.rb +3 -0
- data/lib/nightlight.rb +9 -0
- data/nightlight.gemspec +25 -0
- metadata +129 -0
@@ -0,0 +1,43 @@
|
|
1
|
+
module Nightlight
|
2
|
+
class Page < ActiveRecord::Base
|
3
|
+
belongs_to :assignee, class_name: "User"
|
4
|
+
has_many :activities, dependent: :destroy
|
5
|
+
|
6
|
+
validates :path, presence: true, uniqueness: {scope: :name}
|
7
|
+
|
8
|
+
scope :hidden, ->{ where hidden: true }
|
9
|
+
scope :unhidden, ->{ where hidden: false }
|
10
|
+
scope :unassigned, ->{ where assignee_id: nil }
|
11
|
+
|
12
|
+
def to_param
|
13
|
+
[id, name.gsub("'", "").parameterize].join("-")
|
14
|
+
end
|
15
|
+
|
16
|
+
def brightness
|
17
|
+
if last_checked_at.nil? || last_checked_at < 1.month.ago
|
18
|
+
0
|
19
|
+
elsif last_checked_at < 2.weeks.ago
|
20
|
+
1
|
21
|
+
elsif last_checked_at < 1.week.ago
|
22
|
+
2
|
23
|
+
elsif last_checked_at < 1.day.ago
|
24
|
+
3
|
25
|
+
else
|
26
|
+
4
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def current_status
|
31
|
+
activities.status.first
|
32
|
+
end
|
33
|
+
|
34
|
+
def checked! user=nil
|
35
|
+
user ||= assignee
|
36
|
+
activities.checked.where(user: user).create!
|
37
|
+
self.last_checked_at = Time.now
|
38
|
+
self.assignee = nil if user==assignee
|
39
|
+
save!
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title>Nightlight</title>
|
5
|
+
|
6
|
+
<meta charset="utf-8" />
|
7
|
+
|
8
|
+
<%= stylesheet_link_tag "nightlight/application" %>
|
9
|
+
<%= javascript_include_tag "//www.google.com/jsapi", "nightlight/application" %>
|
10
|
+
<%= csrf_meta_tags %>
|
11
|
+
</head>
|
12
|
+
<body>
|
13
|
+
<div class="container">
|
14
|
+
<div id="alerts">
|
15
|
+
<%= render 'layouts/nightlight/alert' %>
|
16
|
+
</div>
|
17
|
+
<%= yield %>
|
18
|
+
</div>
|
19
|
+
</body>
|
20
|
+
</html>
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<% current_status ||= false %>
|
2
|
+
<div class="activity" style="margin-bottom:10px">
|
3
|
+
<% unless current_status %>
|
4
|
+
<p><%= activity.to_s %></p>
|
5
|
+
<% end %>
|
6
|
+
<% if activity.status? %>
|
7
|
+
<div class="panel panel-default" style="margin-bottom:0">
|
8
|
+
<div class="panel-body">
|
9
|
+
<p><%= activity.description %></p>
|
10
|
+
</div>
|
11
|
+
</div>
|
12
|
+
<% end %>
|
13
|
+
<small>
|
14
|
+
<% if current_status %>
|
15
|
+
<%= activity.user_name %>,
|
16
|
+
<% end %>
|
17
|
+
<%= time_ago_in_words activity.created_at %> ago
|
18
|
+
</small>
|
19
|
+
</div>
|
@@ -0,0 +1,34 @@
|
|
1
|
+
<%= form_for @page do |f| %>
|
2
|
+
<div class="form-group">
|
3
|
+
<%= f.label :name %>
|
4
|
+
<%= f.text_field :name, class: 'form-control', placeholder: "Awesome Page" %>
|
5
|
+
</div>
|
6
|
+
<div class="form-group">
|
7
|
+
<%= f.label :path %>
|
8
|
+
<%= f.text_field :path, class: 'form-control', placeholder: "Abstract path (e.g. /posts/:id)" %>
|
9
|
+
</div>
|
10
|
+
<div class="form-group">
|
11
|
+
<%= f.label :sample_path %>
|
12
|
+
<%= f.text_field :sample_path, class: 'form-control', placeholder: "Optional real path to link to (e.g. /posts/1)" %>
|
13
|
+
</div>
|
14
|
+
<div class="form-group">
|
15
|
+
<%= f.label :reqs, 'Controller' %>
|
16
|
+
<%= f.text_field :reqs, class: 'form-control', placeholder: "controller#action" %>
|
17
|
+
</div>
|
18
|
+
<div class="form-group">
|
19
|
+
<%= f.label :notes %>
|
20
|
+
<%= f.text_area :notes, class: 'form-control', placeholder: 'Useful/important info about the page. e.g. "check signed in and signed out states", "be sure to test on IE 4+", "please check on staging only", etc.' %>
|
21
|
+
</div>
|
22
|
+
<div class="checkbox">
|
23
|
+
<%= f.label :hidden do %>
|
24
|
+
<%= f.check_box :hidden %>
|
25
|
+
Hide this page
|
26
|
+
<% end %>
|
27
|
+
</div>
|
28
|
+
<div class="text-center">
|
29
|
+
<%= f.submit 'Save', class: 'btn btn-default btn-lg' %>
|
30
|
+
</div>
|
31
|
+
<% end %>
|
32
|
+
|
33
|
+
|
34
|
+
|
@@ -0,0 +1,42 @@
|
|
1
|
+
<% hidden ||= false %>
|
2
|
+
<table class="table">
|
3
|
+
<thead>
|
4
|
+
<tr>
|
5
|
+
<th>Name</th>
|
6
|
+
<th>Path</th>
|
7
|
+
<% unless hidden %>
|
8
|
+
<th>Last Checked</th>
|
9
|
+
<% end %>
|
10
|
+
<th></th>
|
11
|
+
</tr>
|
12
|
+
</thead>
|
13
|
+
|
14
|
+
<tbody>
|
15
|
+
<% pages.each do |page| %>
|
16
|
+
<tr class="page" data-path="<%= page.path %>">
|
17
|
+
<td><%= link_to page.name.presence||'untitled', page_path(page) %></td>
|
18
|
+
<td><%= page.path %></td>
|
19
|
+
<% unless hidden %>
|
20
|
+
<td>
|
21
|
+
<%= render 'nightlight/pages/brightness', page: page %>
|
22
|
+
<%= last_checked_at page %>
|
23
|
+
</td>
|
24
|
+
<td>
|
25
|
+
<% if page.assignee && page.assignee==current_user %>
|
26
|
+
<%= link_to 'You', page_path(page), class: 'btn btn-primary btn-xs' %>
|
27
|
+
<% elsif page.assignee %>
|
28
|
+
<%= link_to page.assignee.name, page_path(page), class: 'btn btn-warning btn-xs' %>
|
29
|
+
<% else %>
|
30
|
+
<%= link_to "Check", assign_page_path(page), class: 'btn btn-default btn-xs', data: {method: :post} %>
|
31
|
+
<% end %>
|
32
|
+
</td>
|
33
|
+
<% else %>
|
34
|
+
<td>
|
35
|
+
<%= link_to "Edit", edit_page_path(page), class: 'btn btn-default btn-xs' %>
|
36
|
+
</td>
|
37
|
+
<% end %>
|
38
|
+
</tr>
|
39
|
+
<% end %>
|
40
|
+
</tbody>
|
41
|
+
</table>
|
42
|
+
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<% if @page.valid? %>
|
2
|
+
|
3
|
+
var html = "<%= j(render('layouts/nightlight/alert', success: "Settings saved.")) %>";
|
4
|
+
$('#alerts').html(html);
|
5
|
+
var path = "<%= j(@page.path) %>";
|
6
|
+
$('.new-page[data-path="'+path+'"]').remove();
|
7
|
+
|
8
|
+
<% else %>
|
9
|
+
|
10
|
+
var html = "<%= j(render('layouts/nightlight/alert', error: @page.errors.full_messages.first)) %>";
|
11
|
+
$('#alerts').html(html);
|
12
|
+
|
13
|
+
<% end %>
|
@@ -0,0 +1,17 @@
|
|
1
|
+
<div class="clearfix" style="margin-bottom:20px">
|
2
|
+
<div class="pull-right">
|
3
|
+
<%= link_to "Back", page_path(@page), class: 'btn btn-default' %>
|
4
|
+
</div>
|
5
|
+
<%= link_to "Home", root_path, class: 'btn btn-default pull-left', style: 'margin-right:20px' %>
|
6
|
+
<h2 style="margin:0">
|
7
|
+
<%= @page.name %>
|
8
|
+
<small>
|
9
|
+
<small>
|
10
|
+
<%= render 'nightlight/pages/brightness', page: @page %>
|
11
|
+
<%= last_checked_at @page %>
|
12
|
+
</small>
|
13
|
+
</small>
|
14
|
+
</h2>
|
15
|
+
</div>
|
16
|
+
|
17
|
+
<%= render 'nightlight/pages/form' %>
|
@@ -0,0 +1,50 @@
|
|
1
|
+
<div class="clearfix" style="margin-bottom:20px">
|
2
|
+
<div class="pull-right">
|
3
|
+
<%= link_to "New Page", new_page_path, class: 'btn btn-default' %>
|
4
|
+
<%= link_to "Check Random Page", random_pages_path, class: 'btn btn-primary', data: {method: :post} %>
|
5
|
+
</div>
|
6
|
+
<h3 style="margin:0"><%= render 'nightlight/pages/brightness', brightness: avg_page_brightness(@pages) %></h3>
|
7
|
+
</div>
|
8
|
+
|
9
|
+
<% if @new_pages.any? %>
|
10
|
+
<div class="panel panel-warning">
|
11
|
+
<div class="panel-heading" style="text-align:center">New pages found</div>
|
12
|
+
<div class="panel-body">
|
13
|
+
<table class="table">
|
14
|
+
<thead>
|
15
|
+
<tr>
|
16
|
+
<th>Name</th>
|
17
|
+
<th>Path</th>
|
18
|
+
<th>Controller</th>
|
19
|
+
<th>Add?</th>
|
20
|
+
</tr>
|
21
|
+
</thead>
|
22
|
+
|
23
|
+
<tbody>
|
24
|
+
<% @new_pages.each do |page| %>
|
25
|
+
<tr class="new-page" data-path="<%= page[:path] %>">
|
26
|
+
<td><%= page[:name] %></td>
|
27
|
+
<td><%= page[:path] %></td>
|
28
|
+
<td><%= page[:reqs] %></td>
|
29
|
+
<td>
|
30
|
+
<%= link_to 'Yes', add_yes_pages_path(page: {name: page[:name], path: page[:path], reqs: page[:reqs]}), class: 'btn btn-default btn-xs', data: {remote: true, method: :post} %>
|
31
|
+
<%= link_to 'No', add_no_pages_path(page: {name: page[:name], path: page[:path], reqs: page[:reqs]}), class: 'btn btn-default btn-xs', data: {remote: true, method: :post} %>
|
32
|
+
</td>
|
33
|
+
</tr>
|
34
|
+
<% end %>
|
35
|
+
</tbody>
|
36
|
+
</table>
|
37
|
+
</div>
|
38
|
+
</div>
|
39
|
+
<% end %>
|
40
|
+
|
41
|
+
<h2>Pages</h2>
|
42
|
+
<%= render 'nightlight/pages/pages', pages: @pages %>
|
43
|
+
|
44
|
+
<% if @hidden_pages %>
|
45
|
+
<h2 id="hidden">Hidden Pages</h2>
|
46
|
+
<%= render 'nightlight/pages/pages', pages: @hidden_pages, hidden: true %>
|
47
|
+
<% else %>
|
48
|
+
<%= link_to "Show hidden pages", pages_path(hidden: true, anchor: 'hidden') %>
|
49
|
+
<% end %>
|
50
|
+
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<div class="clearfix" style="margin-bottom:20px">
|
2
|
+
<div class="pull-right">
|
3
|
+
<%= link_to "Back", root_path, class: 'btn btn-default' %>
|
4
|
+
</div>
|
5
|
+
<%= link_to "Home", root_path, class: 'btn btn-default pull-left', style: 'margin-right:20px' %>
|
6
|
+
<h2 style="margin:0">New page</h2>
|
7
|
+
</div>
|
8
|
+
|
9
|
+
<%= render 'nightlight/pages/form' %>
|
10
|
+
|
11
|
+
|
@@ -0,0 +1,67 @@
|
|
1
|
+
<div class="clearfix" style="margin-bottom:20px">
|
2
|
+
<div class="pull-right">
|
3
|
+
<%= link_to "Edit", edit_page_path(@page), class: 'btn btn-default' %>
|
4
|
+
</div>
|
5
|
+
<%= link_to "Home", root_path, class: 'btn btn-default pull-left', style: 'margin-right:20px' %>
|
6
|
+
<h2 style="margin:0">
|
7
|
+
<%= @page.name %>
|
8
|
+
<small>
|
9
|
+
<small>
|
10
|
+
<%= render 'nightlight/pages/brightness', page: @page %>
|
11
|
+
<%= last_checked_at @page %>
|
12
|
+
</small>
|
13
|
+
</small>
|
14
|
+
</h2>
|
15
|
+
</div>
|
16
|
+
|
17
|
+
<p><%= @page.notes %></p>
|
18
|
+
|
19
|
+
<dl class="dl-horizontal">
|
20
|
+
<dt>Path<dt>
|
21
|
+
<dd><%= link_to_page @page %></dd>
|
22
|
+
<dt>Controller<dt>
|
23
|
+
<dd><%= @page.reqs %></dd>
|
24
|
+
</dl>
|
25
|
+
|
26
|
+
<div class="well text-center">
|
27
|
+
<% if @page.assignee %>
|
28
|
+
<% if @page.assignee == current_user %>
|
29
|
+
<h3 style="margin-top:0">You are checking this</h3>
|
30
|
+
<%= link_to "Done!", checked_page_path(@page), class: 'btn btn-primary btn-lg', data: {method: :post} %>
|
31
|
+
<br/>
|
32
|
+
<%= link_to "Cancel", unassign_page_path(@page), data: {method: :post} %>
|
33
|
+
<% else %>
|
34
|
+
<h3 style="margin-top:0"><%= @page.assignee.name %> is checking this</h3>
|
35
|
+
<%= link_to "Checked it anyway?", checked_page_path(@page), data: {method: :post} %>
|
36
|
+
<% end %>
|
37
|
+
<% else %>
|
38
|
+
<h3 style="margin-top:0">Nobody is checking this</h3>
|
39
|
+
<%= link_to "I'll check it", assign_page_path(@page), class: 'btn btn-default btn-lg', data: {method: :post} %>
|
40
|
+
<br/>
|
41
|
+
<%= link_to "Already checked it?", '#' %>
|
42
|
+
<% end %>
|
43
|
+
</div>
|
44
|
+
|
45
|
+
|
46
|
+
<h3>Status</h3>
|
47
|
+
|
48
|
+
<% if status = @page.current_status %>
|
49
|
+
<%= render 'nightlight/pages/activity', activity: status, current_status: true %>
|
50
|
+
<% else %>
|
51
|
+
<p class="text-muted">There is no status</p>
|
52
|
+
<% end %>
|
53
|
+
|
54
|
+
<%= form_for [@page,@status] do |f| %>
|
55
|
+
<div class="form-group">
|
56
|
+
<%= f.text_area :description, placeholder: "Find a new problem? Existing problem fixed? Describe it here. Be sure to include relevant links to issue tracker, etc.", class: 'form-control' %>
|
57
|
+
</div>
|
58
|
+
<%= f.submit 'Update status', class: 'btn btn-default' %>
|
59
|
+
<% end %>
|
60
|
+
|
61
|
+
|
62
|
+
<h3>Activity</h3>
|
63
|
+
|
64
|
+
<% @page.activities.each do |activity| %>
|
65
|
+
<%= render 'nightlight/pages/activity', activity: activity %>
|
66
|
+
<hr/>
|
67
|
+
<% end %>
|
data/config/routes.rb
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
Nightlight::Engine.routes.draw do
|
2
|
+
resources :pages do
|
3
|
+
member do
|
4
|
+
post :assign
|
5
|
+
post :unassign
|
6
|
+
post :checked
|
7
|
+
end
|
8
|
+
collection do
|
9
|
+
post :add_yes
|
10
|
+
post :add_no
|
11
|
+
post :random
|
12
|
+
end
|
13
|
+
resources :activities, only: [:create]
|
14
|
+
end
|
15
|
+
root to: "pages#index"
|
16
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# taken from https://github.com/collectiveidea/audited/blob/master/lib/generators/audited/install_generator.rb
|
2
|
+
require "rails/generators"
|
3
|
+
require "rails/generators/migration"
|
4
|
+
require "active_record"
|
5
|
+
require "rails/generators/active_record"
|
6
|
+
|
7
|
+
module Nightlight
|
8
|
+
module Generators
|
9
|
+
class InstallGenerator < Rails::Generators::Base
|
10
|
+
include Rails::Generators::Migration
|
11
|
+
|
12
|
+
source_root File.expand_path("../templates", __FILE__)
|
13
|
+
|
14
|
+
# Implement the required interface for Rails::Generators::Migration.
|
15
|
+
def self.next_migration_number(dirname) #:nodoc:
|
16
|
+
next_migration_number = current_migration_number(dirname) + 1
|
17
|
+
if ActiveRecord::Base.timestamped_migrations
|
18
|
+
[Time.now.utc.strftime("%Y%m%d%H%M%S"), "%.14d" % next_migration_number].max
|
19
|
+
else
|
20
|
+
"%.3d" % next_migration_number
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def copy_migration
|
25
|
+
migration_template "install.rb", "db/migrate/install_nightlight.rb"
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
class <%= migration_class_name %> < ActiveRecord::Migration
|
2
|
+
def change
|
3
|
+
create_table :nightlight_pages do |t|
|
4
|
+
t.references :assignee
|
5
|
+
t.string :name
|
6
|
+
t.string :path
|
7
|
+
t.string :reqs
|
8
|
+
t.string :sample_path
|
9
|
+
t.text :notes
|
10
|
+
t.datetime :last_checked_at
|
11
|
+
t.boolean :hidden, default: false
|
12
|
+
t.timestamps
|
13
|
+
end
|
14
|
+
|
15
|
+
create_table :nightlight_activities do |t|
|
16
|
+
t.references :user
|
17
|
+
t.references :page
|
18
|
+
t.string :name
|
19
|
+
t.text :description
|
20
|
+
t.timestamps
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
module Nightlight
|
2
|
+
class Engine < ::Rails::Engine
|
3
|
+
isolate_namespace Nightlight
|
4
|
+
|
5
|
+
initializer "precompile" do |app|
|
6
|
+
# use a proc instead of a string
|
7
|
+
app.config.assets.precompile << Proc.new{|path| path =~ /\Anightlight\/application\.(js|css)\z/ }
|
8
|
+
end
|
9
|
+
|
10
|
+
end
|
11
|
+
end
|
data/lib/nightlight.rb
ADDED
data/nightlight.gemspec
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'nightlight/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "nightlight"
|
8
|
+
spec.version = Nightlight::VERSION
|
9
|
+
spec.authors = ["Benjamin Sullivan"]
|
10
|
+
spec.email = ["me@bnjs.co"]
|
11
|
+
spec.summary = %q{Shed light on the dark corners of your app}
|
12
|
+
spec.description = %q{Shed light on the dark corners of your app}
|
13
|
+
spec.homepage = "https://github.com/bonsaiben/nightlight"
|
14
|
+
spec.license = "MIT"
|
15
|
+
|
16
|
+
spec.files = `git ls-files -z`.split("\x0")
|
17
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
+
spec.require_paths = ["lib"]
|
20
|
+
|
21
|
+
spec.add_dependency "rails"
|
22
|
+
|
23
|
+
spec.add_development_dependency "bundler", "~> 1.7"
|
24
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
25
|
+
end
|
metadata
ADDED
@@ -0,0 +1,129 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: nightlight
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Benjamin Sullivan
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-01-20 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rails
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '>='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: bundler
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ~>
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.7'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ~>
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.7'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rake
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ~>
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '10.0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ~>
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '10.0'
|
55
|
+
description: Shed light on the dark corners of your app
|
56
|
+
email:
|
57
|
+
- me@bnjs.co
|
58
|
+
executables: []
|
59
|
+
extensions: []
|
60
|
+
extra_rdoc_files: []
|
61
|
+
files:
|
62
|
+
- .gitignore
|
63
|
+
- Gemfile
|
64
|
+
- Gemfile.lock
|
65
|
+
- LICENSE.txt
|
66
|
+
- README.md
|
67
|
+
- Rakefile
|
68
|
+
- app/assets/fonts/nightlight/FontAwesome.otf
|
69
|
+
- app/assets/fonts/nightlight/fontawesome-webfont.eot
|
70
|
+
- app/assets/fonts/nightlight/fontawesome-webfont.svg
|
71
|
+
- app/assets/fonts/nightlight/fontawesome-webfont.ttf
|
72
|
+
- app/assets/fonts/nightlight/fontawesome-webfont.woff
|
73
|
+
- app/assets/javascripts/nightlight/application.js
|
74
|
+
- app/assets/javascripts/nightlight/jquery.min.js
|
75
|
+
- app/assets/javascripts/nightlight/jquery_ujs.js
|
76
|
+
- app/assets/stylesheets/nightlight/application.css
|
77
|
+
- app/assets/stylesheets/nightlight/bootstrap.min.css
|
78
|
+
- app/assets/stylesheets/nightlight/font-awesome.min.css
|
79
|
+
- app/assets/stylesheets/nightlight/pages.css
|
80
|
+
- app/controllers/nightlight/activities_controller.rb
|
81
|
+
- app/controllers/nightlight/base_controller.rb
|
82
|
+
- app/controllers/nightlight/pages_controller.rb
|
83
|
+
- app/helpers/nightlight/pages_helper.rb
|
84
|
+
- app/models/nightlight/activity.rb
|
85
|
+
- app/models/nightlight/page.rb
|
86
|
+
- app/views/layouts/nightlight/_alert.html.erb
|
87
|
+
- app/views/layouts/nightlight/application.html.erb
|
88
|
+
- app/views/nightlight/pages/_activity.html.erb
|
89
|
+
- app/views/nightlight/pages/_brightness.html.erb
|
90
|
+
- app/views/nightlight/pages/_form.html.erb
|
91
|
+
- app/views/nightlight/pages/_pages.html.erb
|
92
|
+
- app/views/nightlight/pages/add.js.erb
|
93
|
+
- app/views/nightlight/pages/edit.html.erb
|
94
|
+
- app/views/nightlight/pages/index.html.erb
|
95
|
+
- app/views/nightlight/pages/new.html.erb
|
96
|
+
- app/views/nightlight/pages/show.html.erb
|
97
|
+
- config/routes.rb
|
98
|
+
- lib/generators/nightlight/install_generator.rb
|
99
|
+
- lib/generators/nightlight/templates/install.rb
|
100
|
+
- lib/nightlight.rb
|
101
|
+
- lib/nightlight/engine.rb
|
102
|
+
- lib/nightlight/version.rb
|
103
|
+
- nightlight.gemspec
|
104
|
+
homepage: https://github.com/bonsaiben/nightlight
|
105
|
+
licenses:
|
106
|
+
- MIT
|
107
|
+
metadata: {}
|
108
|
+
post_install_message:
|
109
|
+
rdoc_options: []
|
110
|
+
require_paths:
|
111
|
+
- lib
|
112
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
113
|
+
requirements:
|
114
|
+
- - '>='
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
version: '0'
|
117
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
118
|
+
requirements:
|
119
|
+
- - '>='
|
120
|
+
- !ruby/object:Gem::Version
|
121
|
+
version: '0'
|
122
|
+
requirements: []
|
123
|
+
rubyforge_project:
|
124
|
+
rubygems_version: 2.0.14
|
125
|
+
signing_key:
|
126
|
+
specification_version: 4
|
127
|
+
summary: Shed light on the dark corners of your app
|
128
|
+
test_files: []
|
129
|
+
has_rdoc:
|