furia 0.0.1 → 0.0.2

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 (57) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/furia/application.js +2 -0
  3. data/app/assets/stylesheets/furia/application.css +48 -0
  4. data/app/controllers/furia/application_controller.rb +1 -0
  5. data/app/controllers/furia/samples_controller.rb +25 -0
  6. data/app/models/furia/sample.rb +11 -0
  7. data/app/views/furia/samples/_entry.html.erb +36 -0
  8. data/app/views/furia/samples/_group.html.erb +11 -0
  9. data/app/views/furia/samples/index.html.erb +38 -0
  10. data/app/views/furia/samples/show.html.erb +3 -0
  11. data/app/views/layouts/furia/application.html.erb +31 -10
  12. data/config/routes.rb +2 -0
  13. data/db/migrate/20251228160822_create_furia_samples.rb +9 -0
  14. data/lib/furia/engine.rb +7 -0
  15. data/lib/furia/observer.rb +57 -0
  16. data/lib/furia/version.rb +1 -1
  17. data/lib/furia.rb +28 -0
  18. metadata +14 -86
  19. data/app/models/launch.rb +0 -4
  20. data/test/dummy/README.rdoc +0 -28
  21. data/test/dummy/Rakefile +0 -6
  22. data/test/dummy/app/assets/javascripts/application.js +0 -13
  23. data/test/dummy/app/assets/stylesheets/application.css +0 -15
  24. data/test/dummy/app/controllers/application_controller.rb +0 -5
  25. data/test/dummy/app/helpers/application_helper.rb +0 -2
  26. data/test/dummy/app/views/layouts/application.html.erb +0 -14
  27. data/test/dummy/bin/bundle +0 -3
  28. data/test/dummy/bin/rails +0 -4
  29. data/test/dummy/bin/rake +0 -4
  30. data/test/dummy/bin/setup +0 -29
  31. data/test/dummy/config/application.rb +0 -26
  32. data/test/dummy/config/boot.rb +0 -5
  33. data/test/dummy/config/database.yml +0 -25
  34. data/test/dummy/config/environment.rb +0 -5
  35. data/test/dummy/config/environments/development.rb +0 -41
  36. data/test/dummy/config/environments/production.rb +0 -79
  37. data/test/dummy/config/environments/test.rb +0 -42
  38. data/test/dummy/config/initializers/assets.rb +0 -11
  39. data/test/dummy/config/initializers/backtrace_silencers.rb +0 -7
  40. data/test/dummy/config/initializers/cookies_serializer.rb +0 -3
  41. data/test/dummy/config/initializers/filter_parameter_logging.rb +0 -4
  42. data/test/dummy/config/initializers/inflections.rb +0 -16
  43. data/test/dummy/config/initializers/mime_types.rb +0 -4
  44. data/test/dummy/config/initializers/session_store.rb +0 -3
  45. data/test/dummy/config/initializers/to_time_preserves_timezone.rb +0 -10
  46. data/test/dummy/config/initializers/wrap_parameters.rb +0 -14
  47. data/test/dummy/config/locales/en.yml +0 -23
  48. data/test/dummy/config/routes.rb +0 -4
  49. data/test/dummy/config/secrets.yml +0 -22
  50. data/test/dummy/config.ru +0 -4
  51. data/test/dummy/public/404.html +0 -67
  52. data/test/dummy/public/422.html +0 -67
  53. data/test/dummy/public/500.html +0 -66
  54. data/test/dummy/public/favicon.ico +0 -0
  55. data/test/furia_test.rb +0 -7
  56. data/test/integration/navigation_test.rb +0 -8
  57. data/test/test_helper.rb +0 -21
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1deead328642d670ec15e51e28d26b44893e7691741e8e2fb4c39eaa78f0bc10
4
- data.tar.gz: e95dfbffb4e10ea4f92c3f9b0ad0f0618961f84a03052f4d3251a1adb93eba35
3
+ metadata.gz: 77c268a50f635ec664d2069dd7c8a11a65fd34c347d54e0e392a276ea23af5e4
4
+ data.tar.gz: 175133d228496068459a2a86dc5ea6cb57a7e74f720890e26c2e8677d43f318d
5
5
  SHA512:
6
- metadata.gz: 54ae6a45b14d1ccadee495b2d200cf085aa30eb5190065f942b275e94680b4e209f7d2dfc26f6805c8edbb9834c743758e1dfae6ad3bfebe9ec54b58f7b5a814
7
- data.tar.gz: 74ab35a18e64e648d896a9824365072615033319acb26b263a08ec1e19ed99b30d9835b2c3b110c7317991d5c175ed75a392248f9a3b83868740e080f610fcf3
6
+ metadata.gz: 841107e3526539ceb318555c5b4e18fc514d6b240c4c1a41c245d625c263bdfff96033adccdd28f3204cc8ea323618caad944b2b43ba68c716b83afa1abd5a73
7
+ data.tar.gz: e3846bfa72009a969dee18301b681a55d73d54a7a578bf3c0aae2d6d0d77acebda6d4b0f105ce17d708f517e7964f192d7b99d32d1ecbd2f56bfdc1fd8b9d519
@@ -11,3 +11,5 @@
11
11
  // about supported directives.
12
12
  //
13
13
  //= require_tree .
14
+ //= require jquery
15
+ //= require jquery_ujs
@@ -13,3 +13,51 @@
13
13
  *= require_tree .
14
14
  *= require_self
15
15
  */
16
+
17
+ .entries {
18
+ position: relative;
19
+ border: 1px solid var(--bs-border-color);
20
+ border-radius: var(--bs-border-radius);
21
+ padding: 2.5rem 1rem 1rem 1rem;
22
+ margin-bottom: 1rem;
23
+ }
24
+
25
+ .entries:not(:has(> .collapse.show, > .collapsing)) {
26
+ padding: 0;
27
+ }
28
+
29
+ .entries:not(:has(> .collapse.show, > .collapsing)) .scope-label {
30
+ position: static;
31
+ border: 0;
32
+ border-radius: var(--bs-border-radius);
33
+ width: 100%;
34
+ text-align: left;
35
+ }
36
+
37
+ .scope-label {
38
+ position: absolute;
39
+ top: 0;
40
+ left: 0;
41
+ padding: 0 1rem;
42
+ color: var(--bs-success-text-emphasis);
43
+ background: var(--bs-success-bg-subtle);
44
+ border: 1px solid var(--bs-success-border-subtle);
45
+ border-radius: var(--bs-border-radius) 0 var(--bs-border-radius) 0;
46
+ }
47
+
48
+ .accordion-single {
49
+ margin-bottom: 1rem;
50
+ }
51
+
52
+ .accordion-single:last-child {
53
+ margin-bottom: 0;
54
+ }
55
+
56
+ .accordion-single .accordion-button {
57
+ padding: 0.875rem;
58
+ }
59
+
60
+ .accordion-single .accordion-button:focus:not(:focus-visible) {
61
+ outline: none;
62
+ box-shadow: none;
63
+ }
@@ -1,5 +1,6 @@
1
1
  module Furia
2
2
  class ApplicationController < ActionController::Base
3
3
  protect_from_forgery with: :exception
4
+ layout "furia/application"
4
5
  end
5
6
  end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Furia
4
+ class SamplesController < ApplicationController
5
+ before_action :set_sample, only: %i[show destroy]
6
+
7
+ def index
8
+ @samples = Sample.order(created_at: :desc)
9
+ end
10
+
11
+ def show
12
+ end
13
+
14
+ def destroy
15
+ @sample.destroy
16
+ redirect_to samples_path
17
+ end
18
+
19
+ private
20
+
21
+ def set_sample
22
+ @sample = Sample.find(params[:id])
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Furia
4
+ class Sample < ActiveRecord::Base
5
+ serialize :data, JSON
6
+
7
+ def root_group
8
+ @root_group ||= Furia.entry_from_hash(data)
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,36 @@
1
+ <% if entry.is_a?(Furia::Query) %>
2
+ <div class="accordion accordion-single font-monospace">
3
+ <div class="accordion-item">
4
+ <h2 class="accordion-header">
5
+ <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#query-<%= entry.uid %>">
6
+ <small>
7
+ [<span class="text-success"><%= entry.duration_ms.floor(2) %>ms</span>]
8
+ <% if entry.cached %>
9
+ [<span class="text-secondary">CACHED</span>]
10
+ <% end %>
11
+ <span>
12
+ <code class="language-sql bg-transparent"><%= entry.sql %></code>
13
+ </span>
14
+ </small>
15
+ </button>
16
+ </h2>
17
+
18
+ <div id="query-<%= entry.uid %>" class="accordion-collapse collapse">
19
+ <div class="accordion-body">
20
+ <small>
21
+ Stacktrace:
22
+ <ul>
23
+ <% entry.stacktrace.each do |line| %>
24
+ <li><%= line %></li>
25
+ <% end %>
26
+ </ul>
27
+ </small>
28
+ </div>
29
+ </div>
30
+ </div>
31
+ </div>
32
+ <% end %>
33
+
34
+ <% if entry.is_a?(Furia::Group) %>
35
+ <%= render "group", group: entry %>
36
+ <% end %>
@@ -0,0 +1,11 @@
1
+ <div class="entries">
2
+ <button class="scope-label" data-bs-toggle="collapse" data-bs-target="#scope-<%= group.uid %>">
3
+ <%= group.scope %> [<%= group.total_duration_ms.floor(2) %>ms]
4
+ </button>
5
+
6
+ <div class="collapse show" id="scope-<%= group.uid %>">
7
+ <% group.entries.each do |entry| %>
8
+ <%= render "entry", entry: entry %>
9
+ <% end %>
10
+ </div>
11
+ </div>
@@ -0,0 +1,38 @@
1
+ <h2 class="my-4">All Samples</h2>
2
+
3
+ <% if @samples.any? %>
4
+ <table class="table">
5
+ <thead>
6
+ <tr>
7
+ <th>ID</th>
8
+ <th>Scope</th>
9
+ <th>Total Duration</th>
10
+ <th>Queries number</th>
11
+ <th>Created</th>
12
+ <th></th>
13
+ </tr>
14
+ </thead>
15
+ <tbody>
16
+ <% @samples.each do |sample| %>
17
+ <tr>
18
+ <td><%= sample.id %></td>
19
+ <td><%= sample.root_group.scope %></td>
20
+ <td><%= sample.root_group.total_duration_ms.floor(2) %>ms</td>
21
+ <td><%= sample.root_group.total_queries_num %></td>
22
+ <td><%= l sample.created_at, format: :short %></td>
23
+ <td>
24
+ <%= link_to "View", sample_path(sample) %>
25
+ &nbsp;
26
+ <%= link_to "Destroy", sample_path(sample), class: "text-danger", data: { confirm: "Are you sure you want to destroy this sample?", method: "DELETE" } %>
27
+ </td>
28
+ </tr>
29
+ <% end %>
30
+ </tbody>
31
+ </table>
32
+ <% else %>
33
+ <div class="card">
34
+ <div class="card-body text-center">
35
+ Nothing yet ¯\_(ツ)_/¯
36
+ </div>
37
+ </div>
38
+ <% end %>
@@ -0,0 +1,3 @@
1
+ <h2 class="my-4">Sample #<%= @sample.id %> from <%= l @sample.created_at, format: :short %></h2>
2
+
3
+ <%= render "group", group: @sample.root_group %>
@@ -1,14 +1,35 @@
1
- <!DOCTYPE html>
1
+ <!doctype html>
2
2
  <html>
3
- <head>
4
- <title>Furia</title>
5
- <%= stylesheet_link_tag "furia/application", media: "all" %>
6
- <%= javascript_include_tag "furia/application" %>
7
- <%= csrf_meta_tags %>
8
- </head>
9
- <body>
3
+ <head>
4
+ <title>Furia</title>
10
5
 
11
- <%= yield %>
6
+ <%= csrf_meta_tags %>
7
+ <%= stylesheet_link_tag "furia/application" %>
8
+ <%= javascript_include_tag "furia/application" %>
12
9
 
13
- </body>
10
+ <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-sRIl4kxILFvY47J16cr9ZwB07vP4J8+LH7qKQnuqkuIAvNWLzeN8tE5YBujZqJLB" crossorigin="anonymous">
11
+ <link href="https://cdn.jsdelivr.net/npm/prismjs@1.30.0/themes/prism.min.css" rel="stylesheet">
12
+ </head>
13
+
14
+ <body>
15
+ <nav class="navbar bg-body-tertiary">
16
+ <div class="container-fluid">
17
+ <a class="navbar-brand" href="#">Furia</a>
18
+
19
+ <ul class="navbar-nav me-auto">
20
+ <li class="nav-item">
21
+ <a class="nav-link" aria-current="page" href="<%= samples_path %>">Samples</a>
22
+ </li>
23
+ </ul>
24
+ </div>
25
+ </nav>
26
+
27
+ <div class="container-fluid">
28
+ <%= yield %>
29
+ </div>
30
+
31
+ <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/js/bootstrap.bundle.min.js" integrity="sha384-FKyoEForCGlyvwx9Hj09JcYn3nv7wiPVlz7YYwJrWVcXK/BmnVDxM+D2scQbITxI" crossorigin="anonymous"></script>
32
+ <script src="https://cdn.jsdelivr.net/npm/prismjs@1.30.0/components/prism-core.min.js"></script>
33
+ <script src="https://cdn.jsdelivr.net/npm/prismjs@1.30.0/plugins/autoloader/prism-autoloader.min.js"></script>
34
+ </body>
14
35
  </html>
data/config/routes.rb CHANGED
@@ -1,2 +1,4 @@
1
1
  Furia::Engine.routes.draw do
2
+ resources :samples, only: %i[index show destroy]
3
+ root to: redirect("samples")
2
4
  end
@@ -0,0 +1,9 @@
1
+ class CreateFuriaSamples < ActiveRecord::Migration
2
+ def change
3
+ create_table :furia_samples do |t|
4
+ t.text :data, limit: 16.megabytes - 1, null: false
5
+ t.datetime :created_at, null: false
6
+ t.index :created_at, order: :desc
7
+ end
8
+ end
9
+ end
data/lib/furia/engine.rb CHANGED
@@ -1,5 +1,12 @@
1
1
  module Furia
2
2
  class Engine < ::Rails::Engine
3
3
  isolate_namespace Furia
4
+
5
+ initializer "furia.assets.precompile" do |app|
6
+ app.config.assets.precompile += %w[
7
+ furia/application.css
8
+ furia/application.js
9
+ ]
10
+ end
4
11
  end
5
12
  end
@@ -0,0 +1,57 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Furia
4
+ module Observer
5
+ def self.wrap(scope)
6
+ @root_scope ||= { uid: "root", type: "group", scope: scope, total_queries_num: 0, total_duration_ms: 0, entries: [] }
7
+ parent_scope = @current_scope
8
+ @current_scope =
9
+ if parent_scope
10
+ { uid: SecureRandom.hex(16), type: "group", scope: scope, total_duration_ms: 0, entries: [] }.tap do |new_scope|
11
+ parent_scope[:entries] << new_scope
12
+ end
13
+ else
14
+ @root_scope
15
+ end
16
+
17
+ subscriber =
18
+ ActiveSupport::Notifications.subscribe("sql.active_record") do |_, started, finished, _, payload|
19
+ next if payload[:name] == "SCHEMA"
20
+
21
+ duration_ms = (finished - started) * 1000
22
+ @current_scope[:total_duration_ms] += duration_ms
23
+ entry = {
24
+ uid: SecureRandom.hex(16),
25
+ type: "query",
26
+ sql: payload[:sql],
27
+ cached: payload[:name] == "CACHE",
28
+ duration_ms: duration_ms,
29
+ stacktrace: trace_cleaner.clean(caller),
30
+ }.freeze
31
+
32
+ @current_scope[:entries] << entry
33
+ @root_scope[:total_queries_num] += 1
34
+ end
35
+
36
+ yield
37
+
38
+ if parent_scope
39
+ parent_scope[:total_duration_ms] += @current_scope[:total_duration_ms]
40
+ @current_scope = parent_scope
41
+ else
42
+ Furia::Sample.create!(data: @root_scope)
43
+ end
44
+ ensure
45
+ ActiveSupport::Notifications.unsubscribe(subscriber)
46
+ end
47
+
48
+ def self.trace_cleaner
49
+ @trace_cleaner ||=
50
+ ActiveSupport::BacktraceCleaner.new.tap do |c|
51
+ c.add_silencer { |line| line.include?("/gems/") }
52
+ c.add_silencer { |line| line.include?("/ruby/") }
53
+ c.add_silencer { |line| line.include?("/active_record/") }
54
+ end
55
+ end
56
+ end
57
+ end
data/lib/furia/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Furia
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
data/lib/furia.rb CHANGED
@@ -1,4 +1,32 @@
1
1
  require "furia/engine"
2
+ require "furia/observer"
2
3
 
3
4
  module Furia
5
+ Group =
6
+ Struct.new(:uid, :scope, :total_duration_ms, :total_queries_num, :entries, keyword_init: true) do
7
+ def self.from_hash(hash)
8
+ group_entries = hash[:entries].map { |entry| Furia.entry_from_hash(entry) }
9
+ new(**hash.except(:entries).slice(*members).merge(entries: group_entries))
10
+ end
11
+ end
12
+
13
+ Query =
14
+ Struct.new(:uid, :sql, :cached, :duration_ms, :stacktrace, keyword_init: true) do
15
+ def self.from_hash(hash)
16
+ new(**hash.slice(*members))
17
+ end
18
+ end
19
+
20
+ def self.entry_from_hash(hash)
21
+ symbolized = hash.transform_keys(&:to_sym)
22
+
23
+ case symbolized[:type]
24
+ when "group"
25
+ Group.from_hash(symbolized)
26
+ when "query"
27
+ Query.from_hash(symbolized)
28
+ else
29
+ raise "Unsupported type: `#{symbolized[:type]}'"
30
+ end
31
+ end
4
32
  end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: furia
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Viacheslav Alekseev
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2025-12-27 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: rails
@@ -25,13 +24,13 @@ dependencies:
25
24
  - !ruby/object:Gem::Version
26
25
  version: 4.2.11
27
26
  - !ruby/object:Gem::Dependency
28
- name: sqlite3
27
+ name: jquery-rails
29
28
  requirement: !ruby/object:Gem::Requirement
30
29
  requirements:
31
30
  - - ">="
32
31
  - !ruby/object:Gem::Version
33
32
  version: '0'
34
- type: :development
33
+ type: :runtime
35
34
  prerelease: false
36
35
  version_requirements: !ruby/object:Gem::Requirement
37
36
  requirements:
@@ -51,57 +50,25 @@ files:
51
50
  - app/assets/javascripts/furia/application.js
52
51
  - app/assets/stylesheets/furia/application.css
53
52
  - app/controllers/furia/application_controller.rb
53
+ - app/controllers/furia/samples_controller.rb
54
54
  - app/helpers/furia/application_helper.rb
55
- - app/models/launch.rb
55
+ - app/models/furia/sample.rb
56
+ - app/views/furia/samples/_entry.html.erb
57
+ - app/views/furia/samples/_group.html.erb
58
+ - app/views/furia/samples/index.html.erb
59
+ - app/views/furia/samples/show.html.erb
56
60
  - app/views/layouts/furia/application.html.erb
57
61
  - config/routes.rb
62
+ - db/migrate/20251228160822_create_furia_samples.rb
58
63
  - lib/furia.rb
59
64
  - lib/furia/engine.rb
65
+ - lib/furia/observer.rb
60
66
  - lib/furia/version.rb
61
67
  - lib/tasks/furia_tasks.rake
62
- - test/dummy/README.rdoc
63
- - test/dummy/Rakefile
64
- - test/dummy/app/assets/javascripts/application.js
65
- - test/dummy/app/assets/stylesheets/application.css
66
- - test/dummy/app/controllers/application_controller.rb
67
- - test/dummy/app/helpers/application_helper.rb
68
- - test/dummy/app/views/layouts/application.html.erb
69
- - test/dummy/bin/bundle
70
- - test/dummy/bin/rails
71
- - test/dummy/bin/rake
72
- - test/dummy/bin/setup
73
- - test/dummy/config.ru
74
- - test/dummy/config/application.rb
75
- - test/dummy/config/boot.rb
76
- - test/dummy/config/database.yml
77
- - test/dummy/config/environment.rb
78
- - test/dummy/config/environments/development.rb
79
- - test/dummy/config/environments/production.rb
80
- - test/dummy/config/environments/test.rb
81
- - test/dummy/config/initializers/assets.rb
82
- - test/dummy/config/initializers/backtrace_silencers.rb
83
- - test/dummy/config/initializers/cookies_serializer.rb
84
- - test/dummy/config/initializers/filter_parameter_logging.rb
85
- - test/dummy/config/initializers/inflections.rb
86
- - test/dummy/config/initializers/mime_types.rb
87
- - test/dummy/config/initializers/session_store.rb
88
- - test/dummy/config/initializers/to_time_preserves_timezone.rb
89
- - test/dummy/config/initializers/wrap_parameters.rb
90
- - test/dummy/config/locales/en.yml
91
- - test/dummy/config/routes.rb
92
- - test/dummy/config/secrets.yml
93
- - test/dummy/public/404.html
94
- - test/dummy/public/422.html
95
- - test/dummy/public/500.html
96
- - test/dummy/public/favicon.ico
97
- - test/furia_test.rb
98
- - test/integration/navigation_test.rb
99
- - test/test_helper.rb
100
68
  homepage: https://github.com/alexeevit/furia
101
69
  licenses:
102
70
  - MIT
103
71
  metadata: {}
104
- post_install_message:
105
72
  rdoc_options: []
106
73
  require_paths:
107
74
  - lib
@@ -116,46 +83,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
116
83
  - !ruby/object:Gem::Version
117
84
  version: '0'
118
85
  requirements: []
119
- rubygems_version: 3.1.6
120
- signing_key:
86
+ rubygems_version: 4.0.3
121
87
  specification_version: 4
122
88
  summary: SQL queries logger
123
- test_files:
124
- - test/dummy/app/controllers/application_controller.rb
125
- - test/dummy/app/views/layouts/application.html.erb
126
- - test/dummy/app/assets/javascripts/application.js
127
- - test/dummy/app/assets/stylesheets/application.css
128
- - test/dummy/app/helpers/application_helper.rb
129
- - test/dummy/bin/rake
130
- - test/dummy/bin/setup
131
- - test/dummy/bin/bundle
132
- - test/dummy/bin/rails
133
- - test/dummy/config/secrets.yml
134
- - test/dummy/config/routes.rb
135
- - test/dummy/config/locales/en.yml
136
- - test/dummy/config/environments/production.rb
137
- - test/dummy/config/environments/development.rb
138
- - test/dummy/config/environments/test.rb
139
- - test/dummy/config/environment.rb
140
- - test/dummy/config/application.rb
141
- - test/dummy/config/database.yml
142
- - test/dummy/config/boot.rb
143
- - test/dummy/config/initializers/backtrace_silencers.rb
144
- - test/dummy/config/initializers/mime_types.rb
145
- - test/dummy/config/initializers/filter_parameter_logging.rb
146
- - test/dummy/config/initializers/session_store.rb
147
- - test/dummy/config/initializers/wrap_parameters.rb
148
- - test/dummy/config/initializers/assets.rb
149
- - test/dummy/config/initializers/cookies_serializer.rb
150
- - test/dummy/config/initializers/to_time_preserves_timezone.rb
151
- - test/dummy/config/initializers/inflections.rb
152
- - test/dummy/config.ru
153
- - test/dummy/Rakefile
154
- - test/dummy/public/favicon.ico
155
- - test/dummy/public/422.html
156
- - test/dummy/public/500.html
157
- - test/dummy/public/404.html
158
- - test/dummy/README.rdoc
159
- - test/integration/navigation_test.rb
160
- - test/test_helper.rb
161
- - test/furia_test.rb
89
+ test_files: []
data/app/models/launch.rb DELETED
@@ -1,4 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- class Launch < ActiveRecord::Base
4
- end
@@ -1,28 +0,0 @@
1
- == README
2
-
3
- This README would normally document whatever steps are necessary to get the
4
- application up and running.
5
-
6
- Things you may want to cover:
7
-
8
- * Ruby version
9
-
10
- * System dependencies
11
-
12
- * Configuration
13
-
14
- * Database creation
15
-
16
- * Database initialization
17
-
18
- * How to run the test suite
19
-
20
- * Services (job queues, cache servers, search engines, etc.)
21
-
22
- * Deployment instructions
23
-
24
- * ...
25
-
26
-
27
- Please feel free to use a different markup language if you do not plan to run
28
- <tt>rake doc:app</tt>.
data/test/dummy/Rakefile DELETED
@@ -1,6 +0,0 @@
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
- Rails.application.load_tasks
@@ -1,13 +0,0 @@
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 any plugin's vendor/assets/javascripts directory 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/rails/sprockets#sprockets-directives) for details
11
- // about supported directives.
12
- //
13
- //= require_tree .
@@ -1,15 +0,0 @@
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 any plugin's vendor/assets/stylesheets directory 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 bottom of the
9
- * compiled file so the styles you add here take precedence over styles defined in any styles
10
- * defined in the other CSS/SCSS files in this directory. It is generally better to create a new
11
- * file per style scope.
12
- *
13
- *= require_tree .
14
- *= require_self
15
- */
@@ -1,5 +0,0 @@
1
- class ApplicationController < ActionController::Base
2
- # Prevent CSRF attacks by raising an exception.
3
- # For APIs, you may want to use :null_session instead.
4
- protect_from_forgery with: :exception
5
- end
@@ -1,2 +0,0 @@
1
- module ApplicationHelper
2
- end
@@ -1,14 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <title>Dummy</title>
5
- <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
6
- <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
7
- <%= csrf_meta_tags %>
8
- </head>
9
- <body>
10
-
11
- <%= yield %>
12
-
13
- </body>
14
- </html>
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env ruby
2
- ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
3
- load Gem.bin_path('bundler', 'bundle')
data/test/dummy/bin/rails DELETED
@@ -1,4 +0,0 @@
1
- #!/usr/bin/env ruby
2
- APP_PATH = File.expand_path('../../config/application', __FILE__)
3
- require_relative '../config/boot'
4
- require 'rails/commands'
data/test/dummy/bin/rake DELETED
@@ -1,4 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require_relative '../config/boot'
3
- require 'rake'
4
- Rake.application.run