Skip to content

Commit 32e721d

Browse files
committed
Rename color theme as settings and add namespace
1 parent e3a25b5 commit 32e721d

File tree

5 files changed

+33
-31
lines changed

5 files changed

+33
-31
lines changed

app/controllers/color_themes_controller.rb renamed to app/controllers/settings/color_schemes_controller.rb

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
class ColorThemesController < ApplicationController
1+
class Settings::ColorSchemesController < ApplicationController
22
def show
33
@color_scale = selected_color_scale || session_color_scale || ColorScale.cached_default
4-
@color_theme = ColorTheme.new(color_scale: @color_scale)
4+
@settings = Settings.new(color_scale: @color_scale)
55

6-
render ColorThemes::ShowView.new(
7-
color_theme: @color_theme,
6+
render ColorSchemes::ShowView.new(
7+
settings: @settings,
88
fallback_color_scale: session_color_scale || ColorScale.cached_default,
99
curated_color_scales: ColorScale.cached_curated,
1010
selected: selected_color_scale_id.present?,
@@ -13,24 +13,24 @@ def show
1313
end
1414

1515
def update
16-
update_params = params[:color_theme] ? params.require(:color_theme).permit(:color_scale_id) : {}
16+
update_params = params[:settings] ? params.require(:settings).permit(:color_scale_id) : {}
1717
color_scale_id = update_params[:color_scale_id]
1818
@color_scale = ColorScale.find(color_scale_id)
1919

20-
redirect_to color_theme_path unless @color_scale.present?
20+
redirect_to settings_color_scheme_path unless @color_scale.present?
2121

2222
if @color_scale == ColorScale.cached_default
2323
session.delete(:color_scale_id)
2424
else
2525
session[:color_scale_id] = @color_scale.id
2626
end
2727

28-
redirect_to color_theme_path, status: :see_other
28+
redirect_to settings_color_scheme_path, status: :see_other
2929
end
3030

3131
private
3232

33-
def selected_color_scale_id = params.dig(:color_theme, :color_scale_id) || session[:color_scale_id]
33+
def selected_color_scale_id = params.dig(:settings, :color_scale_id) || session[:color_scale_id]
3434

3535
def session_color_scale = session[:color_scale_id] && ColorScale.find(session[:color_scale_id])
3636

app/models/color_theme.rb renamed to app/models/settings.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
class ColorTheme
1+
class Settings
22
include ActiveModel::Model
33

44
attr_accessor :color_scale

app/views/color_themes/show_view.rb renamed to app/views/color_schemes/show_view.rb

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
# frozen_string_literal: true
22

3-
class ColorThemes::ShowView < ApplicationView
3+
class ColorSchemes::ShowView < ApplicationView
44
include Phlex::Rails::Helpers::FormWith
55
include Phlex::Rails::Helpers::LinkTo
66
include Phlex::Rails::Helpers::ButtonTo
77
include Phlex::Rails::Helpers::ContentFor
88

9-
def initialize(color_theme:, fallback_color_scale: nil, curated_color_scales: [], selected: false, saved: false)
10-
@color_theme = color_theme
11-
@color_scale = color_theme.color_scale
9+
def initialize(settings:, fallback_color_scale: nil, curated_color_scales: [], selected: false, saved: false)
10+
@settings = settings
11+
@color_scale = settings.color_scale
1212
@fallback_color_scale = fallback_color_scale
1313
@curated_color_scales = curated_color_scales
1414
@selected = selected
@@ -38,7 +38,7 @@ def view_template
3838
div(class: "flex items-center") do
3939
span(class: "mr-2 text-small") { "Preview" }
4040

41-
form_with(model: @color_theme, url: url_for, method: :get) do |f|
41+
form_with(model: @settings, url: url_for, method: :get) do |f|
4242
fieldset do
4343
f.select(
4444
:color_scale_id,
@@ -58,14 +58,14 @@ def view_template
5858
span(class: "mr-2 text-small") { "OR" }
5959

6060
link_to "I feel lucky!",
61-
color_theme_path(color_theme: {color_scale_id: @curated_color_scales.sample.id}),
61+
settings_color_scheme_path(settings: {color_scale_id: @curated_color_scales.sample.id}),
6262
class: "button secondary mr-2"
6363

6464
if @selected && @color_scale != @fallback_color_scale
6565
span(class: "mr-2 text-small") { "OR" }
6666

6767
button_to "Reset preview",
68-
color_theme_path(color_theme: {color_scale_id: @fallback_color_scale.id}),
68+
settings_color_scheme_path(settings: {color_scale_id: @fallback_color_scale.id}),
6969
method: :patch,
7070
class: "button tertiary mr-2"
7171
end
@@ -76,14 +76,14 @@ def view_template
7676
span(class: "mr-2 text-small") { plain "Save" }
7777

7878
button_to "Save this color scheme",
79-
color_theme_path(color_theme: {color_scale_id: @color_scale.id}),
79+
settings_color_scheme_path(settings: {color_scale_id: @color_scale.id}),
8080
method: :patch,
8181
class: "button primary mr-2"
8282

8383
span(class: "mr-2 text-small") { unsafe_raw "&bull;" }
8484

8585
button_to "Reset to default",
86-
color_theme_path(color_theme: {color_scale_id: ColorScale.cached_default.id}),
86+
settings_color_scheme_path(settings: {color_scale_id: ColorScale.cached_default.id}),
8787
method: :patch,
8888
class: "button tertiary mr-2"
8989
end

config/routes.rb

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,22 +16,16 @@
1616
end
1717
resources :examples, only: [:index, :show]
1818

19-
resource :color_theme, only: [:show, :update]
20-
2119
namespace :pwa do
2220
resource :installation_instructions, only: [:show]
2321
resources :web_pushes, only: [:create]
2422
end
2523

2624
resources :feed, only: [:index], format: "atom"
2725

28-
# Render dynamic PWA files from app/views/pwa/*
29-
get "serviceworker" => "rails/pwa#serviceworker", :as => :pwa_serviceworker, :constraints => {format: "js"}
30-
get "manifest" => "rails/pwa#manifest", :as => :pwa_manifest, :constraints => {format: "json"}
31-
32-
# Reveal health status on /up that returns 200 if the app boots with no exceptions, otherwise 500.
33-
# Can be used by load balancers and uptime monitors to verify that the app is live.
34-
get "up" => "rails/health#show", :as => :rails_health_check
26+
namespace :settings do
27+
resource :color_scheme, only: [:show, :update]
28+
end
3529

3630
namespace :users do
3731
resource :thank_you, only: [:show]
@@ -80,4 +74,12 @@
8074
mount Litestream::Engine => "/litestream"
8175
end
8276
end
77+
78+
# Render dynamic PWA files from app/views/pwa/*
79+
get "serviceworker" => "rails/pwa#serviceworker", :as => :pwa_serviceworker, :constraints => {format: "js"}
80+
get "manifest" => "rails/pwa#manifest", :as => :pwa_manifest, :constraints => {format: "json"}
81+
82+
# Reveal health status on /up that returns 200 if the app boots with no exceptions, otherwise 500.
83+
# Can be used by load balancers and uptime monitors to verify that the app is live.
84+
get "up" => "rails/health#show", :as => :rails_health_check
8385
end

spec/system/color_themes/customize_spec.rb renamed to spec/system/settings/color_schemes_spec.rb

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,18 @@
22

33
require "rails_helper"
44

5-
RSpec.describe "Customize Color Themes", type: :system do
6-
it "user can selected a curated color scale" do
5+
RSpec.describe "Customize Color Scheme", type: :system do
6+
it "user can selected a curated color scheme" do
77
curated_color_names = YAML.load_file(Rails.root.join("config", "curated_colors.yml")).sample(3)
88

99
curated_colors = curated_color_names.map do |name|
1010
FactoryBot.create(:color_scale, name: name)
1111
end
1212

13-
visit color_theme_path
13+
visit settings_color_scheme_path
1414

1515
chosen_color = curated_colors.second
16-
select chosen_color.display_name, from: "color_theme[color_scale_id]"
16+
select chosen_color.display_name, from: "settings[color_scale_id]"
1717

1818
click_button "Save this color scheme"
1919

0 commit comments

Comments
 (0)