class Rubysmith::Builders::Bundler
Builds Bundler
Gemfile configuration and installs gem dependencies for project skeleton.
Public Class Methods
call(...)
click to toggle source
# File lib/rubysmith/builders/bundler.rb, line 13 def self.call(...) = new(...).call def initialize configuration, builder: Builder, client: ::Bundler::CLI @configuration = configuration @builder = builder @client = client end def call builder.call(configuration.with(template_path: "%project_name%/Gemfile.erb")) .render .replace(/\n\s+group/, "\n\ngroup") .replace(/\n\s+gem/, "\n gem") .replace(/ (?=.+(refinements|zeitwerk))/, "") .replace(/(\n+|\s+)end/, "\nend") .replace(/\n\ngroup :(code_quality|test|tools) do\nend/, "") .replace(/org"\n+/, "org\"\n\n") configuration.project_root.change_dir { client.start %w[install --quiet] } nil end private attr_reader :configuration, :builder, :client end
new(configuration, builder: Builder, client: ::Bundler::CLI)
click to toggle source
# File lib/rubysmith/builders/bundler.rb, line 15 def initialize configuration, builder: Builder, client: ::Bundler::CLI @configuration = configuration @builder = builder @client = client end
Public Instance Methods
call()
click to toggle source
# File lib/rubysmith/builders/bundler.rb, line 21 def call builder.call(configuration.with(template_path: "%project_name%/Gemfile.erb")) .render .replace(/\n\s+group/, "\n\ngroup") .replace(/\n\s+gem/, "\n gem") .replace(/ (?=.+(refinements|zeitwerk))/, "") .replace(/(\n+|\s+)end/, "\nend") .replace(/\n\ngroup :(code_quality|test|tools) do\nend/, "") .replace(/org"\n+/, "org\"\n\n") configuration.project_root.change_dir { client.start %w[install --quiet] } nil end