diff --git a/Gemfile.lock b/Gemfile.lock index d180556..f9c5ee4 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: . specs: - mono_repo_deps (0.2.1) + mona (0.2.3) dry-auto_inject (~> 1.0.1) dry-configurable (~> 1.0.1) dry-container (~> 0.11.0) @@ -15,7 +15,7 @@ GEM remote: https://rubygems.org/ specs: coderay (1.1.3) - concurrent-ruby (1.2.2) + concurrent-ruby (1.3.4) diff-lcs (1.5.0) dry-auto_inject (1.0.1) dry-core (~> 1.0) @@ -28,7 +28,7 @@ GEM dry-core (1.0.0) concurrent-ruby (~> 1.0) zeitwerk (~> 2.6) - dry-inflector (1.0.0) + dry-inflector (1.1.0) dry-system (1.0.1) dry-auto_inject (~> 1.0, < 2) dry-configurable (~> 1.0, < 2) @@ -52,17 +52,19 @@ GEM diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.12.0) rspec-support (3.12.1) - sorbet-runtime (0.5.11221) - thor (1.3.0) - zeitwerk (2.6.12) + sorbet-runtime (0.5.11647) + thor (1.3.2) + zeitwerk (2.6.18) PLATFORMS + x86_64-darwin-19 x86_64-darwin-21 + x86_64-darwin-23 x86_64-linux DEPENDENCIES bundler (~> 2.2) - mono_repo_deps! + mona! pry rake (~> 13.0) rspec (~> 3.0) diff --git a/README.md b/README.md index a629edb..26704b0 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# MonoRepoDeps +# Mona Dependency manager to split and organize Ruby modules and namespaces into highlevel packages and manage relations between them Next version of [Rdm gem](https://github.com/droidlabs/rdm) @@ -12,7 +12,7 @@ Main goal to implement the gem was to give developers an ability to keep a large ## Example Project File Structure ```bash - ├── MonoRepoConfig.rb + ├── Monafile.rb ├── Gemfile ├── Gemfile.lock ├── bounded_contexts @@ -50,7 +50,7 @@ Main goal to implement the gem was to give developers an ability to keep a large ``` ## Package - The main MonoRepoDeps entity is the "package". + The main Mona entity is the "package". Package configuration is defined in Package.rb file. Each package also have an 'entrypoint' file, which can be defined as package namespace module. @@ -85,31 +85,31 @@ Main goal to implement the gem was to give developers an ability to keep a large ```bash #!/usr/bin/env ruby require 'bundler/setup' - require 'mono_repo_deps' - MonoRepoDeps.init_package + require 'mona' + Mona.init_package Orders::ExportOrders.new.call ``` - Let's take a look at ```MonoRepoDeps.init_package``` command. That is the core feature of MonoRepoDeps and it does the following actions + Let's take a look at ```Mona.init_package``` command. That is the core feature of Mona and it does the following actions 1. Detect which package the caller file belongs to You can also provide that file directly using 'from:' parameter - ```MonoRepoDeps.init_package(from: __FILE__)``` + ```Mona.init_package(from: __FILE__)``` or providing package name - ```MonoRepoDeps.init_package('orders')``` + ```Mona.init_package('orders')``` 2. Build dependencies tree: inside each project we have ```dependency do; end``` block which is provide us information which packages should be loaded before the current one 3. For each file in dependency tree: * Using Project Code Loader to autoload/preload package classes and modules * Call ```require``` for entrypoint file ## Configs - MonoRepoDeps Configs provides interface to declare and access key-value storage can be specified for certain environment + Mona Configs provides interface to declare and access key-value storage can be specified for certain environment - Instead of using ENV['SOME_VARIABLE_NAME'] in your ruby files you can set up MonoRepoDeps Configs and use env variables in your code like this: + Instead of using ENV['SOME_VARIABLE_NAME'] in your ruby files you can set up Mona Configs and use env variables in your code like this: ```ruby - MonoRepoDeps.configs.api_client.some_variable_name + Mona.configs.api_client.some_variable_name ``` - Let's define MonoRepoDeps Config for ```api_client``` + Let's define Mona Config for ```api_client``` ```yml # ./configs/api_client/default.yml api_client: @@ -120,13 +120,13 @@ Main goal to implement the gem was to give developers an ability to keep a large some_variable_name: ENV['SOME_VARIABLE_NAME'] + ENV['TEST_ENV_NUMBER'] ``` - Rdm looks up for configs in directory have been set in MonoRepoConfig.rb file with ```set_configs_dir``` method + Rdm looks up for configs in directory have been set in Monafile.rb file with ```set_configs_dir``` method Each config has at least default.yml configuration which can be complemented with :env.yml files - Running ```MonoRepoDeps.init_package``` with specified :env will check if corresponding :env.yml file exists and merge it's values to the default configuration + Running ```Mona.init_package``` with specified :env will check if corresponding :env.yml file exists and merge it's values to the default configuration ## Project - The 2 main entities within MonoRepoDeps project are 'project' and 'package' - Project declaration stored in MonoRepoConfig.rb and a parent directory of the file is considered as the project root + The 2 main entities within Mona project are 'project' and 'package' + Project declaration stored in Monafile.rb and a parent directory of the file is considered as the project root ### Project Configuration File Example @@ -170,11 +170,11 @@ Main goal to implement the gem was to give developers an ability to keep a large ``` ## Tasks - MonoRepoDeps tasks are an easy way to declare some procedures can be called on you packages/package + Mona tasks are an easy way to declare some procedures can be called on you packages/package ### Examples ```ruby - # MonoRepoConfig.rb + # Monafile.rb setup do |project| # ... register_task :puts_package_name, on: :package do |package, args| @@ -186,8 +186,8 @@ Main goal to implement the gem was to give developers an ability to keep a large You can call defined task that way: ```ruby - MonoRepoDeps.tasks.puts_package_name( - packages: MonoRepoDeps.packages.filter(name: "orders"), + Mona.tasks.puts_package_name( + packages: Mona.packages.filter(name: "orders"), args: [1, 2, 3] ) ``` \ No newline at end of file diff --git a/bin/console b/bin/console index 8ab75ce..b7a6601 100755 --- a/bin/console +++ b/bin/console @@ -2,7 +2,7 @@ # frozen_string_literal: true require "bundler/setup" -require "mono_repo_deps" +require "mona" # You can add fixtures and/or initialization code here to make experimenting # with your gem easier. You can also use a different console, if you like. diff --git a/example/Gemfile b/example/Gemfile index 0342185..8b86d87 100644 --- a/example/Gemfile +++ b/example/Gemfile @@ -1 +1 @@ -gem 'mono_repo_deps', path: '../' \ No newline at end of file +gem 'mona', path: '../' diff --git a/example/Gemfile.lock b/example/Gemfile.lock index a2480b8..233fb10 100644 --- a/example/Gemfile.lock +++ b/example/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: .. specs: - mono_repo_deps (0.1.13) + mona (0.1.13) dry-auto_inject (~> 1.0.1) dry-configurable (~> 1.0.1) dry-container (~> 0.11.0) @@ -45,7 +45,7 @@ PLATFORMS x86_64-linux DEPENDENCIES - mono_repo_deps! + mona! BUNDLED WITH 2.4.20 diff --git a/example/MonoRepoConfig.rb b/example/Monafile.rb similarity index 100% rename from example/MonoRepoConfig.rb rename to example/Monafile.rb diff --git a/example/bounded_contexts/cart/cart_app/bin/console b/example/bounded_contexts/cart/cart_app/bin/console index 2937b76..1731df3 100755 --- a/example/bounded_contexts/cart/cart_app/bin/console +++ b/example/bounded_contexts/cart/cart_app/bin/console @@ -1,11 +1,11 @@ #!/usr/bin/env ruby require 'bundler/setup' -require 'mono_repo_deps' +require 'mona' -# MonoRepoDeps.init(__dir__) +# Mona.init(__dir__) -MonoRepoDeps.import_package(:storefront_core) +Mona.import_package(:storefront_core) require 'irb' -IRB.start \ No newline at end of file +IRB.start diff --git a/example/bounded_contexts/cart/cart_core/bin/console b/example/bounded_contexts/cart/cart_core/bin/console index 63da631..1b30919 100755 --- a/example/bounded_contexts/cart/cart_core/bin/console +++ b/example/bounded_contexts/cart/cart_core/bin/console @@ -1,9 +1,9 @@ #!/usr/bin/env ruby require 'bundler/setup' -require 'mono_repo_deps' +require 'mona' -MonoRepoDeps.init(__dir__) +Mona.init(__dir__) require 'irb' -IRB.start \ No newline at end of file +IRB.start diff --git a/example/bounded_contexts/cart/cart_datasets/bin/console b/example/bounded_contexts/cart/cart_datasets/bin/console index 63da631..1b30919 100755 --- a/example/bounded_contexts/cart/cart_datasets/bin/console +++ b/example/bounded_contexts/cart/cart_datasets/bin/console @@ -1,9 +1,9 @@ #!/usr/bin/env ruby require 'bundler/setup' -require 'mono_repo_deps' +require 'mona' -MonoRepoDeps.init(__dir__) +Mona.init(__dir__) require 'irb' -IRB.start \ No newline at end of file +IRB.start diff --git a/example/bounded_contexts/orders/orders_app/bin/console b/example/bounded_contexts/orders/orders_app/bin/console index 63da631..1b30919 100755 --- a/example/bounded_contexts/orders/orders_app/bin/console +++ b/example/bounded_contexts/orders/orders_app/bin/console @@ -1,9 +1,9 @@ #!/usr/bin/env ruby require 'bundler/setup' -require 'mono_repo_deps' +require 'mona' -MonoRepoDeps.init(__dir__) +Mona.init(__dir__) require 'irb' -IRB.start \ No newline at end of file +IRB.start diff --git a/example/bounded_contexts/orders/orders_core/bin/console b/example/bounded_contexts/orders/orders_core/bin/console index 63da631..1b30919 100755 --- a/example/bounded_contexts/orders/orders_core/bin/console +++ b/example/bounded_contexts/orders/orders_core/bin/console @@ -1,9 +1,9 @@ #!/usr/bin/env ruby require 'bundler/setup' -require 'mono_repo_deps' +require 'mona' -MonoRepoDeps.init(__dir__) +Mona.init(__dir__) require 'irb' -IRB.start \ No newline at end of file +IRB.start diff --git a/example/bounded_contexts/orders/orders_datasets/bin/console b/example/bounded_contexts/orders/orders_datasets/bin/console index 63da631..1b30919 100755 --- a/example/bounded_contexts/orders/orders_datasets/bin/console +++ b/example/bounded_contexts/orders/orders_datasets/bin/console @@ -1,9 +1,9 @@ #!/usr/bin/env ruby require 'bundler/setup' -require 'mono_repo_deps' +require 'mona' -MonoRepoDeps.init(__dir__) +Mona.init(__dir__) require 'irb' -IRB.start \ No newline at end of file +IRB.start diff --git a/example/bounded_contexts/orders/orders_query_api/bin/console b/example/bounded_contexts/orders/orders_query_api/bin/console index 63da631..1b30919 100755 --- a/example/bounded_contexts/orders/orders_query_api/bin/console +++ b/example/bounded_contexts/orders/orders_query_api/bin/console @@ -1,9 +1,9 @@ #!/usr/bin/env ruby require 'bundler/setup' -require 'mono_repo_deps' +require 'mona' -MonoRepoDeps.init(__dir__) +Mona.init(__dir__) require 'irb' -IRB.start \ No newline at end of file +IRB.start diff --git a/example/bounded_contexts/orders/paypal_client/bin/console b/example/bounded_contexts/orders/paypal_client/bin/console index 63da631..1b30919 100755 --- a/example/bounded_contexts/orders/paypal_client/bin/console +++ b/example/bounded_contexts/orders/paypal_client/bin/console @@ -1,9 +1,9 @@ #!/usr/bin/env ruby require 'bundler/setup' -require 'mono_repo_deps' +require 'mona' -MonoRepoDeps.init(__dir__) +Mona.init(__dir__) require 'irb' -IRB.start \ No newline at end of file +IRB.start diff --git a/example/bounded_contexts/shared/db_connection/bin/console b/example/bounded_contexts/shared/db_connection/bin/console index 63da631..1b30919 100755 --- a/example/bounded_contexts/shared/db_connection/bin/console +++ b/example/bounded_contexts/shared/db_connection/bin/console @@ -1,9 +1,9 @@ #!/usr/bin/env ruby require 'bundler/setup' -require 'mono_repo_deps' +require 'mona' -MonoRepoDeps.init(__dir__) +Mona.init(__dir__) require 'irb' -IRB.start \ No newline at end of file +IRB.start diff --git a/example/bounded_contexts/shared/test_utils/bin/console b/example/bounded_contexts/shared/test_utils/bin/console index 63da631..1b30919 100755 --- a/example/bounded_contexts/shared/test_utils/bin/console +++ b/example/bounded_contexts/shared/test_utils/bin/console @@ -1,9 +1,9 @@ #!/usr/bin/env ruby require 'bundler/setup' -require 'mono_repo_deps' +require 'mona' -MonoRepoDeps.init(__dir__) +Mona.init(__dir__) require 'irb' -IRB.start \ No newline at end of file +IRB.start diff --git a/example/bounded_contexts/storefront/storefront_app/bin/console b/example/bounded_contexts/storefront/storefront_app/bin/console index 63da631..1b30919 100755 --- a/example/bounded_contexts/storefront/storefront_app/bin/console +++ b/example/bounded_contexts/storefront/storefront_app/bin/console @@ -1,9 +1,9 @@ #!/usr/bin/env ruby require 'bundler/setup' -require 'mono_repo_deps' +require 'mona' -MonoRepoDeps.init(__dir__) +Mona.init(__dir__) require 'irb' -IRB.start \ No newline at end of file +IRB.start diff --git a/example/bounded_contexts/storefront/storefront_core/bin/console b/example/bounded_contexts/storefront/storefront_core/bin/console index 63da631..1b30919 100755 --- a/example/bounded_contexts/storefront/storefront_core/bin/console +++ b/example/bounded_contexts/storefront/storefront_core/bin/console @@ -1,9 +1,9 @@ #!/usr/bin/env ruby require 'bundler/setup' -require 'mono_repo_deps' +require 'mona' -MonoRepoDeps.init(__dir__) +Mona.init(__dir__) require 'irb' -IRB.start \ No newline at end of file +IRB.start diff --git a/example/bounded_contexts/storefront/storefront_datasets/bin/console b/example/bounded_contexts/storefront/storefront_datasets/bin/console index 63da631..1b30919 100755 --- a/example/bounded_contexts/storefront/storefront_datasets/bin/console +++ b/example/bounded_contexts/storefront/storefront_datasets/bin/console @@ -1,9 +1,9 @@ #!/usr/bin/env ruby require 'bundler/setup' -require 'mono_repo_deps' +require 'mona' -MonoRepoDeps.init(__dir__) +Mona.init(__dir__) require 'irb' -IRB.start \ No newline at end of file +IRB.start diff --git a/exe/mona b/exe/mona new file mode 100755 index 0000000..a229d42 --- /dev/null +++ b/exe/mona @@ -0,0 +1,15 @@ +#!/usr/bin/env ruby +# frozen_string_literal: true + +require "bundler/setup" +require "mona" +require "thor" + +class MonaCli < Thor + desc "mona cd PACKAGE", "go to PACKAGE" + def cd(package) + puts "cd #{Mona.packages(File.expand_path(".")).find(package.to_sym).root_path}" + end +end + +MonaCli.start(ARGV) diff --git a/exe/mono_repo_deps b/exe/mono_repo_deps deleted file mode 100755 index 6528791..0000000 --- a/exe/mono_repo_deps +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/env ruby -# frozen_string_literal: true - -require "bundler/setup" -require "mono_repo_deps" -require "thor" - -class MonoRepoDepsCli < Thor - desc "mono_repo cd PACKAGE", "go to PACKAGE" - def cd(package) - puts "cd #{MonoRepoDeps.packages(File.expand_path(".")).find(package.to_sym).root_path}" - end -end - -MonoRepoDepsCli.start(ARGV) \ No newline at end of file diff --git a/exe/mrd b/exe/mrd deleted file mode 100755 index e290ba8..0000000 --- a/exe/mrd +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/env ruby -# frozen_string_literal: true - -require "bundler/setup" -require "mono_repo_deps" -require "thor" - -class MonoRepoDepsCli < Thor - desc "mono_repo cd PACKAGE", "go to PACKAGE" - def path(package) - puts "cd #{MonoRepoDeps.packages(File.expand_path(".")).find!(package.to_sym).root_path}" - end -end - -MonoRepoDepsCli.start(ARGV) \ No newline at end of file diff --git a/lib/mono_repo_deps.rb b/lib/mona.rb similarity index 90% rename from lib/mono_repo_deps.rb rename to lib/mona.rb index cf4c8c4..873d73f 100644 --- a/lib/mono_repo_deps.rb +++ b/lib/mona.rb @@ -1,21 +1,23 @@ # frozen_string_literal: true -require 'mono_repo_deps/version' +require 'mona/version' require 'dry/system' require 'benchmark' require "zeitwerk" require 'pry' -module MonoRepoDeps +module Mona class Error < StandardError; end - PROJECT_FILENAME = 'MonoRepoConfig.rb' + PROJECT_FILENAME = 'Monafile.rb' PACKAGE_FILENAME = 'Package.rb' module Mixins def self.included(base) require 'sorbet-runtime' + T::Private::RuntimeLevels.default_checked_level = :never + base.extend T::Sig end end @@ -27,8 +29,8 @@ class Container < Dry::System::Container configure do |config| config.root = __dir__ - config.component_dirs.add 'mono_repo_deps' do |dir| - dir.namespaces.add nil, key: nil, const: "mono_repo_deps" + config.component_dirs.add 'mona' do |dir| + dir.namespaces.add nil, key: nil, const: "mona" end end end diff --git a/lib/mono_repo_deps/config.rb b/lib/mona/config.rb similarity index 93% rename from lib/mono_repo_deps/config.rb rename to lib/mona/config.rb index 09a6a0b..575d31a 100644 --- a/lib/mono_repo_deps/config.rb +++ b/lib/mona/config.rb @@ -1,4 +1,4 @@ -class MonoRepoDeps::Config +class Mona::Config def initialize(attributes = {}) @attributes = attributes end @@ -20,4 +20,4 @@ def to_h h[k] = self.class === v ? v.to_h : v end end -end \ No newline at end of file +end diff --git a/lib/mono_repo_deps/config/loader.rb b/lib/mona/config/loader.rb similarity index 73% rename from lib/mono_repo_deps/config/loader.rb rename to lib/mona/config/loader.rb index d858c57..d2868b0 100644 --- a/lib/mono_repo_deps/config/loader.rb +++ b/lib/mona/config/loader.rb @@ -2,8 +2,8 @@ require 'erb' require 'ostruct' -class MonoRepoDeps::Config::Loader - include MonoRepoDeps::Mixins +class Mona::Config::Loader + include Mona::Mixins DEFAULT_CONFIG_FILENAME = 'default.yml' @@ -11,15 +11,15 @@ class MonoRepoDeps::Config::Loader params( config_name: T.any(String, Symbol), ) - .returns(MonoRepoDeps::Config) + .returns(Mona::Config) end def call(config_name) config_name = config_name.to_s - config = MonoRepoDeps::Config.new + config = Mona::Config.new default_config_filename = File.join( - MonoRepoDeps.current_project.root_path, - MonoRepoDeps.current_project.configs_dir, + Mona.current_project.root_path, + Mona.current_project.configs_dir, config_name, DEFAULT_CONFIG_FILENAME ) @@ -41,10 +41,10 @@ def call(config_name) ) env_config_filename = File.join( - MonoRepoDeps.current_project.root_path, - MonoRepoDeps.current_project.configs_dir, + Mona.current_project.root_path, + Mona.current_project.configs_dir, config_name, - "#{MonoRepoDeps.current_project.env}.yml" + "#{Mona.current_project.env}.yml" ) hash_to_config( @@ -61,8 +61,8 @@ def hash_to_config(hash:, config:) hash.each do |key, value| if value.is_a?(Hash) nested_config = config.read_attribute(key) - if nested_config.nil? || !nested_config.is_a?(MonoRepoDeps::Config) - nested_config = MonoRepoDeps::Config.new + if nested_config.nil? || !nested_config.is_a?(Mona::Config) + nested_config = Mona::Config.new end hash_to_config(hash: value, config: nested_config) config.write_attribute(key, nested_config) diff --git a/lib/mono_repo_deps/config/manager.rb b/lib/mona/config/manager.rb similarity index 63% rename from lib/mono_repo_deps/config/manager.rb rename to lib/mona/config/manager.rb index 6131cf6..e42b93d 100644 --- a/lib/mono_repo_deps/config/manager.rb +++ b/lib/mona/config/manager.rb @@ -1,7 +1,7 @@ -class MonoRepoDeps::Config::Manager - include MonoRepoDeps::Mixins +class Mona::Config::Manager + include Mona::Mixins - Inject = MonoRepoDeps::Deps[ + Inject = Mona::Deps[ config_loader: "config.loader" ] @@ -12,7 +12,7 @@ class MonoRepoDeps::Config::Manager method_name: Symbol, args: T.anything ) - .returns(MonoRepoDeps::Config) + .returns(Mona::Config) end def method_missing(method_name, *args) config_loader.call(method_name) diff --git a/lib/mono_repo_deps/loaders/base.rb b/lib/mona/loaders/base.rb similarity index 94% rename from lib/mono_repo_deps/loaders/base.rb rename to lib/mona/loaders/base.rb index 5130ce8..3aadaf5 100644 --- a/lib/mono_repo_deps/loaders/base.rb +++ b/lib/mona/loaders/base.rb @@ -1,5 +1,5 @@ -class MonoRepoDeps::Loaders::Base - include MonoRepoDeps::Mixins +class Mona::Loaders::Base + include Mona::Mixins class << self def registry diff --git a/lib/mono_repo_deps/loaders/zeitwerk.rb b/lib/mona/loaders/zeitwerk.rb similarity index 91% rename from lib/mono_repo_deps/loaders/zeitwerk.rb rename to lib/mona/loaders/zeitwerk.rb index 4d523c9..5cf447d 100644 --- a/lib/mono_repo_deps/loaders/zeitwerk.rb +++ b/lib/mona/loaders/zeitwerk.rb @@ -1,8 +1,8 @@ require 'zeitwerk' require 'benchmark' -class MonoRepoDeps::Loaders::Zeitwerk < MonoRepoDeps::Loaders::Base - include MonoRepoDeps::Mixins +class Mona::Loaders::Zeitwerk < Mona::Loaders::Base + include Mona::Mixins ERROR_MESSAGE_REGEX = /expected file (?[\w\/]+.rb) to define constant (?[\w:]+)/ @@ -54,7 +54,7 @@ def check_classes def apply_rules_for(entity) @autoload_dirs.uniq.each { entity.push_dir(_1) } @ignore_dirs.uniq - .map { File.join(MonoRepoDeps.current_project.root_path, _1) } + .map { File.join(Mona.current_project.root_path, _1) } .each { entity.ignore( _1 ) } entity.inflector.inflect(@inflections) diff --git a/lib/mono_repo_deps/package.rb b/lib/mona/package.rb similarity index 94% rename from lib/mono_repo_deps/package.rb rename to lib/mona/package.rb index 90c665b..8197fa5 100644 --- a/lib/mono_repo_deps/package.rb +++ b/lib/mona/package.rb @@ -1,5 +1,5 @@ -class MonoRepoDeps::Package - include MonoRepoDeps::Mixins +class Mona::Package + include Mona::Mixins attr_reader :name, :root_path, :dependencies, :configs diff --git a/lib/mono_repo_deps/package/builder.rb b/lib/mona/package/builder.rb similarity index 69% rename from lib/mono_repo_deps/package/builder.rb rename to lib/mona/package/builder.rb index 70814aa..aa7d91d 100644 --- a/lib/mono_repo_deps/package/builder.rb +++ b/lib/mona/package/builder.rb @@ -1,7 +1,7 @@ -class MonoRepoDeps::Package::Builder - include MonoRepoDeps::Mixins +class Mona::Package::Builder + include Mona::Mixins - Inject = MonoRepoDeps::Deps[ + Inject = Mona::Deps[ "package.find_root", "package.factory" ] @@ -14,11 +14,11 @@ class MonoRepoDeps::Package::Builder project_root: String, package_dirname: String ) - .returns(MonoRepoDeps::Package) + .returns(Mona::Package) end def call(package_path, project_root, package_dirname) package_root_path = find_root.call(package_path, project_root) - package_file_path = "#{package_root_path}/#{MonoRepoDeps::PACKAGE_FILENAME}" + package_file_path = "#{package_root_path}/#{Mona::PACKAGE_FILENAME}" package_init_proc = proc { instance_eval(File.read(package_file_path)) } diff --git a/lib/mono_repo_deps/package/dependency_bypasser.rb b/lib/mona/package/dependency_bypasser.rb similarity index 82% rename from lib/mono_repo_deps/package/dependency_bypasser.rb rename to lib/mona/package/dependency_bypasser.rb index 1f01f43..947afe4 100644 --- a/lib/mono_repo_deps/package/dependency_bypasser.rb +++ b/lib/mona/package/dependency_bypasser.rb @@ -1,9 +1,9 @@ require 'set' -class MonoRepoDeps::Package::DependencyBypasser - include MonoRepoDeps::Mixins +class Mona::Package::DependencyBypasser + include Mona::Mixins - Inject = MonoRepoDeps::Deps[ + Inject = Mona::Deps[ packages_repo: "package.repo" ] @@ -34,7 +34,7 @@ def walk(package_name:, env:, imported:, packages_order: []) package_name: name, imported: imported, packages_order: packages_order, - env: MonoRepoDeps::Package::DEFAULT_ENV, + env: Mona::Package::DEFAULT_ENV, ) end diff --git a/lib/mono_repo_deps/package/factory.rb b/lib/mona/package/factory.rb similarity index 84% rename from lib/mono_repo_deps/package/factory.rb rename to lib/mona/package/factory.rb index deaeb29..b808203 100644 --- a/lib/mono_repo_deps/package/factory.rb +++ b/lib/mona/package/factory.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -class MonoRepoDeps::Package::Factory - include MonoRepoDeps::Mixins +class Mona::Package::Factory + include Mona::Mixins sig do params( @@ -8,15 +8,15 @@ class MonoRepoDeps::Package::Factory package_dirname: String, init_proc: T.proc.params(args: T.anything).returns(T.anything) ) - .returns(MonoRepoDeps::Package) + .returns(Mona::Package) end def call(package_root, package_dirname, init_proc:) @dependencies = Hash.new { |h, k| h[k] = [] } - @current_env = MonoRepoDeps::Package::DEFAULT_ENV + @current_env = Mona::Package::DEFAULT_ENV instance_exec(&init_proc) - package = MonoRepoDeps::Package.new( + package = Mona::Package.new( name: @name, root_path: package_root, package_dirname: package_dirname, @@ -47,10 +47,10 @@ def check_duplicate_dependencies(package) ) .void end - def dependency(env = MonoRepoDeps::Package::DEFAULT_ENV, &block) + def dependency(env = Mona::Package::DEFAULT_ENV, &block) @current_env = env instance_eval(&block) - @current_env = MonoRepoDeps::Package::DEFAULT_ENV + @current_env = Mona::Package::DEFAULT_ENV nil end diff --git a/lib/mono_repo_deps/package/find_root.rb b/lib/mona/package/find_root.rb similarity index 80% rename from lib/mono_repo_deps/package/find_root.rb rename to lib/mona/package/find_root.rb index 5727c07..4f94131 100644 --- a/lib/mono_repo_deps/package/find_root.rb +++ b/lib/mona/package/find_root.rb @@ -1,5 +1,5 @@ -class MonoRepoDeps::Package::FindRoot - include MonoRepoDeps::Mixins +class Mona::Package::FindRoot + include Mona::Mixins SYSTEM_ROOT = '/' @@ -19,7 +19,7 @@ def call(dir, project_root) end loop do - project_file_path = File.expand_path(File.join(dir, MonoRepoDeps::PACKAGE_FILENAME)) + project_file_path = File.expand_path(File.join(dir, Mona::PACKAGE_FILENAME)) if File.exist?(project_file_path) return dir diff --git a/lib/mono_repo_deps/package/indexer.rb b/lib/mona/package/indexer.rb similarity index 72% rename from lib/mono_repo_deps/package/indexer.rb rename to lib/mona/package/indexer.rb index e0ef6ee..9772c35 100644 --- a/lib/mono_repo_deps/package/indexer.rb +++ b/lib/mona/package/indexer.rb @@ -1,7 +1,7 @@ -class MonoRepoDeps::Package::Indexer - include MonoRepoDeps::Mixins +class Mona::Package::Indexer + include Mona::Mixins - Inject = MonoRepoDeps::Deps[ + Inject = Mona::Deps[ "package.builder", ] @@ -13,14 +13,14 @@ class MonoRepoDeps::Package::Indexer project_root: String, package_dirname: String ) - .returns(T::Array[MonoRepoDeps::Package]) + .returns(T::Array[Mona::Package]) end def call(packages_lookup_subdir, project_root, package_dirname) packages_path = File.join( project_root, packages_lookup_subdir, "**", - MonoRepoDeps::PACKAGE_FILENAME + Mona::PACKAGE_FILENAME ) Dir[packages_path].map do |package_file_path| diff --git a/lib/mono_repo_deps/package/initializer.rb b/lib/mona/package/initializer.rb similarity index 71% rename from lib/mono_repo_deps/package/initializer.rb rename to lib/mona/package/initializer.rb index f7b258f..e50dab8 100644 --- a/lib/mono_repo_deps/package/initializer.rb +++ b/lib/mona/package/initializer.rb @@ -1,9 +1,9 @@ require 'benchmark' -class MonoRepoDeps::Package::Initializer - include MonoRepoDeps::Mixins +class Mona::Package::Initializer + include Mona::Mixins - Inject = MonoRepoDeps::Deps[ + Inject = Mona::Deps[ "package.dependency_bypasser", "package.repo" ] @@ -28,11 +28,11 @@ def call(package_name, env:, prevent_eager_load: false) .map { |name| repo.find(name) } sorted_packages.each do |sorted_package| - MonoRepoDeps.current_project.loader.push_dir(sorted_package.workdir_path) - MonoRepoDeps.current_project.loader.loader.do_not_eager_load(sorted_package.workdir_path) if prevent_eager_load + Mona.current_project.loader.push_dir(sorted_package.workdir_path) + Mona.current_project.loader.loader.do_not_eager_load(sorted_package.workdir_path) if prevent_eager_load end - MonoRepoDeps.current_project.loader.setup + Mona.current_project.loader.setup sorted_packages.each do |package| require package.entrypoint_file if File.exist?(package.entrypoint_file) diff --git a/lib/mona/package/list.rb b/lib/mona/package/list.rb new file mode 100644 index 0000000..1b913f6 --- /dev/null +++ b/lib/mona/package/list.rb @@ -0,0 +1,10 @@ +class Mona::Package::List + include Mona::Mixins + + sig do + returns(T::Array[Mona::Package]) + end + def call + Mona.current_project.packages + end +end diff --git a/lib/mono_repo_deps/package/repo.rb b/lib/mona/package/repo.rb similarity index 70% rename from lib/mono_repo_deps/package/repo.rb rename to lib/mona/package/repo.rb index 7706a21..08877b7 100644 --- a/lib/mono_repo_deps/package/repo.rb +++ b/lib/mona/package/repo.rb @@ -1,14 +1,14 @@ -class MonoRepoDeps::Package::Repo - include MonoRepoDeps::Mixins +class Mona::Package::Repo + include Mona::Mixins - Inject = MonoRepoDeps::Deps[ + Inject = Mona::Deps[ "package.list", ] include Inject sig do - returns(T::Array[MonoRepoDeps::Package]) + returns(T::Array[Mona::Package]) end def all list.call @@ -26,7 +26,7 @@ def all ) ), ) - .returns(T::Array[MonoRepoDeps::Package]) + .returns(T::Array[Mona::Package]) end def filter(name: nil) packages = all @@ -45,7 +45,7 @@ def filter(name: nil) params( package_name: T.nilable(T.any(String, Symbol)), ) - .returns(T.nilable(MonoRepoDeps::Package)) + .returns(T.nilable(Mona::Package)) end def find(package_name) all.detect { _1.name == package_name.to_sym } @@ -55,9 +55,9 @@ def find(package_name) params( package_name: T.nilable(T.any(String, Symbol)), ) - .returns(MonoRepoDeps::Package) + .returns(Mona::Package) end def find!(package_name) - find(package_name) || (raise StandardError.new("package '#{package_name}' was not found for MonoRepoDeps project '#{MonoRepoDeps.current_project.root_path}'")) + find(package_name) || (raise StandardError.new("package '#{package_name}' was not found for Mona project '#{Mona.current_project.root_path}'")) end end diff --git a/lib/mono_repo_deps/project.rb b/lib/mona/project.rb similarity index 84% rename from lib/mono_repo_deps/project.rb rename to lib/mona/project.rb index dcdf9bd..b8b82f0 100644 --- a/lib/mono_repo_deps/project.rb +++ b/lib/mona/project.rb @@ -1,5 +1,5 @@ -class MonoRepoDeps::Project - include MonoRepoDeps::Mixins +class Mona::Project + include Mona::Mixins attr_reader :env, :configs_dir, :package_dirname, :root_path, :packages, :loader, :tasks, :packages_lookup_subdir @@ -7,7 +7,7 @@ class MonoRepoDeps::Project configs_dir: 'configs', package_dirname: 'package', packages_lookup_subdir: ".", - loader: MonoRepoDeps::Loaders::Base, + loader: Mona::Loaders::Base, tasks: [] } @@ -15,11 +15,11 @@ class MonoRepoDeps::Project params( root_path: String, env: Symbol, - loader: T.nilable(MonoRepoDeps::Loaders::Base), + loader: T.nilable(Mona::Loaders::Base), configs_dir: T.nilable(String), package_dirname: T.nilable(String), packages_lookup_subdir: T.nilable(String), - tasks: T.nilable(T::Array[MonoRepoDeps::Task]) + tasks: T.nilable(T::Array[Mona::Task]) ) .void end diff --git a/lib/mono_repo_deps/project/builder.rb b/lib/mona/project/builder.rb similarity index 50% rename from lib/mono_repo_deps/project/builder.rb rename to lib/mona/project/builder.rb index 4024d05..12ebd35 100644 --- a/lib/mono_repo_deps/project/builder.rb +++ b/lib/mona/project/builder.rb @@ -1,17 +1,17 @@ -class MonoRepoDeps::Project::Builder - include MonoRepoDeps::Mixins +class Mona::Project::Builder + include Mona::Mixins - Inject = MonoRepoDeps::Deps[ + Inject = Mona::Deps[ "project.factory", ] include Inject sig do - params(project_root: String).returns(MonoRepoDeps::Project) + params(project_root: String).returns(Mona::Project) end def call(project_root) - project_file_path = "#{project_root}/#{MonoRepoDeps::PROJECT_FILENAME}" + project_file_path = "#{project_root}/#{Mona::PROJECT_FILENAME}" project_init_proc = proc { instance_eval(File.read(project_file_path)) } diff --git a/lib/mono_repo_deps/project/factory.rb b/lib/mona/project/factory.rb similarity index 83% rename from lib/mono_repo_deps/project/factory.rb rename to lib/mona/project/factory.rb index 650acf0..f8294aa 100644 --- a/lib/mono_repo_deps/project/factory.rb +++ b/lib/mona/project/factory.rb @@ -1,12 +1,12 @@ -class MonoRepoDeps::Project::Factory - include MonoRepoDeps::Mixins +class Mona::Project::Factory + include Mona::Mixins sig do params( root_path: String, init_proc: T.proc.params(args: T.anything).returns(T.anything) ) - .returns(MonoRepoDeps::Project) + .returns(Mona::Project) end def call(root_path, init_proc:) @tasks = [] @@ -14,7 +14,7 @@ def call(root_path, init_proc:) instance_exec(&init_proc) - project = MonoRepoDeps::Project.new( + project = Mona::Project.new( root_path: root_path, env: @env, configs_dir: @configs_dir, @@ -48,7 +48,7 @@ def setup(&block) def set_env(value) @env = (value.is_a?(Proc) ? value.call : value).to_sym - raise MonoRepoDeps::Error.new("block or value should be provided") if @env.nil? + raise Mona::Error.new("block or value should be provided") if @env.nil? nil end @@ -79,7 +79,7 @@ def set_package_dirname(value) .void end def set_loader(name, &block) - @loader = MonoRepoDeps::Loaders::Base.registry.fetch(name).new(@root_path, &block) + @loader = Mona::Loaders::Base.registry.fetch(name).new(@root_path, &block) nil end @@ -103,7 +103,7 @@ def set_packages_lookup_subdir(value) end def register_task(name, on:, &block) @tasks.push( - MonoRepoDeps::Task.new( + Mona::Task.new( name: name, on: on, block: block diff --git a/lib/mono_repo_deps/project/find_root.rb b/lib/mona/project/find_root.rb similarity index 64% rename from lib/mono_repo_deps/project/find_root.rb rename to lib/mona/project/find_root.rb index c4aca52..a119d65 100644 --- a/lib/mono_repo_deps/project/find_root.rb +++ b/lib/mona/project/find_root.rb @@ -1,8 +1,8 @@ require 'zeitwerk' require 'singleton' -class MonoRepoDeps::Project::FindRoot - include MonoRepoDeps::Mixins +class Mona::Project::FindRoot + include Mona::Mixins SYSTEM_ROOT = '/' @@ -17,12 +17,12 @@ def call(dir) end loop do - project_file_path = File.expand_path(File.join(dir, MonoRepoDeps::PROJECT_FILENAME)) + project_file_path = File.expand_path(File.join(dir, Mona::PROJECT_FILENAME)) if File.exist?(project_file_path) return dir elsif dir == SYSTEM_ROOT - raise StandardError.new("#{MonoRepoDeps::PROJECT_FILENAME} for path '#{init_dir}' not found") + raise StandardError.new("#{Mona::PROJECT_FILENAME} for path '#{init_dir}' not found") else dir = File.expand_path("../", dir) end diff --git a/lib/mono_repo_deps/project/initializer.rb b/lib/mona/project/initializer.rb similarity index 70% rename from lib/mono_repo_deps/project/initializer.rb rename to lib/mona/project/initializer.rb index 73b27ad..9cdf984 100644 --- a/lib/mono_repo_deps/project/initializer.rb +++ b/lib/mona/project/initializer.rb @@ -1,7 +1,7 @@ -class MonoRepoDeps::Project::Initializer - include MonoRepoDeps::Mixins +class Mona::Project::Initializer + include Mona::Mixins - Inject = MonoRepoDeps::Deps[ + Inject = Mona::Deps[ "package.indexer", "project.builder", "project.find_root" @@ -10,7 +10,7 @@ class MonoRepoDeps::Project::Initializer include Inject sig do - params(dir: String).returns(MonoRepoDeps::Project) + params(dir: String).returns(Mona::Project) end def call(dir) project_root = find_root.call(dir) diff --git a/lib/mono_repo_deps/task.rb b/lib/mona/task.rb similarity index 84% rename from lib/mono_repo_deps/task.rb rename to lib/mona/task.rb index 2786082..ece692a 100644 --- a/lib/mono_repo_deps/task.rb +++ b/lib/mona/task.rb @@ -1,5 +1,5 @@ -class MonoRepoDeps::Task - include MonoRepoDeps::Mixins +class Mona::Task + include Mona::Mixins attr_reader :name, :on, :block diff --git a/lib/mono_repo_deps/task/manager.rb b/lib/mona/task/manager.rb similarity index 74% rename from lib/mono_repo_deps/task/manager.rb rename to lib/mona/task/manager.rb index 71a8c36..9fdca90 100644 --- a/lib/mono_repo_deps/task/manager.rb +++ b/lib/mona/task/manager.rb @@ -1,7 +1,7 @@ -class MonoRepoDeps::Task::Manager - include MonoRepoDeps::Mixins +class Mona::Task::Manager + include Mona::Mixins - Inject = MonoRepoDeps::Deps[ + Inject = Mona::Deps[ packages_repo: "package.repo" ] @@ -16,7 +16,7 @@ class MonoRepoDeps::Task::Manager .returns(T::Boolean) end def method_missing(method_name, *args, **kwargs) - task = MonoRepoDeps.current_project.tasks.detect { _1.name == method_name } || (raise StandardError.new("task '#{method_name}' not found for project")) + task = Mona.current_project.tasks.detect { _1.name == method_name } || (raise StandardError.new("task '#{method_name}' not found for project")) case task.on when :package diff --git a/lib/mona/version.rb b/lib/mona/version.rb new file mode 100644 index 0000000..f6c7050 --- /dev/null +++ b/lib/mona/version.rb @@ -0,0 +1,5 @@ +# frozen_string_literal: true + +module Mona + VERSION = "0.2.3" +end diff --git a/lib/mono_repo_deps/package/list.rb b/lib/mono_repo_deps/package/list.rb deleted file mode 100644 index 1451ed9..0000000 --- a/lib/mono_repo_deps/package/list.rb +++ /dev/null @@ -1,10 +0,0 @@ -class MonoRepoDeps::Package::List - include MonoRepoDeps::Mixins - - sig do - returns(T::Array[MonoRepoDeps::Package]) - end - def call - MonoRepoDeps.current_project.packages - end -end diff --git a/lib/mono_repo_deps/version.rb b/lib/mono_repo_deps/version.rb deleted file mode 100644 index 4c33739..0000000 --- a/lib/mono_repo_deps/version.rb +++ /dev/null @@ -1,5 +0,0 @@ -# frozen_string_literal: true - -module MonoRepoDeps - VERSION = "0.2.1" -end diff --git a/mono_repo_deps.gemspec b/mona.gemspec similarity index 61% rename from mono_repo_deps.gemspec rename to mona.gemspec index 0ff44bf..ce5eba1 100644 --- a/mono_repo_deps.gemspec +++ b/mona.gemspec @@ -1,33 +1,17 @@ # frozen_string_literal: true -require_relative "lib/mono_repo_deps/version" +require_relative "lib/mona/version" Gem::Specification.new do |spec| - spec.name = "mono_repo_deps" - spec.version = MonoRepoDeps::VERSION + spec.name = "mona" + spec.version = Mona::VERSION spec.authors = ["Nikita Kononov"] spec.email = ["vocrsz@gmail.com"] - spec.summary = "A Ruby gem for efficiently managing dependencies within a monorepo." + spec.summary = "A Ruby gem for efficiently managing dependencies within a monorepository." spec.description = <<-DESC - MonoRepoDeps is a powerful tool designed to streamline the process of splitting code into separate packages - within a monorepository. It provides a flexible and easy-to-use solution for managing dependencies between - packages, making it ideal for large-scale projects with complex codebases. - - Key Features: - - Simplifies the organization of code in a monorepo structure. - - Manages dependencies seamlessly between different packages. - - Enhances collaboration and code sharing among teams working on interconnected components. - - Offers a straightforward and customizable configuration for your monorepo setup. - - How to Use: - - Install the gem using `gem install MonoRepoDeps`. - - Configure MonoRepoDeps with your monorepo specifications. - - Enjoy a more efficient and organized development workflow. - - Visit the official documentation for detailed instructions and examples. - - GitHub Repository: https://github.com/droidlabs/MonoRepoDeps + A Ruby gem for efficiently managing dependencies within a monorepository. \n + GitHub Repository: https://github.com/droidlabs/mono_repo_deps DESC spec.homepage = "https://github.com/droidlabs/mono_repo_deps" spec.license = "MIT" diff --git a/sig/mono_repo_deps.rbs b/sig/mona.rbs similarity index 81% rename from sig/mono_repo_deps.rbs rename to sig/mona.rbs index c4fcf89..d475bb0 100644 --- a/sig/mono_repo_deps.rbs +++ b/sig/mona.rbs @@ -1,4 +1,4 @@ -module MonoRepoDeps +module Mona VERSION: String # See the writing guide of rbs: https://github.com/ruby/rbs#guides end diff --git a/spec/mono_repo_deps/config/loader_spec.rb b/spec/mona/config/loader_spec.rb similarity index 55% rename from spec/mono_repo_deps/config/loader_spec.rb rename to spec/mona/config/loader_spec.rb index 60f1f58..d0670a3 100644 --- a/spec/mono_repo_deps/config/loader_spec.rb +++ b/spec/mona/config/loader_spec.rb @@ -1,9 +1,9 @@ -RSpec.describe MonoRepoDeps::Config::Loader do +RSpec.describe Mona::Config::Loader do it "works" do - MonoRepoDeps.sync_current_project!(SpecHelper.examples_dir) do + Mona.sync_current_project!(SpecHelper.examples_dir) do config = subject.call('orders_app') - expect(config).to be_a(MonoRepoDeps::Config) + expect(config).to be_a(Mona::Config) expect(config.host).to eq('some_test_host') expect(config.port).to eq(1234) expect(config.db).to eq('some_db') diff --git a/spec/mono_repo_deps/package/builder_spec.rb b/spec/mona/package/builder_spec.rb similarity index 82% rename from spec/mono_repo_deps/package/builder_spec.rb rename to spec/mona/package/builder_spec.rb index 4e013dc..b2873f5 100644 --- a/spec/mono_repo_deps/package/builder_spec.rb +++ b/spec/mona/package/builder_spec.rb @@ -1,11 +1,11 @@ -RSpec.describe MonoRepoDeps::Package::Builder do +RSpec.describe Mona::Package::Builder do let(:package_root) { File.join(SpecHelper.examples_dir, "bounded_contexts/orders/orders_app") } let(:package_dirname) { 'package' } it "works" do package = subject.call(package_root, SpecHelper.examples_dir, package_dirname) - expect(package).to be_a(MonoRepoDeps::Package) + expect(package).to be_a(Mona::Package) expect(package.root_path).to eq(package_root) expect(package.name).to eq(:orders_app) diff --git a/spec/mono_repo_deps/package/dependency_bypasser_spec.rb b/spec/mona/package/dependency_bypasser_spec.rb similarity index 86% rename from spec/mono_repo_deps/package/dependency_bypasser_spec.rb rename to spec/mona/package/dependency_bypasser_spec.rb index 3f35b44..2d5caf1 100644 --- a/spec/mono_repo_deps/package/dependency_bypasser_spec.rb +++ b/spec/mona/package/dependency_bypasser_spec.rb @@ -1,8 +1,8 @@ -RSpec.describe MonoRepoDeps::Package::DependencyBypasser do +RSpec.describe Mona::Package::DependencyBypasser do before(:each) do - MonoRepoDeps::Container.stub("package.list", packages_list) + Mona::Container.stub("package.list", packages_list) - MonoRepoDeps.current_project = MonoRepoDeps::Project.new( + Mona.current_project = Mona::Project.new( root_path: 'some/path', env: :test ) diff --git a/spec/mono_repo_deps/package/factory_spec.rb b/spec/mona/package/factory_spec.rb similarity index 92% rename from spec/mono_repo_deps/package/factory_spec.rb rename to spec/mona/package/factory_spec.rb index 85018c1..46b2615 100644 --- a/spec/mono_repo_deps/package/factory_spec.rb +++ b/spec/mona/package/factory_spec.rb @@ -1,4 +1,4 @@ -RSpec.describe MonoRepoDeps::Package::Factory do +RSpec.describe Mona::Package::Factory do let(:block) { Proc.new do package do diff --git a/spec/mono_repo_deps/package/initializer_spec.rb b/spec/mona/package/initializer_spec.rb similarity index 66% rename from spec/mono_repo_deps/package/initializer_spec.rb rename to spec/mona/package/initializer_spec.rb index 6c3281d..61fec99 100644 --- a/spec/mono_repo_deps/package/initializer_spec.rb +++ b/spec/mona/package/initializer_spec.rb @@ -1,8 +1,8 @@ -RSpec.describe MonoRepoDeps::Package::Initializer do +RSpec.describe Mona::Package::Initializer do it "imports dependent packages" do expect(Object.const_defined?(:OrdersApp)).to be false - MonoRepoDeps.sync_current_project!(SpecHelper.examples_dir) do + Mona.sync_current_project!(SpecHelper.examples_dir) do subject.call('orders_app', env: :test, prevent_eager_load: true) end diff --git a/spec/mono_repo_deps/project/factory_spec.rb b/spec/mona/project/factory_spec.rb similarity index 84% rename from spec/mono_repo_deps/project/factory_spec.rb rename to spec/mona/project/factory_spec.rb index dd0ed09..27df5cf 100644 --- a/spec/mono_repo_deps/project/factory_spec.rb +++ b/spec/mona/project/factory_spec.rb @@ -1,4 +1,4 @@ -RSpec.describe MonoRepoDeps::Project::Factory do +RSpec.describe Mona::Project::Factory do let(:block) { Proc.new do setup do |project| @@ -22,6 +22,6 @@ expect(project.env).to eq(:test) expect(project.configs_dir).to eq('configs') expect(project.package_dirname).to eq('package') - expect(project.loader).to be_a(MonoRepoDeps::Loaders::Zeitwerk) + expect(project.loader).to be_a(Mona::Loaders::Zeitwerk) end end diff --git a/spec/mona/project/initializer_spec.rb b/spec/mona/project/initializer_spec.rb new file mode 100644 index 0000000..18dcfc7 --- /dev/null +++ b/spec/mona/project/initializer_spec.rb @@ -0,0 +1,12 @@ +RSpec.describe Mona::Project::Initializer do + it "works" do + project = subject.call( + File.join(SpecHelper.examples_dir, "bounded_contexts/orders/orders_app") + ) + + expect(project).to be_a(Mona::Project) + expect(project.root_path).to eq(SpecHelper.examples_dir) + expect(project.packages.first).to be_a(Mona::Package) + expect(project.loader).to be_a(Mona::Loaders::Zeitwerk) + end +end diff --git a/spec/mono_repo_deps_spec.rb b/spec/mona_spec.rb similarity index 58% rename from spec/mono_repo_deps_spec.rb rename to spec/mona_spec.rb index 60c8144..2598f9b 100644 --- a/spec/mono_repo_deps_spec.rb +++ b/spec/mona_spec.rb @@ -1,21 +1,21 @@ # frozen_string_literal: true -RSpec.describe MonoRepoDeps do +RSpec.describe Mona do it "has a version number" do - expect(MonoRepoDeps::VERSION).not_to be nil + expect(Mona::VERSION).not_to be nil end # context "#init" do # let(:package_root) { File.join(SpecHelper.examples_dir, "bounded_contexts/orders/core/orders/bin") } # it "works" do - # MonoRepoDeps.init(package_root, :test) + # Mona.init(package_root, :test) # end # end context "#import_package" do it "works" do - # MonoRepoDeps.import_package('orders_app', from: SpecHelper.examples_dir, env: :test) + # Mona.import_package('orders_app', from: SpecHelper.examples_dir, env: :test) end end end diff --git a/spec/mono_repo_deps/project/initializer_spec.rb b/spec/mono_repo_deps/project/initializer_spec.rb deleted file mode 100644 index 7ce2d5b..0000000 --- a/spec/mono_repo_deps/project/initializer_spec.rb +++ /dev/null @@ -1,12 +0,0 @@ -RSpec.describe MonoRepoDeps::Project::Initializer do - it "works" do - project = subject.call( - File.join(SpecHelper.examples_dir, "bounded_contexts/orders/orders_app") - ) - - expect(project).to be_a(MonoRepoDeps::Project) - expect(project.root_path).to eq(SpecHelper.examples_dir) - expect(project.packages.first).to be_a(MonoRepoDeps::Package) - expect(project.loader).to be_a(MonoRepoDeps::Loaders::Zeitwerk) - end -end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 2e1e0bf..10ce34c 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -2,15 +2,17 @@ ENV['RUBY_ENV'] = 'test' -require 'mono_repo_deps' +require 'mona' require 'dry/system/stubs' require 'pry' -MonoRepoDeps::Container.enable_stubs! +T::Private::RuntimeLevels.default_checked_level = :tests + +Mona::Container.enable_stubs! RSpec.configure do |config| config.after :each do - MonoRepoDeps::Container.unstub + Mona::Container.unstub end end @@ -21,12 +23,12 @@ def examples_dir end def build_package(name:, deps:) - MonoRepoDeps::Package.new( + Mona::Package.new( name: name, root_path: 'test', package_dirname: 'package', dependencies: { - MonoRepoDeps::Package::DEFAULT_ENV => deps + Mona::Package::DEFAULT_ENV => deps } ) end