Skip to content

Commit 6b4f9c2

Browse files
committed
Support description in snippet form
1 parent c513b5e commit 6b4f9c2

File tree

3 files changed

+21
-7
lines changed

3 files changed

+21
-7
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/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"

spec/requests/share/snippets_spec.rb

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,8 +87,14 @@
8787

8888
it "creates a new Snippet" do
8989
expect {
90-
post share_snippets_url, params: {snippet: {source: "puts \"Hello!\"", language: "ruby"}}
90+
post share_snippets_url, params: {snippet: {source: "puts \"Hello!\"", language: "ruby", filename: "hello.rb", description: "A simple greeting"}}
9191
}.to change(Snippet, :count).by(1)
92+
93+
snippet = Snippet.last
94+
expect(snippet.source).to eq("puts \"Hello!\"")
95+
expect(snippet.language).to eq("ruby")
96+
expect(snippet.filename).to eq("hello.rb")
97+
expect(snippet.description).to eq("A simple greeting")
9298
end
9399

94100
it "associates snippet with the current user" do

0 commit comments

Comments
 (0)