Skip to content

Commit 77de91b

Browse files
committed
MIGRATION: Rename color_scales as color_schemes
Migration drops old table (no records in production yet) and adds new table. Change also replaces all the file and class names with color scheme.
1 parent 32e721d commit 77de91b

File tree

17 files changed

+151
-104
lines changed

17 files changed

+151
-104
lines changed

app/controllers/application_controller.rb

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,17 @@ class ApplicationController < ActionController::Base
55
before_action :set_color_theme
66

77
def set_color_theme
8-
@color_scale = find_color_theme
8+
@color_scheme = find_color_theme
99
end
1010

1111
def find_color_theme
12-
if session[:color_scale_id]
12+
if session[:color_scheme_id]
1313
begin
14-
return ColorScale.find(session[:color_scale_id])
14+
return ColorScheme.find(session[:color_scheme_id])
1515
rescue ActiveRecord::RecordNotFound
1616
end
1717
end
1818

19-
ColorScale.cached_default
19+
ColorScheme.cached_default
2020
end
2121
end
Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,38 @@
11
class Settings::ColorSchemesController < ApplicationController
22
def show
3-
@color_scale = selected_color_scale || session_color_scale || ColorScale.cached_default
4-
@settings = Settings.new(color_scale: @color_scale)
3+
@color_scheme = selected_color_scheme || session_color_scheme || ColorScheme.cached_default
4+
@settings = Settings.new(color_scheme: @color_scheme)
55

66
render ColorSchemes::ShowView.new(
77
settings: @settings,
8-
fallback_color_scale: session_color_scale || ColorScale.cached_default,
9-
curated_color_scales: ColorScale.cached_curated,
10-
selected: selected_color_scale_id.present?,
11-
saved: session[:color_scale_id].presence == @color_scale.id
8+
fallback_color_scheme: session_color_scheme || ColorScheme.cached_default,
9+
curated_color_schemes: ColorScheme.cached_curated,
10+
selected: selected_color_scheme_id.present?,
11+
saved: session[:color_scheme_id].presence == @color_scheme.id
1212
)
1313
end
1414

1515
def update
16-
update_params = params[:settings] ? params.require(:settings).permit(:color_scale_id) : {}
17-
color_scale_id = update_params[:color_scale_id]
18-
@color_scale = ColorScale.find(color_scale_id)
16+
update_params = params[:settings] ? params.require(:settings).permit(:color_scheme_id) : {}
17+
color_scheme_id = update_params[:color_scheme_id]
18+
@color_scheme = ColorScheme.find(color_scheme_id)
1919

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

22-
if @color_scale == ColorScale.cached_default
23-
session.delete(:color_scale_id)
22+
if @color_scheme == ColorScheme.cached_default
23+
session.delete(:color_scheme_id)
2424
else
25-
session[:color_scale_id] = @color_scale.id
25+
session[:color_scheme_id] = @color_scheme.id
2626
end
2727

2828
redirect_to settings_color_scheme_path, status: :see_other
2929
end
3030

3131
private
3232

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

35-
def session_color_scale = session[:color_scale_id] && ColorScale.find(session[:color_scale_id])
35+
def session_color_scheme = session[:color_scheme_id] && ColorScheme.find(session[:color_scheme_id])
3636

37-
def selected_color_scale = selected_color_scale_id && ColorScale.find(selected_color_scale_id)
37+
def selected_color_scheme = selected_color_scheme_id && ColorScheme.find(selected_color_scheme_id)
3838
end

app/models/color_scale.rb renamed to app/models/color_scheme.rb

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

33
require "color_conversion"
44

5-
class ColorScale < ApplicationRecord
5+
class ColorScheme < ApplicationRecord
66
APP_DEFAULT = {
77
name: "Custom Cerulean Blue",
88
weights: {
@@ -28,7 +28,7 @@ def self.curated
2828
end
2929

3030
def self.cached_curated
31-
cache_key = "curated_color_scale_ids"
31+
cache_key = "curated_color_scheme_ids"
3232
cached_ids = Rails.cache.read(cache_key)
3333

3434
return where(id: cached_ids) if cached_ids
@@ -47,7 +47,7 @@ def self.find_or_create_default
4747
end
4848

4949
def self.cached_default
50-
cache_key = "default_color_scale_id"
50+
cache_key = "default_color_scheme_id"
5151
cached_id = Rails.cache.read(cache_key)
5252

5353
return where(id: cached_id).first if cached_id

app/models/settings.rb

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
class Settings
22
include ActiveModel::Model
33

4-
attr_accessor :color_scale
4+
attr_accessor :color_scheme
55

6-
def initialize(color_scale:)
7-
@color_scale = color_scale
6+
def initialize(color_scheme:)
7+
@color_scheme = color_scheme
88
end
99

10-
def color_scale_id = color_scale.id
10+
def color_scheme_id = color_scheme.id
1111
end
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<style>
22
:root {
3-
<%= render ColorScales::Css.new(color_scale: @color_scale || ColorScale.find_or_create_default) %>
3+
<%= render ColorSchemes::Css.new(color_scheme: @color_scheme || ColorScheme.find_or_create_default) %>
44
}
55
</style>

app/views/color_schemes/show_view.rb

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@ class ColorSchemes::ShowView < ApplicationView
66
include Phlex::Rails::Helpers::ButtonTo
77
include Phlex::Rails::Helpers::ContentFor
88

9-
def initialize(settings:, fallback_color_scale: nil, curated_color_scales: [], selected: false, saved: false)
9+
def initialize(settings:, fallback_color_scheme: nil, curated_color_schemes: [], selected: false, saved: false)
1010
@settings = settings
11-
@color_scale = settings.color_scale
12-
@fallback_color_scale = fallback_color_scale
13-
@curated_color_scales = curated_color_scales
11+
@color_scheme = settings.color_scheme
12+
@fallback_color_scheme = fallback_color_scheme
13+
@curated_color_schemes = curated_color_schemes
1414
@selected = selected
1515
@saved = saved
1616
end
@@ -19,13 +19,13 @@ def view_template
1919
content_for :head do
2020
render("application/theme/color")
2121
end
22-
render Pages::Header.new(title: "Theme")
22+
render Pages::Header.new(title: "Theme: Color")
2323
div(class: "section-content container py-gap") do
2424
if @saved || @selected
2525
h3 do
2626
plain "You are now #{@saved ? "using" : "previewing"} the"
2727
whitespace
28-
span(class: "emphasis") { @color_scale.display_name }
28+
span(class: "emphasis") { @color_scheme.display_name }
2929
whitespace
3030
plain "color scheme"
3131
end
@@ -41,11 +41,11 @@ def view_template
4141
form_with(model: @settings, url: url_for, method: :get) do |f|
4242
fieldset do
4343
f.select(
44-
:color_scale_id,
45-
@curated_color_scales.map { |cs| [cs.display_name, cs.id] },
44+
:color_scheme_id,
45+
@curated_color_schemes.map { |cs| [cs.display_name, cs.id] },
4646
{
4747
prompt: "Pick one!",
48-
selected: @selected && @color_scale.id
48+
selected: @selected && @color_scheme.id
4949
},
5050
# requestSubmit and Turbo
5151
# https://stackoverflow.com/questions/68624668/how-can-i-submit-a-form-on-input-change-with-turbo-streams
@@ -58,14 +58,14 @@ def view_template
5858
span(class: "mr-2 text-small") { "OR" }
5959

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

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

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

7878
button_to "Save this color scheme",
79-
settings_color_scheme_path(settings: {color_scale_id: @color_scale.id}),
79+
settings_color_scheme_path(settings: {color_scheme_id: @color_scheme.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-
settings_color_scheme_path(settings: {color_scale_id: ColorScale.cached_default.id}),
86+
settings_color_scheme_path(settings: {color_scheme_id: ColorScheme.cached_default.id}),
8787
method: :patch,
8888
class: "button tertiary mr-2"
8989
end
9090
end
9191

9292
h3 { display_name }
9393

94-
div(class: "color-scheme color-scheme__#{@color_scale.name.parameterize}") do
95-
@color_scale.weights.each do |weight, color|
94+
div(class: "color-scheme color-scheme__#{@color_scheme.name.parameterize}") do
95+
@color_scheme.weights.each do |weight, color|
9696
div(class: "color-swatch color-swatch__weight:#{weight}", style: "background-color: #{color.hex}") do
9797
div(class: "color-swatch__weight") { weight }
9898
div(class: "color-swatch__color") { color.hex.delete("#").upcase }
@@ -104,13 +104,13 @@ def view_template
104104

105105
private
106106

107-
def default_color_scale? = @color_scale.id == ColorScale.cached_default.id
107+
def default_color_scheme? = @color_scheme.id == ColorScheme.cached_default.id
108108

109109
def display_name
110-
if default_color_scale?
111-
"#{@color_scale.display_name} (default)"
110+
if default_color_scheme?
111+
"#{@color_scheme.display_name} (default)"
112112
else
113-
@color_scale.display_name
113+
@color_scheme.display_name
114114
end
115115
end
116116
end

app/views/components/color_scales/css.rb renamed to app/views/components/color_schemes/css.rb

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
class ColorScales::Css < Phlex::HTML
2-
attr_reader :color_scale
1+
class ColorSchemes::Css < Phlex::HTML
2+
attr_reader :color_scheme
33

4-
def initialize(color_scale:)
5-
@color_scale = color_scale
4+
def initialize(color_scheme:)
5+
@color_scheme = color_scheme
66
end
77

88
def color_name
9-
color_scale.name.parameterize
9+
color_scheme.name.parameterize
1010
end
1111

1212
def to_hsla_css(color)
@@ -15,10 +15,10 @@ def to_hsla_css(color)
1515
end
1616

1717
def view_template
18-
color_scale.weights.each do |weight, color|
18+
color_scheme.weights.each do |weight, color|
1919
unsafe_raw "--color-#{color_name}-#{weight}: #{to_hsla_css(color)};\n"
2020
end
21-
color_scale.weights.each do |weight, color|
21+
color_scheme.weights.each do |weight, color|
2222
unsafe_raw "--my-color-#{weight}: var(--color-#{color_name}-#{weight});\n"
2323
end
2424
end
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
class DropColorScales < ActiveRecord::Migration[7.1]
2+
def up
3+
drop_table :color_scales
4+
end
5+
6+
def down
7+
create_table :color_scales, force: true, id: false do |t|
8+
t.primary_key :id, :string, default: -> { "ULID()" }
9+
t.string :name, null: false
10+
t.string :weight_50, null: false
11+
t.string :weight_100, null: false
12+
t.string :weight_200, null: false
13+
t.string :weight_300, null: false
14+
t.string :weight_400, null: false
15+
t.string :weight_500, null: false
16+
t.string :weight_600, null: false
17+
t.string :weight_700, null: false
18+
t.string :weight_800, null: false
19+
t.string :weight_900, null: false
20+
t.string :weight_950, null: false
21+
22+
t.timestamps
23+
end
24+
end
25+
end
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
class CreateColorSchemes < ActiveRecord::Migration[7.1]
2+
def change
3+
create_table :color_schemes, force: true, id: false do |t|
4+
t.primary_key :id, :string, default: -> { "ULID()" }
5+
t.string :name, null: false, index: {unique: true}
6+
t.string :weight_50, null: false
7+
t.string :weight_100, null: false
8+
t.string :weight_200, null: false
9+
t.string :weight_300, null: false
10+
t.string :weight_400, null: false
11+
t.string :weight_500, null: false
12+
t.string :weight_600, null: false
13+
t.string :weight_700, null: false
14+
t.string :weight_800, null: false
15+
t.string :weight_900, null: false
16+
t.string :weight_950, null: false
17+
18+
t.timestamps
19+
end
20+
end
21+
end

db/schema.rb

Lines changed: 3 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)