Add helper method plguins_json

Signed-off-by: Kenji Okimoto <okimoto@clear-code.com>
This commit is contained in:
Kenji Okimoto 2018-10-04 14:08:19 +09:00
parent 3bef15eae6
commit eb7c2cade3
No known key found for this signature in database
GPG Key ID: F9E3E329A5C5E4A1
2 changed files with 36 additions and 1 deletions

View File

@ -1,4 +1,6 @@
class PluginsController < ApplicationController
helper_method :plugins_json
def index
redirect_to installed_plugins_path
end
@ -19,7 +21,16 @@ class PluginsController < ApplicationController
params[:plugins].each do |gem_name|
GemInstallerJob.perform_later(gem_name)
end
redirect_to plugins_path
respond_to do |format|
format.html do
redirect_to plugins_path
end
format.json do
plugins = PluginDecorator.decorate_collection(Plugin.recommended.select {|item| params[:plugins].include?(item.gem_name)})
render json: plugins.map(&:to_hash).to_json
end
end
end
def uninstall
@ -41,4 +52,10 @@ class PluginsController < ApplicationController
end
redirect_to plugins_path
end
private
def plugins_json
JSON.pretty_generate(@plugins.map(&:to_hash))
end
end

View File

@ -10,4 +10,22 @@ class PluginDecorator < Draper::Decorator
I18n.t("terms.not_installed")
end
end
def to_hash
{
is_installed: installed?,
is_processing: processing?,
uninstall_button: "#plugin-modal-#{gem_name}",
name: gem_name,
authors: authors,
summary: summary,
api_version: api_version,
category: category,
status: status,
installed_version: installed_version,
latest_version: latest_version,
is_latest_version: latest_version?,
rubygems_org_page: rubygems_org_page
}
end
end