rateaux 2.0.0 → 2.1.0
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/README.md +41 -7
- data/Rakefile +14 -4
- data/lib/rateaux/file_task.rb +2 -2
- data/lib/rateaux/namespaced.rb +3 -3
- data/lib/rateaux/version.rb +1 -1
- data/lib/tasks/rateaux_add_frozen_string_literal_headers.rake +3 -3
- data/lib/tasks/rateaux_db_migrate.rake +24 -0
- data/lib/tasks/rateaux_db_schema_view.rake +9 -10
- data/lib/tasks/rateaux_i18n_word_count.rake +48 -0
- metadata +9 -77
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a99a590fe7f149a351599a6b4b37c49b51c7de1b10b95900a3410c24bce20ca0
|
|
4
|
+
data.tar.gz: d09b6b5a682589c29fc8ddfaf001cd420f6ebbc75e3c25ed48405a5fcc0a7a45
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 6fb58245762852ea2e90b6d0bfe236be451e43c0bfd0d5c906d9d9309e1234f34a14f7cf7ab7b7aed8b5fa03d2307179581f1b7ab2ce6ec261b5638a3356dd6e
|
|
7
|
+
data.tar.gz: 6005f2d8433ef0bffb4e0f35b8b38420a285560bc4e0a86b735e5454f50813c0cbc8b20413a74e6711a26197577a01672c4dec5a95a955f60116f37cef0acbe2
|
data/README.md
CHANGED
|
@@ -17,7 +17,6 @@ gem "rateaux"
|
|
|
17
17
|
|
|
18
18
|
Then call `bundle install`.
|
|
19
19
|
|
|
20
|
-
|
|
21
20
|
## Tasks
|
|
22
21
|
|
|
23
22
|
### DB Truncate
|
|
@@ -37,6 +36,31 @@ Delete all data and tables from the current database. This is similar to
|
|
|
37
36
|
$ rake db:drop_tables
|
|
38
37
|
```
|
|
39
38
|
|
|
39
|
+
### DB Migrate Delete Orphaned
|
|
40
|
+
|
|
41
|
+
When your migration errors with "No migration with version number" you can call
|
|
42
|
+
this to delete all migrations that don’t have associated files anymore.
|
|
43
|
+
|
|
44
|
+
```sh
|
|
45
|
+
$ rake db:migrate:delete_orphaned
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### DB schema view
|
|
49
|
+
|
|
50
|
+
View the database structure.
|
|
51
|
+
|
|
52
|
+
```sh
|
|
53
|
+
$ rake db:schema:view
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### I18n word count
|
|
57
|
+
|
|
58
|
+
Show the number of translated words in every available locale.
|
|
59
|
+
|
|
60
|
+
```sh
|
|
61
|
+
$ rake i18n:word_count
|
|
62
|
+
```
|
|
63
|
+
|
|
40
64
|
### Checkout
|
|
41
65
|
|
|
42
66
|
Remove migrations then checkout a git branch.
|
|
@@ -79,22 +103,32 @@ to their non-digested form (for example `application.css`).
|
|
|
79
103
|
$ rake assets:copy_non_digested
|
|
80
104
|
```
|
|
81
105
|
|
|
82
|
-
###
|
|
106
|
+
### Frozen string literal
|
|
83
107
|
|
|
84
|
-
|
|
108
|
+
Add the `# frozen_string_literal: true` header to all Ruby files in the project.
|
|
85
109
|
|
|
86
110
|
```sh
|
|
87
|
-
$ rake
|
|
111
|
+
$ rake add_frozen_string_literal_headers
|
|
88
112
|
```
|
|
89
113
|
|
|
90
|
-
### Frozen string literal
|
|
91
114
|
|
|
92
|
-
|
|
115
|
+
## Release
|
|
116
|
+
|
|
117
|
+
To release a new version, update `CHANGELOG.md`, update the version in
|
|
118
|
+
`lib/rateaux/version.rb`.
|
|
119
|
+
|
|
120
|
+
Then:
|
|
93
121
|
|
|
94
122
|
```sh
|
|
95
|
-
|
|
123
|
+
git add CHANGELOG.md lib/rateaux/version.rb
|
|
124
|
+
git commit -m v`ruby -r./lib/rateaux/version <<< 'puts Rateaux::VERSION'`
|
|
125
|
+
bin/rake release
|
|
96
126
|
```
|
|
97
127
|
|
|
128
|
+
## License
|
|
129
|
+
|
|
130
|
+
The gem is available as open source under the terms of the [MIT License].
|
|
131
|
+
|
|
98
132
|
## The name
|
|
99
133
|
|
|
100
134
|
In French _rateaux_ means _rakes_.
|
data/Rakefile
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env rake
|
|
2
2
|
# frozen_string_literal: true
|
|
3
3
|
|
|
4
|
-
#
|
|
4
|
+
# Bundler
|
|
5
|
+
|
|
5
6
|
begin
|
|
6
7
|
require "bundler/setup"
|
|
7
8
|
rescue LoadError
|
|
@@ -10,7 +11,8 @@ end
|
|
|
10
11
|
|
|
11
12
|
Bundler::GemHelper.install_tasks
|
|
12
13
|
|
|
13
|
-
#
|
|
14
|
+
# RDoc
|
|
15
|
+
|
|
14
16
|
begin
|
|
15
17
|
require "rdoc/task"
|
|
16
18
|
rescue LoadError
|
|
@@ -27,7 +29,15 @@ RDoc::Task.new(:rdoc) do |rdoc|
|
|
|
27
29
|
rdoc.rdoc_files.include("lib/**/*.rb")
|
|
28
30
|
end
|
|
29
31
|
|
|
30
|
-
#
|
|
32
|
+
# RSpec
|
|
33
|
+
|
|
31
34
|
require "rspec/core/rake_task"
|
|
32
35
|
RSpec::Core::RakeTask.new(:spec)
|
|
33
|
-
|
|
36
|
+
|
|
37
|
+
# RuboCop
|
|
38
|
+
|
|
39
|
+
require "rubocop/rake_task"
|
|
40
|
+
|
|
41
|
+
RuboCop::RakeTask.new
|
|
42
|
+
|
|
43
|
+
task default: %i[spec rubocop]
|
data/lib/rateaux/file_task.rb
CHANGED
data/lib/rateaux/namespaced.rb
CHANGED
|
@@ -13,7 +13,7 @@ module Rateaux
|
|
|
13
13
|
#
|
|
14
14
|
# desc "Export everything"
|
|
15
15
|
# namespaced :export do
|
|
16
|
-
# default: [:a, :b]
|
|
16
|
+
# task default: [:a, :b]
|
|
17
17
|
#
|
|
18
18
|
# ...
|
|
19
19
|
# end
|
|
@@ -34,7 +34,7 @@ module Rateaux
|
|
|
34
34
|
# task export: ["export:a", "export:b"]
|
|
35
35
|
#
|
|
36
36
|
module Namespaced
|
|
37
|
-
def namespaced(name, defaults = :default, &
|
|
37
|
+
def namespaced(name, defaults = :default, &)
|
|
38
38
|
case defaults
|
|
39
39
|
when Symbol, String
|
|
40
40
|
task name => "#{name}:#{defaults}"
|
|
@@ -44,7 +44,7 @@ module Rateaux
|
|
|
44
44
|
task name => defaults.to_a.map { |t| "#{name}:#{t}" }
|
|
45
45
|
end
|
|
46
46
|
|
|
47
|
-
namespace
|
|
47
|
+
namespace(name, &)
|
|
48
48
|
end
|
|
49
49
|
end
|
|
50
50
|
end
|
data/lib/rateaux/version.rb
CHANGED
|
@@ -14,14 +14,14 @@ task add_frozen_string_literal_headers: :environment do
|
|
|
14
14
|
header = "# frozen_string_literal: true\n"
|
|
15
15
|
|
|
16
16
|
files.each do |file|
|
|
17
|
+
next if file.end_with?("db/schema.rb")
|
|
18
|
+
|
|
17
19
|
content = File.read(file)
|
|
18
20
|
next if content[0..header.length] == header
|
|
19
21
|
|
|
20
22
|
content = content.gsub(/^# (frozen_string_literal: true)\n/i, "")
|
|
21
23
|
content = "#{header}#{content}"
|
|
22
24
|
|
|
23
|
-
|
|
24
|
-
new_file.write(content)
|
|
25
|
-
new_file.close
|
|
25
|
+
File.write(file, content)
|
|
26
26
|
end
|
|
27
27
|
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# Delete orhphaned migrations.
|
|
4
|
+
#
|
|
5
|
+
# $ rake db:migrate:delete_orphaned
|
|
6
|
+
namespace :db do
|
|
7
|
+
namespace :migrate do
|
|
8
|
+
desc "Delete migrations that don’t have associated files anymore"
|
|
9
|
+
task delete_orphaned: :environment do
|
|
10
|
+
removed_file_versions =
|
|
11
|
+
ActiveRecord::Base
|
|
12
|
+
.connection_pool
|
|
13
|
+
.migration_context
|
|
14
|
+
.migrations_status
|
|
15
|
+
.filter_map { |_, version, name| version if name.include?("NO FILE") }
|
|
16
|
+
|
|
17
|
+
removed_file_versions.each do |version|
|
|
18
|
+
puts "Deleting orphaned version #{version}"
|
|
19
|
+
sql = "DELETE FROM schema_migrations WHERE version = '#{version}'"
|
|
20
|
+
ActiveRecord::Base.connection.execute(sql)
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -7,19 +7,18 @@ require "terminal-table"
|
|
|
7
7
|
namespace :db do
|
|
8
8
|
namespace :schema do
|
|
9
9
|
desc "View database schema"
|
|
10
|
-
task :
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
tables = ActiveRecord::Base.connection.tables.reject do |t|
|
|
15
|
-
t == "schema_migrations"
|
|
16
|
-
end
|
|
17
|
-
tables.each do |table|
|
|
10
|
+
task view: :environment do
|
|
11
|
+
ActiveRecord::Base.connection.tables.each do |table|
|
|
12
|
+
next if table == "schema_migrations"
|
|
13
|
+
|
|
18
14
|
rows = ActiveRecord::Base.connection.columns(table).map do |column|
|
|
19
15
|
[column.name, column.type]
|
|
20
16
|
end
|
|
21
|
-
table = Terminal::Table.new
|
|
22
|
-
|
|
17
|
+
table = Terminal::Table.new(
|
|
18
|
+
title: table,
|
|
19
|
+
headings: %w[Name Type],
|
|
20
|
+
rows: rows
|
|
21
|
+
)
|
|
23
22
|
puts table
|
|
24
23
|
end
|
|
25
24
|
end
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# Show the number of translated words in every available locale.
|
|
4
|
+
#
|
|
5
|
+
# $ rake i18n:word_count
|
|
6
|
+
|
|
7
|
+
require "unicode/emoji"
|
|
8
|
+
|
|
9
|
+
class RateauxI18nWordCount
|
|
10
|
+
include ActionView::Helpers::SanitizeHelper
|
|
11
|
+
|
|
12
|
+
def words_for_locale(locale)
|
|
13
|
+
translations = I18n.t(".", locale: locale)
|
|
14
|
+
words = hash_string_values(translations).flat_map do |translation|
|
|
15
|
+
strip_tags(translation).split(/\s+/)
|
|
16
|
+
end
|
|
17
|
+
words.reject do |word|
|
|
18
|
+
word.blank? ||
|
|
19
|
+
word.size == 1 ||
|
|
20
|
+
word.start_with?("%") ||
|
|
21
|
+
word.match?(Unicode::Emoji::REGEX_VALID_INCLUDE_TEXT)
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
private
|
|
26
|
+
|
|
27
|
+
def hash_string_values(hash)
|
|
28
|
+
hash.inject([]) do |array, (_key, value)|
|
|
29
|
+
case value
|
|
30
|
+
when Hash then array + hash_string_values(value)
|
|
31
|
+
when String then array + [value]
|
|
32
|
+
else array
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
namespace :i18n do
|
|
39
|
+
desc "Show the number of translated words in every available locale"
|
|
40
|
+
task word_count: :environment do
|
|
41
|
+
counter = RateauxI18nWordCount.new
|
|
42
|
+
|
|
43
|
+
I18n.available_locales.each do |locale|
|
|
44
|
+
words = counter.words_for_locale(locale)
|
|
45
|
+
puts "#{locale}: #{words.count} (#{words.uniq.count} unique)"
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rateaux
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.1.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Sunny Ripert
|
|
8
8
|
bindir: bin
|
|
9
9
|
cert_chain: []
|
|
10
|
-
date:
|
|
10
|
+
date: 2026-07-22 00:00:00.000000000 Z
|
|
11
11
|
dependencies:
|
|
12
12
|
- !ruby/object:Gem::Dependency
|
|
13
13
|
name: database_cleaner
|
|
@@ -52,90 +52,20 @@ dependencies:
|
|
|
52
52
|
- !ruby/object:Gem::Version
|
|
53
53
|
version: '0'
|
|
54
54
|
- !ruby/object:Gem::Dependency
|
|
55
|
-
name:
|
|
55
|
+
name: unicode-emoji
|
|
56
56
|
requirement: !ruby/object:Gem::Requirement
|
|
57
57
|
requirements:
|
|
58
58
|
- - ">="
|
|
59
59
|
- !ruby/object:Gem::Version
|
|
60
60
|
version: '0'
|
|
61
|
-
type: :
|
|
62
|
-
prerelease: false
|
|
63
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
64
|
-
requirements:
|
|
65
|
-
- - ">="
|
|
66
|
-
- !ruby/object:Gem::Version
|
|
67
|
-
version: '0'
|
|
68
|
-
- !ruby/object:Gem::Dependency
|
|
69
|
-
name: rspec-rails
|
|
70
|
-
requirement: !ruby/object:Gem::Requirement
|
|
71
|
-
requirements:
|
|
72
|
-
- - ">="
|
|
73
|
-
- !ruby/object:Gem::Version
|
|
74
|
-
version: '0'
|
|
75
|
-
type: :development
|
|
76
|
-
prerelease: false
|
|
77
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
78
|
-
requirements:
|
|
79
|
-
- - ">="
|
|
80
|
-
- !ruby/object:Gem::Version
|
|
81
|
-
version: '0'
|
|
82
|
-
- !ruby/object:Gem::Dependency
|
|
83
|
-
name: rubocop
|
|
84
|
-
requirement: !ruby/object:Gem::Requirement
|
|
85
|
-
requirements:
|
|
86
|
-
- - ">="
|
|
87
|
-
- !ruby/object:Gem::Version
|
|
88
|
-
version: '0'
|
|
89
|
-
type: :development
|
|
90
|
-
prerelease: false
|
|
91
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
92
|
-
requirements:
|
|
93
|
-
- - ">="
|
|
94
|
-
- !ruby/object:Gem::Version
|
|
95
|
-
version: '0'
|
|
96
|
-
- !ruby/object:Gem::Dependency
|
|
97
|
-
name: rubocop-rspec
|
|
98
|
-
requirement: !ruby/object:Gem::Requirement
|
|
99
|
-
requirements:
|
|
100
|
-
- - ">="
|
|
101
|
-
- !ruby/object:Gem::Version
|
|
102
|
-
version: '0'
|
|
103
|
-
type: :development
|
|
104
|
-
prerelease: false
|
|
105
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
106
|
-
requirements:
|
|
107
|
-
- - ">="
|
|
108
|
-
- !ruby/object:Gem::Version
|
|
109
|
-
version: '0'
|
|
110
|
-
- !ruby/object:Gem::Dependency
|
|
111
|
-
name: rubocop-rspec_rails
|
|
112
|
-
requirement: !ruby/object:Gem::Requirement
|
|
113
|
-
requirements:
|
|
114
|
-
- - ">="
|
|
115
|
-
- !ruby/object:Gem::Version
|
|
116
|
-
version: '0'
|
|
117
|
-
type: :development
|
|
118
|
-
prerelease: false
|
|
119
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
120
|
-
requirements:
|
|
121
|
-
- - ">="
|
|
122
|
-
- !ruby/object:Gem::Version
|
|
123
|
-
version: '0'
|
|
124
|
-
- !ruby/object:Gem::Dependency
|
|
125
|
-
name: sqlite3
|
|
126
|
-
requirement: !ruby/object:Gem::Requirement
|
|
127
|
-
requirements:
|
|
128
|
-
- - ">="
|
|
129
|
-
- !ruby/object:Gem::Version
|
|
130
|
-
version: '0'
|
|
131
|
-
type: :development
|
|
61
|
+
type: :runtime
|
|
132
62
|
prerelease: false
|
|
133
63
|
version_requirements: !ruby/object:Gem::Requirement
|
|
134
64
|
requirements:
|
|
135
65
|
- - ">="
|
|
136
66
|
- !ruby/object:Gem::Version
|
|
137
67
|
version: '0'
|
|
138
|
-
description: A collection of
|
|
68
|
+
description: A collection of useful Rake tasks for Rails.
|
|
139
69
|
email:
|
|
140
70
|
- sunny@sunfox.org
|
|
141
71
|
executables: []
|
|
@@ -153,8 +83,10 @@ files:
|
|
|
153
83
|
- lib/tasks/rateaux_cache_clear.rake
|
|
154
84
|
- lib/tasks/rateaux_copy_non_digested_assets.rake
|
|
155
85
|
- lib/tasks/rateaux_db.rake
|
|
86
|
+
- lib/tasks/rateaux_db_migrate.rake
|
|
156
87
|
- lib/tasks/rateaux_db_schema_view.rake
|
|
157
88
|
- lib/tasks/rateaux_git_checkout.rake
|
|
89
|
+
- lib/tasks/rateaux_i18n_word_count.rake
|
|
158
90
|
- lib/tasks/rateaux_notes_mine.rake
|
|
159
91
|
- lib/tasks/rateaux_sidekiq_flush.rake
|
|
160
92
|
homepage: http://github.com/sunny/rateaux
|
|
@@ -168,7 +100,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
168
100
|
requirements:
|
|
169
101
|
- - ">="
|
|
170
102
|
- !ruby/object:Gem::Version
|
|
171
|
-
version: 2
|
|
103
|
+
version: '3.2'
|
|
172
104
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
173
105
|
requirements:
|
|
174
106
|
- - ">="
|
|
@@ -177,5 +109,5 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
177
109
|
requirements: []
|
|
178
110
|
rubygems_version: 3.6.2
|
|
179
111
|
specification_version: 4
|
|
180
|
-
summary: A collection of
|
|
112
|
+
summary: A collection of useful Rake tasks for Rails.
|
|
181
113
|
test_files: []
|