From 7834d9e0dbdeb11c90b645b72cdd2d185a02741d Mon Sep 17 00:00:00 2001 From: Ashwin Maroli Date: Thu, 10 Oct 2019 15:38:27 +0530 Subject: [PATCH 1/2] Expose data file's basename as attribute `name` --- lib/jekyll-admin/data_file.rb | 6 ++++-- spec/jekyll-admin/data_file_spec.rb | 6 ++++++ spec/jekyll-admin/server/data_spec.rb | 10 ++++++++++ 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/lib/jekyll-admin/data_file.rb b/lib/jekyll-admin/data_file.rb index 73d9f7b50..2f7ab58b4 100644 --- a/lib/jekyll-admin/data_file.rb +++ b/lib/jekyll-admin/data_file.rb @@ -2,7 +2,7 @@ module JekyllAdmin class DataFile - METHODS_FOR_LIQUID = %w(path relative_path slug ext title).freeze + METHODS_FOR_LIQUID = %w(name path relative_path slug ext title).freeze EXTENSIONS = %w(yaml yml json csv).freeze include APIable @@ -94,9 +94,11 @@ def basename end def basename_with_extension - [basename, extension].join + "#{basename}#{extension}" end alias_method :filename, :basename_with_extension + alias_method :name, :basename_with_extension + public :name def namespace "data" diff --git a/spec/jekyll-admin/data_file_spec.rb b/spec/jekyll-admin/data_file_spec.rb index 116d4b12d..81f278682 100644 --- a/spec/jekyll-admin/data_file_spec.rb +++ b/spec/jekyll-admin/data_file_spec.rb @@ -28,12 +28,17 @@ expect(subject.slug).to eql("data_file") end + it "exposes the basename_with_extension as 'name'" do + expect(subject.name).to eql("data_file.yml") + end + it "exposes the title" do expect(subject.title).to eql("Data File") end it "returns the hash" do expect(subject.to_api).to eql( + "name" => "data_file.yml", "path" => "/_data/data_file.yml", "relative_path" => "data_file.yml", "slug" => "data_file", @@ -46,6 +51,7 @@ it "returns the hash with content" do expect(subject.to_api(:include_content => true)).to eql( + "name" => "data_file.yml", "path" => "/_data/data_file.yml", "relative_path" => "data_file.yml", "slug" => "data_file", diff --git a/spec/jekyll-admin/server/data_spec.rb b/spec/jekyll-admin/server/data_spec.rb index 43dbf805f..be56ec8a7 100644 --- a/spec/jekyll-admin/server/data_spec.rb +++ b/spec/jekyll-admin/server/data_spec.rb @@ -5,6 +5,7 @@ let(:base_response) do { + "name" => "data_file.yml", "path" => "/_data/data_file.yml", "relative_path" => "data_file.yml", "slug" => "data_file", @@ -44,6 +45,7 @@ def app get "/data/movies" expected_response = { + "name" => "actors.yml", "path" => "/_data/movies/actors.yml", "relative_path" => "movies/actors.yml", "slug" => "actors", @@ -61,6 +63,7 @@ def app get "/data/movies/actors.yml" expected_response = { + "name" => "actors.yml", "path" => "/_data/movies/actors.yml", "relative_path" => "movies/actors.yml", "slug" => "actors", @@ -82,6 +85,7 @@ def app delete_file "_data/data-file-new.yml" expected_response = { + "name" => "data-file-new.yml", "path" => "/_data/data-file-new.yml", "relative_path" => "data-file-new.yml", "slug" => "data-file-new", @@ -109,6 +113,7 @@ def app delete_file "_data/test-dir/data-file-new.yml" expected_response = { + "name" => "data-file-new.yml", "path" => "/_data/test-dir/data-file-new.yml", "relative_path" => "test-dir/data-file-new.yml", "slug" => "data-file-new", @@ -136,6 +141,7 @@ def app delete_file "_data/data-file-new.yml" expected_response = { + "name" => "data-file-new.yml", "path" => "/_data/data-file-new.yml", "relative_path" => "data-file-new.yml", "slug" => "data-file-new", @@ -163,6 +169,7 @@ def app delete_file "_data/test-dir/data-file-new.yml" expected_response = { + "name" => "data-file-new.yml", "path" => "/_data/test-dir/data-file-new.yml", "relative_path" => "test-dir/data-file-new.yml", "slug" => "data-file-new", @@ -190,6 +197,7 @@ def app write_file "_data/data-file-update.yml", "foo2: bar2" expected_response = { + "name" => "data-file-update.yml", "path" => "/_data/data-file-update.yml", "relative_path" => "data-file-update.yml", "slug" => "data-file-update", @@ -217,6 +225,7 @@ def app write_file "_data/test-dir/data-file-update.yml", "foo2: bar2" expected_response = { + "name" => "data-file-update.yml", "path" => "/_data/test-dir/data-file-update.yml", "relative_path" => "test-dir/data-file-update.yml", "slug" => "data-file-update", @@ -245,6 +254,7 @@ def app delete_file "_data/data-file-renamed.yml" expected_response = { + "name" => "data-file-renamed.yml", "path" => "/_data/data-file-renamed.yml", "relative_path" => "data-file-renamed.yml", "slug" => "data-file-renamed", From a2fe3c081cd961f5a3e3aaf425d610dabd37cd4f Mon Sep 17 00:00:00 2001 From: Ashwin Maroli Date: Fri, 11 Oct 2019 08:38:03 +0530 Subject: [PATCH 2/2] private method `:filename` isn't used anywhere --- lib/jekyll-admin/data_file.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/jekyll-admin/data_file.rb b/lib/jekyll-admin/data_file.rb index 2f7ab58b4..1073312fb 100644 --- a/lib/jekyll-admin/data_file.rb +++ b/lib/jekyll-admin/data_file.rb @@ -96,7 +96,6 @@ def basename def basename_with_extension "#{basename}#{extension}" end - alias_method :filename, :basename_with_extension alias_method :name, :basename_with_extension public :name