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.
Files changed (44) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +13 -0
  3. data/Gemfile +4 -0
  4. data/Gemfile.lock +112 -0
  5. data/LICENSE.txt +22 -0
  6. data/README.md +63 -0
  7. data/Rakefile +2 -0
  8. data/app/assets/fonts/nightlight/FontAwesome.otf +0 -0
  9. data/app/assets/fonts/nightlight/fontawesome-webfont.eot +0 -0
  10. data/app/assets/fonts/nightlight/fontawesome-webfont.svg +399 -0
  11. data/app/assets/fonts/nightlight/fontawesome-webfont.ttf +0 -0
  12. data/app/assets/fonts/nightlight/fontawesome-webfont.woff +0 -0
  13. data/app/assets/javascripts/nightlight/application.js +2 -0
  14. data/app/assets/javascripts/nightlight/jquery.min.js +4 -0
  15. data/app/assets/javascripts/nightlight/jquery_ujs.js +469 -0
  16. data/app/assets/stylesheets/nightlight/application.css +14 -0
  17. data/app/assets/stylesheets/nightlight/bootstrap.min.css +5 -0
  18. data/app/assets/stylesheets/nightlight/font-awesome.min.css +403 -0
  19. data/app/assets/stylesheets/nightlight/pages.css +30 -0
  20. data/app/controllers/nightlight/activities_controller.rb +29 -0
  21. data/app/controllers/nightlight/base_controller.rb +16 -0
  22. data/app/controllers/nightlight/pages_controller.rb +132 -0
  23. data/app/helpers/nightlight/pages_helper.rb +24 -0
  24. data/app/models/nightlight/activity.rb +38 -0
  25. data/app/models/nightlight/page.rb +43 -0
  26. data/app/views/layouts/nightlight/_alert.html.erb +11 -0
  27. data/app/views/layouts/nightlight/application.html.erb +20 -0
  28. data/app/views/nightlight/pages/_activity.html.erb +19 -0
  29. data/app/views/nightlight/pages/_brightness.html.erb +3 -0
  30. data/app/views/nightlight/pages/_form.html.erb +34 -0
  31. data/app/views/nightlight/pages/_pages.html.erb +42 -0
  32. data/app/views/nightlight/pages/add.js.erb +13 -0
  33. data/app/views/nightlight/pages/edit.html.erb +17 -0
  34. data/app/views/nightlight/pages/index.html.erb +50 -0
  35. data/app/views/nightlight/pages/new.html.erb +11 -0
  36. data/app/views/nightlight/pages/show.html.erb +67 -0
  37. data/config/routes.rb +16 -0
  38. data/lib/generators/nightlight/install_generator.rb +29 -0
  39. data/lib/generators/nightlight/templates/install.rb +23 -0
  40. data/lib/nightlight/engine.rb +11 -0
  41. data/lib/nightlight/version.rb +3 -0
  42. data/lib/nightlight.rb +9 -0
  43. data/nightlight.gemspec +25 -0
  44. 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,11 @@
1
+ <%- success = success || flash[:success] %>
2
+ <%- error = error || flash[:error] %>
3
+ <% if success %>
4
+ <div class="alert alert-success">
5
+ <%= success %>
6
+ </div>
7
+ <% elsif error %>
8
+ <div class="alert alert-danger">
9
+ <%= error %>
10
+ </div>
11
+ <% 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,3 @@
1
+ <%- brightness ||= page.brightness %>
2
+ <i class="icon-lightbulb brightness brightness-on brightness-<%= brightness %>" aria-hidden="true"></i>
3
+
@@ -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
@@ -0,0 +1,3 @@
1
+ module Nightlight
2
+ VERSION = "0.0.1"
3
+ end
data/lib/nightlight.rb ADDED
@@ -0,0 +1,9 @@
1
+ require "nightlight/version"
2
+ require "nightlight/engine"
3
+
4
+ module Nightlight
5
+ class << self
6
+ attr_accessor :user_name
7
+ end
8
+ self.user_name = :name
9
+ end
@@ -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: