Class: Rsodx::Cli::GenerateInteractor
- Inherits:
-
Object
- Object
- Rsodx::Cli::GenerateInteractor
- Defined in:
- lib/rsodx/cli/generate_interactor.rb
Instance Method Summary collapse
- #content ⇒ Object
- #create ⇒ Object
-
#initialize(name) ⇒ GenerateInteractor
constructor
A new instance of GenerateInteractor.
- #snake_case(str) ⇒ Object
Constructor Details
#initialize(name) ⇒ GenerateInteractor
Returns a new instance of GenerateInteractor.
4 5 6 7 |
# File 'lib/rsodx/cli/generate_interactor.rb', line 4 def initialize(name) @name = name @file_name = File.join("app/interactors", snake_case(name) + ".rb") end |
Instance Method Details
#content ⇒ Object
15 16 17 18 19 20 21 22 23 |
# File 'lib/rsodx/cli/generate_interactor.rb', line 15 def content <<~RUBY class #{@name} < AppInteractor def call # implement logic here end end RUBY end |
#create ⇒ Object
9 10 11 12 13 |
# File 'lib/rsodx/cli/generate_interactor.rb', line 9 def create puts "📦 Creating interactor: #{@file_name}" FileUtils.mkdir_p("app/interactors") File.write(@file_name, content) end |
#snake_case(str) ⇒ Object
25 26 27 28 29 30 31 |
# File 'lib/rsodx/cli/generate_interactor.rb', line 25 def snake_case(str) str.gsub(/::/, '/'). gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2'). gsub(/([a-z\d])([A-Z])/,'\1_\2'). tr("-", "_"). downcase end |