Skip to content

Commit a5cf9f0

Browse files
authored
Customize mount path (#68)
1 parent 7187df1 commit a5cf9f0

File tree

8 files changed

+50
-6
lines changed

8 files changed

+50
-6
lines changed

README.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,15 @@ bin/rails db:migrate
4141

4242
## Usage
4343

44+
### Mount path
45+
46+
By default, Moirai is mounted under `/moirai`. You can change it by specifying the `root_path` option in `config/initializers/moirai.rb`:
47+
48+
```ruby
49+
# config/initializers/moirai.rb
50+
config.root_path = '/my_translations'
51+
```
52+
4453
### How to change translations
4554

4655
If you mounted Moirai under "/moirai", head there and you will find a list of all the files containing texts that can be

app/assets/javascripts/moirai_translation_controller.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { Controller } from "@hotwired/stimulus"
22

33
export default class MoiraiTranslationController extends Controller {
44
static values = {
5+
rootPath: { type: String, default: '/moirai' },
56
key: String,
67
locale: String
78
}
@@ -13,7 +14,7 @@ export default class MoiraiTranslationController extends Controller {
1314
submit(event) {
1415
const csrfToken = document.querySelector('meta[name="csrf-token"]').content
1516

16-
fetch('/moirai/translation_files', {
17+
fetch(`${this.rootPathValue}/translation_files`, {
1718
method: 'POST',
1819
headers: {
1920
'X-CSRF-Token': csrfToken,
Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1-
<span
1+
<span
22
contenteditable
33
data-action="blur->moirai-translation#submit click->moirai-translation#click"
4-
style="outline: 1px solid #1d9f74; min-width: 30px; display: inline-block; <%= 'color: red;' if is_missing_translation %>"
4+
style="outline: 1px solid #1d9f74; min-width: 30px; display: inline-block; <%= 'color: red;' if is_missing_translation %>"
55
data-moirai-translation-key-value="<%= key %>"
66
data-moirai-translation-locale-value="<%= locale %>"
7-
data-controller="moirai-translation">
7+
data-controller="moirai-translation"
8+
data-moirai-translation-root-path-value="<%= Moirai.configuration.root_path %>">
89
<%= value.to_s.gsub("<", "&lt;").gsub(">", "&gt;").html_safe %>
910
</span>

lib/generators/moirai/install_generator.rb

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,12 @@ def using_js_bundling?
2929
end
3030

3131
def mount_engine
32-
route 'mount Moirai::Engine => "/moirai", as: "moirai"'
32+
route "mount Moirai::Engine, at: Moirai.configuration.root_path, as: 'moirai'"
33+
end
34+
35+
def add_initializer
36+
say "Copying Moirai initializer"
37+
template "initializers/moirai.tt", "config/initializers/moirai.rb"
3338
end
3439

3540
private
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# The values displayed here are the default ones. Change them to fit your needs.
2+
Moirai.configure do |config|
3+
## == Routing ==
4+
config.root_path = '/moirai'
5+
end

lib/moirai.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
require "i18n/extensions/i18n"
55
require "i18n/backend/moirai"
66
require "moirai/engine"
7+
require "moirai/configuration"
78
require "moirai/pull_request_creator"
89

910
module Moirai

lib/moirai/configuration.rb

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
module Moirai
2+
class Configuration
3+
attr_accessor :root_path
4+
5+
def initialize
6+
@root_path = '/moirai'
7+
end
8+
end
9+
10+
def self.configuration
11+
@configuration ||= Configuration.new
12+
end
13+
14+
def self.configuration=(config)
15+
@configuration = config
16+
end
17+
18+
def self.configure
19+
yield configuration
20+
end
21+
end

test/dummy/config/routes.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# frozen_string_literal: true
22

33
Rails.application.routes.draw do
4-
mount Moirai::Engine => "/moirai", :as => "moirai"
4+
mount Moirai::Engine => Moirai.configuration.root_path, :as => "moirai"
5+
56
root to: "home#index"
67
end

0 commit comments

Comments
 (0)