moirai 0.3.0 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.ruby-version +1 -0
- data/.semaphore/main-deploy.yml +18 -0
- data/.semaphore/semaphore.yml +50 -0
- data/CHANGELOG.md +6 -0
- data/Gemfile +1 -0
- data/app/views/moirai/translation_files/_form.html.erb +3 -3
- data/app/views/moirai/translation_files/show.html.erb +1 -2
- data/lib/moirai/engine.rb +22 -1
- data/lib/moirai/version.rb +1 -1
- metadata +9 -7
- data/.github/workflows/test.yml +0 -65
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ecb41a395f21cd347b67e6e0233bd776a80493be4bf98d423077b7fd7cbe2005
|
4
|
+
data.tar.gz: 1335f5ca28ab8804459172894841f71cb8ac88740ce0b94d21096bc3a1713386
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 927bd40a31ce569fca7b6d6a68194106db7616bf3a733009dd84669a387450a4808bc650aeff8f7f1d6aefe630d859db0c0486972008189e183f957247fada80
|
7
|
+
data.tar.gz: c8a831cd233bf06ff6160acd096346afb3ab8b1209b3bda7a5a4c7ccbecffe263fadaffd4829508d5f13cb3f4201fdf3658ef46ddcb1ae14c16d46ca4c85c324
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
3.2.1
|
@@ -0,0 +1,18 @@
|
|
1
|
+
version: v1.0
|
2
|
+
name: main-deploy
|
3
|
+
agent:
|
4
|
+
machine:
|
5
|
+
type: e1-standard-2
|
6
|
+
os_image: ubuntu2004
|
7
|
+
|
8
|
+
blocks:
|
9
|
+
- name: main-deploy
|
10
|
+
task:
|
11
|
+
secrets:
|
12
|
+
- name: rubygems-deploy
|
13
|
+
jobs:
|
14
|
+
- name: main-deploy
|
15
|
+
commands:
|
16
|
+
- checkout --use-cache
|
17
|
+
- gem build moirai
|
18
|
+
- gem push moirai-*.gem
|
@@ -0,0 +1,50 @@
|
|
1
|
+
version: "v1.0"
|
2
|
+
name: moirai
|
3
|
+
agent:
|
4
|
+
machine:
|
5
|
+
type: e1-standard-2
|
6
|
+
os_image: ubuntu2004
|
7
|
+
auto_cancel:
|
8
|
+
running:
|
9
|
+
when: "true"
|
10
|
+
|
11
|
+
blocks:
|
12
|
+
- name: tests
|
13
|
+
execution_time_limit:
|
14
|
+
minutes: 10
|
15
|
+
task:
|
16
|
+
secrets:
|
17
|
+
- name: moirai
|
18
|
+
prologue:
|
19
|
+
commands:
|
20
|
+
- checkout --use-cache
|
21
|
+
- cache restore
|
22
|
+
- bundle config set path 'vendor/bundle'
|
23
|
+
- bundle install -j 4
|
24
|
+
- cache store
|
25
|
+
jobs:
|
26
|
+
- name: linter
|
27
|
+
commands:
|
28
|
+
- bundle exec standardrb
|
29
|
+
- name: tests sqlite
|
30
|
+
env_vars:
|
31
|
+
- name: TARGET_DB
|
32
|
+
value: sqlite
|
33
|
+
- name: RAILS_ENV
|
34
|
+
value: test
|
35
|
+
commands:
|
36
|
+
- bin/rails db:create db:schema:load
|
37
|
+
- bin/check
|
38
|
+
- name: tests postgres
|
39
|
+
env_vars:
|
40
|
+
- name: TARGET_DB
|
41
|
+
value: postgres
|
42
|
+
- name: RAILS_ENV
|
43
|
+
value: test
|
44
|
+
commands:
|
45
|
+
- sem-service start postgres 14 --username=semaphore
|
46
|
+
- bin/rails db:create db:schema:load
|
47
|
+
- bin/check
|
48
|
+
promotions:
|
49
|
+
- name: main
|
50
|
+
pipeline_file: main-deploy.yml
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
## 0.3.1
|
2
|
+
|
3
|
+
* Fixes a problem when running a rake command and no database exists yet using postgres. ([@coorasse][])
|
4
|
+
|
1
5
|
## 0.3.0
|
2
6
|
|
3
7
|
* Added a method `I18n.translate_without_moirai` ([@oliveranthony17][])
|
@@ -5,6 +9,8 @@
|
|
5
9
|
* Fixed some setup issues in test environments ([@oliveranthony17][])
|
6
10
|
* Show original translation when deleting the whole inline editing content. ([@CuddlyBunion341][])
|
7
11
|
|
12
|
+
* Support for html translations ([@CuddlyBunion341][])
|
13
|
+
=======
|
8
14
|
## 0.2.0
|
9
15
|
|
10
16
|
* Support for strings coming from gems ([@coorasse][])
|
data/Gemfile
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
<span
|
2
|
-
contenteditable
|
2
|
+
contenteditable
|
3
3
|
data-action="blur->moirai-translation#submit click->moirai-translation#click"
|
4
|
-
style="
|
4
|
+
style="outline: 1px solid #1d9f74; min-width: 30px; display: inline-block; <%= 'color: red;' if is_missing_translation %>"
|
5
5
|
data-moirai-translation-key-value="<%= key %>"
|
6
6
|
data-moirai-translation-locale-value="<%= locale %>"
|
7
7
|
data-controller="moirai-translation">
|
8
|
-
<%= value %>
|
8
|
+
<%= value.to_s.gsub("<", "<").gsub(">", ">").html_safe %>
|
9
9
|
</span>
|
@@ -30,8 +30,7 @@
|
|
30
30
|
method: :post do |f| %>
|
31
31
|
<%= f.hidden_field :key %>
|
32
32
|
<%= f.hidden_field :locale %>
|
33
|
-
<%= f.
|
34
|
-
<%= f.submit 'Update', style: 'display: none;' %>
|
33
|
+
<%= f.text_field :value, class: 'translation-textarea' %>
|
35
34
|
<% end %>
|
36
35
|
</td>
|
37
36
|
<td>
|
data/lib/moirai/engine.rb
CHANGED
@@ -10,7 +10,15 @@ module Moirai
|
|
10
10
|
|
11
11
|
config.after_initialize do
|
12
12
|
I18n.original_backend = I18n.backend
|
13
|
-
|
13
|
+
table_created =
|
14
|
+
begin
|
15
|
+
(defined?(ActiveRecord::ConnectionAdapters::SQLite3Adapter) &&
|
16
|
+
ActiveRecord::Base.connection.is_a?(ActiveRecord::ConnectionAdapters::SQLite3Adapter)) ||
|
17
|
+
ActiveRecord::Base.connection.table_exists?("moirai_translations")
|
18
|
+
rescue ActiveRecord::NoDatabaseError
|
19
|
+
false
|
20
|
+
end
|
21
|
+
if table_created
|
14
22
|
I18n.backend = I18n::Backend::Chain.new(I18n::Backend::Moirai.new, I18n.backend)
|
15
23
|
else
|
16
24
|
Rails.logger.warn("moirai disabled: tables have not been generated yet.")
|
@@ -27,12 +35,18 @@ module Moirai
|
|
27
35
|
def translate(key, **options)
|
28
36
|
value = original_translate(key, **options)
|
29
37
|
|
38
|
+
is_missing_translation = value.include?('class="translation_missing"')
|
39
|
+
if value.is_a?(String) && is_missing_translation
|
40
|
+
value = extract_inner_content(value)
|
41
|
+
end
|
42
|
+
|
30
43
|
if moirai_edit_enabled?
|
31
44
|
@key_finder ||= Moirai::KeyFinder.new
|
32
45
|
|
33
46
|
render(partial: "moirai/translation_files/form",
|
34
47
|
locals: {key: scope_key_by_partial(key),
|
35
48
|
locale: I18n.locale,
|
49
|
+
is_missing_translation: is_missing_translation,
|
36
50
|
value: value})
|
37
51
|
else
|
38
52
|
value
|
@@ -44,6 +58,13 @@ module Moirai
|
|
44
58
|
def moirai_edit_enabled?
|
45
59
|
params[:moirai] == "true"
|
46
60
|
end
|
61
|
+
|
62
|
+
private
|
63
|
+
|
64
|
+
def extract_inner_content(html)
|
65
|
+
match = html.match(/<[^>]+>([^<]*)<\/[^>]+>/)
|
66
|
+
match ? match[1] : nil
|
67
|
+
end
|
47
68
|
end
|
48
69
|
end
|
49
70
|
end
|
data/lib/moirai/version.rb
CHANGED
metadata
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: moirai
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alessandro Rodi
|
8
8
|
- Oliver Anthony
|
9
9
|
- Daniel Bengl
|
10
|
-
autorequire:
|
10
|
+
autorequire:
|
11
11
|
bindir: exe
|
12
12
|
cert_chain: []
|
13
|
-
date: 2024-11-
|
13
|
+
date: 2024-11-26 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rails
|
@@ -38,8 +38,10 @@ extensions: []
|
|
38
38
|
extra_rdoc_files: []
|
39
39
|
files:
|
40
40
|
- ".github/CODEOWNERS"
|
41
|
-
- ".github/workflows/test.yml"
|
42
41
|
- ".gitignore"
|
42
|
+
- ".ruby-version"
|
43
|
+
- ".semaphore/main-deploy.yml"
|
44
|
+
- ".semaphore/semaphore.yml"
|
43
45
|
- Appraisals
|
44
46
|
- CHANGELOG.md
|
45
47
|
- Gemfile
|
@@ -94,7 +96,7 @@ metadata:
|
|
94
96
|
changelog_uri: https://github.com/renuo/moirai/CHANGELOG.md
|
95
97
|
steep_types: sig
|
96
98
|
rubygems_mfa_required: 'true'
|
97
|
-
post_install_message:
|
99
|
+
post_install_message:
|
98
100
|
rdoc_options: []
|
99
101
|
require_paths:
|
100
102
|
- lib
|
@@ -109,8 +111,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
109
111
|
- !ruby/object:Gem::Version
|
110
112
|
version: '0'
|
111
113
|
requirements: []
|
112
|
-
rubygems_version: 3.
|
113
|
-
signing_key:
|
114
|
+
rubygems_version: 3.4.7
|
115
|
+
signing_key:
|
114
116
|
specification_version: 4
|
115
117
|
summary: Manage translation strings in real time
|
116
118
|
test_files: []
|
data/.github/workflows/test.yml
DELETED
@@ -1,65 +0,0 @@
|
|
1
|
-
name: Test & lint
|
2
|
-
on: [push]
|
3
|
-
|
4
|
-
env:
|
5
|
-
RAILS_ENV: test
|
6
|
-
PGHOST: localhost
|
7
|
-
PGUSER: postgres
|
8
|
-
MOIRAI_GITHUB_REPO_NAME: ${{ secrets.MOIRAI_GITHUB_REPO_NAME }}
|
9
|
-
MOIRAI_GITHUB_ACCESS_TOKEN: ${{ secrets.MOIRAI_GITHUB_ACCESS_TOKEN }}
|
10
|
-
jobs:
|
11
|
-
tests:
|
12
|
-
name: Test
|
13
|
-
|
14
|
-
strategy:
|
15
|
-
fail-fast: false
|
16
|
-
matrix:
|
17
|
-
os: [ubuntu-latest]
|
18
|
-
ruby: [3.3]
|
19
|
-
|
20
|
-
runs-on: ${{ matrix.os }}
|
21
|
-
|
22
|
-
steps:
|
23
|
-
- name: Checkout code
|
24
|
-
uses: actions/checkout@v4
|
25
|
-
|
26
|
-
- name: Set up Ruby
|
27
|
-
uses: ruby/setup-ruby@v1
|
28
|
-
with:
|
29
|
-
ruby-version: ${{ matrix.ruby }}
|
30
|
-
bundler-cache: true
|
31
|
-
|
32
|
-
- name: Install dependencies
|
33
|
-
run: bundle install --jobs 4 --retry 3
|
34
|
-
|
35
|
-
- name: Run tests
|
36
|
-
run: bundle exec rails test
|
37
|
-
|
38
|
-
- name: Run system tests
|
39
|
-
run: bundle exec rails test:system
|
40
|
-
|
41
|
-
- name: Archive logs
|
42
|
-
if: always()
|
43
|
-
uses: actions/upload-artifact@v4
|
44
|
-
with:
|
45
|
-
name: test.log
|
46
|
-
path: test/dummy/log/test.log
|
47
|
-
lint:
|
48
|
-
name: Lint
|
49
|
-
runs-on: ubuntu-latest
|
50
|
-
|
51
|
-
steps:
|
52
|
-
- name: Checkout code
|
53
|
-
uses: actions/checkout@v2
|
54
|
-
|
55
|
-
- name: Set up Ruby
|
56
|
-
uses: ruby/setup-ruby@v1
|
57
|
-
with:
|
58
|
-
ruby-version: 3.3
|
59
|
-
bundler-cache: true
|
60
|
-
|
61
|
-
- name: Install dependencies
|
62
|
-
run: bundle install --jobs 4 --retry 3
|
63
|
-
|
64
|
-
- name: Run linters
|
65
|
-
run: bin/fastcheck
|