Skip to content

Commit 2a84b31

Browse files
authored
Merge pull request #209 from joyofrails/feat/snippet-content
Add description to code snippets
2 parents 40521b3 + 6ba89fe commit 2a84b31

File tree

13 files changed

+66
-22
lines changed

13 files changed

+66
-22
lines changed

app/controllers/share/snippets_controller.rb

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,18 +23,18 @@ def new
2323
source: "class User < ApplicationRecord\n\s\shas_many :posts\nend",
2424
language: "ruby"
2525
}
26-
@snippet = current_user.snippets.new(snippet_params.presence || default_params)
26+
@snippet = Current.user.snippets.new(snippet_params.presence || default_params)
2727
end
2828

2929
# GET /snippets/1/edit
3030
def edit
31-
@snippet = current_user.snippets.find(params[:id])
31+
@snippet = Current.user.snippets.find(params[:id])
3232
@snippet.assign_attributes(snippet_params)
3333
end
3434

3535
# POST /snippets
3636
def create
37-
@snippet = current_user.snippets.new(snippet_params)
37+
@snippet = Current.user.snippets.new(snippet_params)
3838

3939
if @snippet.save
4040
redirect_to share_snippet_redirect_url(@snippet), notice: "Your snippet has been saved".emojoy, status: :see_other
@@ -45,7 +45,7 @@ def create
4545

4646
# PATCH/PUT /snippets/1
4747
def update
48-
@snippet = current_user.snippets.find(params[:id])
48+
@snippet = Current.user.snippets.find(params[:id])
4949
if @snippet.update(snippet_params)
5050
@snippet.attach_screenshot_from_base64(params[:screenshot]) if params[:screenshot]
5151

@@ -57,7 +57,7 @@ def update
5757

5858
# DELETE /snippets/1
5959
def destroy
60-
@snippet = current_user.snippets.find(params[:id])
60+
@snippet = Current.user.snippets.find(params[:id])
6161
@snippet.destroy!
6262
redirect_to share_snippets_url, notice: "Your snippet has been deleted permanently".emojoy, status: :see_other
6363
end
@@ -77,7 +77,7 @@ def share_snippet_redirect_url(snippet)
7777

7878
# Only allow a list of trusted parameters through.
7979
def snippet_params
80-
params.fetch(:snippet, {}).permit(:filename, :source, :language)
80+
params.fetch(:snippet, {}).permit(:filename, :source, :language, :description)
8181
end
8282

8383
def feature_enabled!

app/views/admin/home/index.html.erb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ nav = {
88
%>
99
<article>
1010
<%= render Pages::Header.new(title: "Admin") %>
11-
<div class="section-content container">
11+
<div class="section-content container py-gap mb-3xl">
1212
<ul>
1313
<% nav.each do |label, url| %>
1414
<li>

app/views/components/code_block/container.rb

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,6 @@ def initialize(language: "plain", **options)
1010
end
1111

1212
def view_template(&)
13-
div(
14-
class: class_names("code-wrapper", "highlight", "language-#{language}", *classes),
15-
**options,
16-
&
17-
)
13+
div(class: class_names("code-wrapper", "highlight", "language-#{language}", *classes), **options, &)
1814
end
1915
end

app/views/components/layouts/front_door_form.rb

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,7 @@ def form_layout(&block)
3030
end
3131

3232
def form_with(**, &)
33-
super(
34-
class: "grid grid-row-tight",
35-
**,
36-
&
37-
)
33+
super(class: "grid grid-row-tight", **, &)
3834
end
3935

4036
def form_label(form, *args, **opts)

app/views/components/markdown/safe.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
class Markdown::Safe < Markdown::Base
2+
end

app/views/share/snippet_tweets/tweet_button.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ def share_url
2828
end
2929

3030
def tweet_text
31-
"Created with @joyofrails #{share_url}"
31+
[@snippet.description.presence, "Created with @joyofrails #{share_url}"].compact.join("\n\n")
3232
end
3333

3434
def encode(text)

app/views/share/snippets/form.rb

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,15 @@ def view_template
5353
fieldset do
5454
flex_block do
5555
language_select(form, data: {action: "change->snippet-preview#preview"})
56+
end
57+
end
5658

59+
fieldset do
60+
form.text_area :description, placeholder: "Say a few words about this code snippet", class: "w-full"
61+
end
62+
63+
fieldset do
64+
flex_block do
5765
plain form.submit "Share", class: "button primary"
5866

5967
plain form.submit "Save", class: "button secondary"

app/views/share/snippets/index.html.erb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@
88

99
<% @snippets.each do |snippet| %>
1010
<div id="<%= dom_id(snippet) %>" class="section-content mb-xl">
11-
<%= link_to share_snippet_path(snippet), class: "block" do %>
11+
<%= render Markdown::Safe.new(snippet.description) if snippet.description %>
12+
<%= link_to share_snippet_path(snippet), class: "section-content" do %>
1213
<%= render CodeBlock::Snippet.new(snippet) %>
1314
<% end %>
1415
<div>

app/views/share/snippets/show.html.erb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
<div class="section-content container py-gap mb-3xl">
1515
<%= turbo_frame_tag :snippet_form do %>
1616
<div class="section-content">
17+
<%= render Markdown::Safe.new(@snippet.description) if @snippet.description %>
1718
<%= render CodeBlock::Snippet.new(@snippet) %>
1819
<div>
1920
<%= render Share::Snippets::Toolbar.new(@snippet, current_user: current_user) %>
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
class AlterSnippetsChangeUrlToDescription < ActiveRecord::Migration[7.2]
2+
def up
3+
rename_column :snippets, :url, :description
4+
end
5+
6+
def down
7+
rename_column :snippets, :description, :url
8+
end
9+
end

0 commit comments

Comments
 (0)