Sha256: 250d56985fa5e9d155e6d35dca79a7f6e521a128d8a392064d0e2c9c09556662
Contents?: true
Size: 1.41 KB
Versions: 22
Compression:
Stored size: 1.41 KB
Contents
# frozen_string_literal: true require 'active_support/core_ext/string/inflections' module GoNative module Plugins module IOS class Create autoload :FileUtils, 'fileutils' extend DSL::Serviceable TEMPLATE_DIRECTORY_PATH = File.expand_path(File.join(__dir__, '../../../..', 'templates', 'plugins', 'ios')) COMMON_TEMPLATES_PATH = File.join(TEMPLATE_DIRECTORY_PATH, 'common') LANGUAGES = %w[objc swift].freeze attr_reader :plugin_name, :language def initialize(plugin_name, language) @plugin_name = plugin_name @language = language end def call assert_not_exists! set_working_dir! cp_template_files! Utils::TemplateInflator.new(plugin_name: plugin_name, repo_name: repo_name).call end def assert_not_exists! return unless File.directory?(plugin_name) raise Error, "Directory #{plugin_name} already exists" end def set_working_dir! FileUtils.mkdir(plugin_name) FileUtils.cd(plugin_name) end def cp_template_files! FileUtils.cp_r("#{COMMON_TEMPLATES_PATH}/.", '.') system('ditto', File.join(TEMPLATE_DIRECTORY_PATH, 'language-specific', language), '.') end def repo_name plugin_name.underscore.dasherize.prepend 'ios-' end end end end end
Version data entries
22 entries across 22 versions & 1 rubygems