helpyr 0.0.1 → 0.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f7b158b0a5d9b79256e1c404874b1891eb49ef25c693cdae21aa989bc99136dd
4
- data.tar.gz: 38054bb356242af31ae4873c51cf4c850d51b8d3d6076d59655cd436918cf83b
3
+ metadata.gz: 86d4399373dd70928d6d29765c2c22a7443894b166b2212c5c5adc50310c83f9
4
+ data.tar.gz: c1a2e9d4629e54ee11276dafede156d2e5fd9b20a03955b37383b887c15f8708
5
5
  SHA512:
6
- metadata.gz: 66e44e2b4dca701b22a72d78230345a490d90748a39f36efeca8f5d7bcf69c0fd857bad7ccbf7ca8eb9ddba7219f09111368f9f59237f4836695e9de82e70d64
7
- data.tar.gz: 27d2bcda46b6a31a6f14a148d168206be5cecb36d7f9eb109d3a50d018e17f940b94c31cbac5ae715f706d9cc22961f9c90b0ee0dc807e6f637ab586ef16f59d
6
+ metadata.gz: 68d849bb9f0ed2dffb9d2914d857bd8394ec2935f5f5ff820911de81f775d9de4e157290b373bf718bc111110dccb5b80ddc7a2b4d22c3619e1ace20c9260813
7
+ data.tar.gz: c1a774b9f1863f942d50938947014ef778e87f22415916f0f45daf051a771d49516cbaef938d6f6490fb56e2d219b554060e9c1e3845a59c7d6cf22b697e4a09
@@ -0,0 +1,10 @@
1
+ module Helpyr
2
+ class Engine < ::Rails::Engine
3
+ initializer "helpyr.helpers" do
4
+ ActiveSupport.on_load(:action_view) do
5
+ include Helpyr::Translation
6
+ include Helpyr::PageTitle
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,23 @@
1
+ en:
2
+ helpyr:
3
+ boolean:
4
+ true: "Yes"
5
+ false: "No"
6
+ alerts:
7
+ not_found:
8
+ male: "No %{model} found."
9
+ female: "No %{model} found."
10
+ form:
11
+ button:
12
+ create: "Create %{model}"
13
+ update: "Update %{model}"
14
+ alerts:
15
+ create:
16
+ success: "Record created successfully."
17
+ update:
18
+ success: "Record updated successfully."
19
+ destroy:
20
+ success: "Record deleted successfully."
21
+ not_found:
22
+ male: "No %{model} found."
23
+ female: "No %{model} found."
@@ -0,0 +1,23 @@
1
+ pt-BR:
2
+ helpyr:
3
+ boolean:
4
+ true: "Sim"
5
+ false: "Não"
6
+ alerts:
7
+ not_found:
8
+ male: "Nenhum %{model} foi encontrado."
9
+ female: "Nenhuma %{model} foi encontrada."
10
+ form:
11
+ button:
12
+ create: "Criar %{model}"
13
+ update: "Atualizar %{model}"
14
+ alerts:
15
+ create:
16
+ success: "Registro criado com sucesso."
17
+ update:
18
+ success: "Registro atualizado com sucesso."
19
+ destroy:
20
+ success: "Registro apagado com sucesso."
21
+ not_found:
22
+ male: "Nenhum %{model} foi encontrado."
23
+ female: "Nenhuma %{model} foi encontrada."
@@ -0,0 +1,12 @@
1
+ module Helpyr
2
+ module PageTitle
3
+ def page_title(*segments)
4
+ [
5
+ content_for(:turbo_native_title).presence ||
6
+ content_for(:page_title).presence ||
7
+ content_for(:title).presence,
8
+ *segments.compact_blank
9
+ ].compact.join(" » ")
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,182 @@
1
+ module Helpyr
2
+ module Translation
3
+ ##
4
+ # Public: Translate a model name.
5
+ #
6
+ # model: Model class.
7
+ # count: Count.
8
+ #
9
+ # Examples:
10
+ #
11
+ # <%= tm(Post) %>
12
+ # # => "Artigo"
13
+ #
14
+ # <%= tm(Post, 2) %>
15
+ # # => "Artigos"
16
+ #
17
+ # Returns translated model.
18
+ def translate_model_name(model, ...)
19
+ model.model_name.human(...)
20
+ end
21
+ alias_method :tm, :translate_model_name
22
+
23
+ ##
24
+ # Public: Translate a model name pluralized.
25
+ #
26
+ # model: Model class.
27
+ #
28
+ # Examples:
29
+ #
30
+ # <%= tmp(Post) %>
31
+ # # => "Artigos"
32
+ #
33
+ # Returns translated model pluralized.
34
+ def translate_model_name_pluralized(model, **)
35
+ translate_model_name(model, count: 2, **)
36
+ end
37
+ alias_method :tmp, :translate_model_name_pluralized
38
+
39
+ ##
40
+ # Public: Translate a model submit button.
41
+ #
42
+ # model: Model class.
43
+ #
44
+ # Examples:
45
+ #
46
+ # <%= tmb(Post, :create) %>
47
+ # => <button name="button" type="submit" class="btn btn-primary">
48
+ # => <i class="bi bi-save2"> </i>Criar Artigo
49
+ # => </button>
50
+ #
51
+ # <%= tmb(Post, :update) %>
52
+ # => <button name="button" type="submit" class="btn btn-primary">
53
+ # => <i class="bi bi-save2"> </i>Atualizar Artigo
54
+ # => </button>
55
+ #
56
+ # Returns translated model pluralized.
57
+ def translate_model_button(model, kind)
58
+ I18n.t("helpyr.form.button.#{kind}", model: tm(model))
59
+ end
60
+ alias_method :tmb, :translate_model_button
61
+
62
+ ##
63
+ # Public: Translate a model attribute.
64
+ #
65
+ # model: Model class.
66
+ # attribute: Attribute name.
67
+ # count: Count.
68
+ #
69
+ # Examples
70
+ #
71
+ # <%= ta(Post, :title) %>
72
+ # # => "Titulo"
73
+ #
74
+ # <%= ta(Post, :title, 2) %>
75
+ # # => "Títulos"
76
+ #
77
+ # Returns translated model's attribute.
78
+ def translate_model_attribute(model, attribute, ...)
79
+ model.human_attribute_name(attribute, ...)
80
+ end
81
+ alias_method :ta, :translate_model_attribute
82
+
83
+ ##
84
+ # Public: Translate a model enum.
85
+ #
86
+ # model: Model class.
87
+ # count: Count.
88
+ #
89
+ # Examples:
90
+ #
91
+ # <%= teo(Order, :statuses) %>
92
+ # # => [["Rascunho", "draft"], ["Pendente", "pending"], ["Em processamento", "processing"]]
93
+ #
94
+ # <%= teo(Order, :statuses, only: ["draft", "pending"]) %>
95
+ # # => [["Rascunho", "draft"], ["Pendente", "pending"]]
96
+ #
97
+ # <%= teo(Order, :statuses, except: ["pending"]) %>
98
+ # # => [["Rascunho", "draft"], ["Em processamento", "processing"]]
99
+ #
100
+ # Returns translated model's enum names.
101
+ def translate_model_enum_names(model, enum, only: [], except: [])
102
+ model.send(enum).keys.filter_map do |key|
103
+ next if only.present? && only.exclude?(key.to_s)
104
+ next if only.blank? && except.include?(key.to_s)
105
+
106
+ [model.human_attribute_name("#{enum}.#{key}"), key]
107
+ end
108
+ end
109
+ alias_method :teo, :translate_model_enum_names
110
+
111
+ ##
112
+ # Public: Translate a boolean attribute.
113
+ #
114
+ # value: TrueClass or FalseClass.
115
+ #
116
+ # Examples
117
+ #
118
+ # <%= tb true %>
119
+ # # => "Sim"
120
+ #
121
+ # <%= tb false %>
122
+ # # => "Não"
123
+ #
124
+ # Returns translated boolean's attribute.
125
+ def translate_boolean(value)
126
+ I18n.t("helpyr.boolean.#{value}")
127
+ end
128
+ alias_method :tb, :translate_boolean
129
+
130
+ ##
131
+ # Public: Translate a not found message.
132
+ #
133
+ # model: Model class.
134
+ # gender: Gender of the model.
135
+ #
136
+ # Examples:
137
+ #
138
+ # <%= tnf(Post, gender: :male) %>
139
+ # # => "Nenhum artigo foi encontrado."
140
+ #
141
+ # <%= tnf(Company, gender: :female) %>
142
+ # # => "Nenhuma empresa foi encontrada."
143
+ #
144
+ # Returns translated not found message.
145
+ def translate_not_found(model, gender:)
146
+ I18n.t("helpyr.alerts.not_found.#{gender}", model: tm(model).downcase)
147
+ end
148
+ alias_method :tnf, :translate_not_found
149
+
150
+ ##
151
+ # Public: Translate a not found message for male model.
152
+ #
153
+ # model: Model class.
154
+ #
155
+ # Examples:
156
+ #
157
+ # <%= tnfm(Post) %>
158
+ # # => "Nenhum artigo foi encontrado."
159
+ #
160
+ # Returns translated not found message for male model.
161
+ def translate_not_found_male(model)
162
+ tnf(model, gender: :male)
163
+ end
164
+ alias_method :tnfm, :translate_not_found_male
165
+
166
+ ##
167
+ # Public: Translate a not found message for female model.
168
+ #
169
+ # model: Model class.
170
+ #
171
+ # Examples:
172
+ #
173
+ # <%= tnff(Company) %>
174
+ # # => "Nenhuma empresa foi encontrada."
175
+ #
176
+ # Returns translated not found message for female model.
177
+ def translate_not_found_female(model)
178
+ tnf(model, gender: :female)
179
+ end
180
+ alias_method :tnff, :translate_not_found_female
181
+ end
182
+ end
@@ -1,3 +1,3 @@
1
1
  module Helpyr
2
- VERSION = "0.0.1"
2
+ VERSION = "0.1.0"
3
3
  end
data/lib/helpyr.rb CHANGED
@@ -1,6 +1,10 @@
1
1
  require_relative "helpyr/version"
2
+ require_relative "helpyr/engine"
3
+ require_relative "helpyr/translation"
4
+ require_relative "helpyr/page_title"
2
5
 
3
6
  module Helpyr
7
+ I18n.load_path += Dir[File.join(__dir__, "helpyr/locales/*.yml")]
8
+
4
9
  class Error < StandardError; end
5
- # Your code goes here...
6
10
  end
metadata CHANGED
@@ -1,14 +1,28 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: helpyr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lavenda Software
8
8
  bindir: exe
9
9
  cert_chain: []
10
10
  date: 1980-01-02 00:00:00.000000000 Z
11
- dependencies: []
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: rails
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: '7.2'
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - ">="
24
+ - !ruby/object:Gem::Version
25
+ version: '7.2'
12
26
  email:
13
27
  - lavenda@lavenda.com.br
14
28
  executables: []
@@ -23,6 +37,11 @@ files:
23
37
  - README.md
24
38
  - Rakefile
25
39
  - lib/helpyr.rb
40
+ - lib/helpyr/engine.rb
41
+ - lib/helpyr/locales/en.yml
42
+ - lib/helpyr/locales/pt-BR.yml
43
+ - lib/helpyr/page_title.rb
44
+ - lib/helpyr/translation.rb
26
45
  - lib/helpyr/version.rb
27
46
  - sig/helpyr.rbs
28
47
  homepage: https://github.com/LavendaSoftware/helpyr
@@ -40,7 +59,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
40
59
  requirements:
41
60
  - - ">="
42
61
  - !ruby/object:Gem::Version
43
- version: 3.4.0
62
+ version: 3.2.0
44
63
  required_rubygems_version: !ruby/object:Gem::Requirement
45
64
  requirements:
46
65
  - - ">="