Module: MemoriClient::Utils::Rails

Defined in:
lib/memori_client/utils/rails.rb

Class Method Summary collapse

Class Method Details

.copy_docsObject



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/memori_client/utils/rails.rb', line 4

def self.copy_docs
  # Find gem's root directory
  gem_root = Gem.loaded_specs['memori-client'].gem_dir rescue nil
  unless gem_root
    puts "Error: Could not find memori_client gem installation"
    exit 1
  end

  # Determine project root (works in Rails and non-Rails)
  project_root = if defined?(::Rails)
                   ::Rails.root.to_s
                 else
                   Dir.pwd
                 end

  source_docs = File.join(gem_root, 'doc')
  dest_docs = File.join(project_root, 'doc', 'memori_client')

  # Create destination directory if needed
  FileUtils.mkdir_p(dest_docs) unless Dir.exist?(dest_docs)

  # Copy all documentation files
  if Dir.exist?(source_docs)
    FileUtils.cp_r(Dir.glob(File.join(source_docs, '*')), dest_docs)
    puts "MemoriClient documentation copied to #{dest_docs}"
  else
    puts "No documentation found in the gem"
  end
end

.copy_initializerObject



34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/memori_client/utils/rails.rb', line 34

def self.copy_initializer
  template = "# Path: config/initializers/memori_client.rb\nrequire 'memori_client'\nMemoriClient.configure do |config|\n  config.backend_api_root = ENV['MEMORI_BACKEND_API_ROOT']\n  config.backend_api_username = ENV['MEMORI_BACKEND_API_USERNAME']\n  config.backend_api_password = ENV['MEMORI_BACKEND_API_PASSWORD']\n  config.backend_api_tenant = ENV['MEMORI_BACKEND_API_TENANT']\n  config.engine_api_root = ENV['MEMORI_ENGINE_API_ROOT']\nend \n"

  initializer_path = ::Rails.root.join('config', 'initializers', 'memori_client.rb')
  File.open(initializer_path, 'w') do |file|
    file.write(template)
  end
end