human_enum_name 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: ac99776bd21ab5d235608341fd7fa70d068641a951e1d17baad0c6c81931ef87
4
+ data.tar.gz: a4129aef430a552a50ad4933881c219b7730f73ee68796fc2f0e8731fd70b2e3
5
+ SHA512:
6
+ metadata.gz: 5cd90d13d38ff8e91d403cac03407f909e1687e6f680a57f27be0b8a956cb8587094aebddd048d55cee09147d3c1e3f042d594559e72e21d1a3df09e5f4b3a78
7
+ data.tar.gz: c39fe10389f47ef5dbc763aab99a506540b8604073dab0f8335553990b3e0a0421cacfd193f26515627b25e82eb3f9a8cf34de06c01394fb4f036899b40f7563
data/LICENSE.txt ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2019 Juraj Kostolansky
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,70 @@
1
+ # human_enum_name
2
+
3
+ I18n support for Rails enums.
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ ```ruby
10
+ gem 'human_enum_name'
11
+ ```
12
+
13
+ And then execute:
14
+
15
+ ```bash
16
+ $ bundle
17
+ ```
18
+
19
+ Or install it yourself as:
20
+
21
+ ```bash
22
+ $ gem install human_enum_name
23
+ ```
24
+
25
+ ## Usage
26
+
27
+ Declare your enums:
28
+
29
+ ```ruby
30
+ class Conversation < ActiveRecord::Base
31
+ enum status: [:active, :archived]
32
+ end
33
+ ```
34
+
35
+ Add the enum values to your locale files:
36
+
37
+ ```yml
38
+ en:
39
+ activerecord:
40
+ attributes:
41
+ conversation:
42
+ statuses:
43
+ active: Active conversation
44
+ archived: Archived conversation
45
+ ```
46
+
47
+ Then, you can use the class method `human_enum_name`:
48
+
49
+ ```ruby
50
+ Conversation.human_enum_name(:status, :active) #=> "Active conversation"
51
+ ```
52
+
53
+ For an instance:
54
+
55
+ ```ruby
56
+ conversation = Conversation.new(status: :archived)
57
+ Conversation.human_enum_name(:status, conversation.status) #=> "Archived conversation"
58
+ ```
59
+
60
+ ## Contributing
61
+
62
+ Bug reports and pull requests are welcome on GitHub at https://github.com/jkostolansky/human_enum_name. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
63
+
64
+ ## License
65
+
66
+ The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
67
+
68
+ ## Code of Conduct
69
+
70
+ Everyone interacting in the human_enum_name project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/jkostolansky/human_enum_name/blob/master/CODE_OF_CONDUCT.md).
@@ -0,0 +1,21 @@
1
+ lib = File.expand_path("../lib", __FILE__)
2
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
+ require "human_enum_name/version"
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = "human_enum_name"
7
+ spec.version = HumanEnumName::VERSION
8
+ spec.authors = ["Juraj Kostolansky"]
9
+ spec.email = ["juraj@kostolansky.sk"]
10
+
11
+ spec.summary = "I18n support for Rails enums"
12
+ spec.homepage = "https://github.com/jkostolansky/human_enum_name"
13
+ spec.license = "MIT"
14
+
15
+ spec.files = Dir["README.md", "LICENSE.txt", "human_enum_name.gemspec", "lib/**/*.rb"]
16
+ spec.require_path = "lib"
17
+
18
+ spec.required_ruby_version = ">= 2.3.0"
19
+
20
+ spec.add_dependency "activesupport", ">= 4.2.0"
21
+ end
@@ -0,0 +1,6 @@
1
+ require "human_enum_name/version"
2
+ require "human_enum_name/helpers"
3
+
4
+ ActiveSupport.on_load :active_record do
5
+ include HumanEnumName::Helpers
6
+ end
@@ -0,0 +1,14 @@
1
+ module HumanEnumName
2
+ module Helpers
3
+ def self.included(base)
4
+ base.extend ClassMethods
5
+ end
6
+
7
+ module ClassMethods
8
+ def human_enum_name(enum_name, enum_value)
9
+ enum_i18n_key = enum_name.to_s.pluralize
10
+ I18n.t("activerecord.attributes.#{model_name.i18n_key}.#{enum_i18n_key}.#{enum_value}")
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,3 @@
1
+ module HumanEnumName
2
+ VERSION = "0.1.0"
3
+ end
metadata ADDED
@@ -0,0 +1,64 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: human_enum_name
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Juraj Kostolansky
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2019-02-12 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: activesupport
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 4.2.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 4.2.0
27
+ description:
28
+ email:
29
+ - juraj@kostolansky.sk
30
+ executables: []
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - LICENSE.txt
35
+ - README.md
36
+ - human_enum_name.gemspec
37
+ - lib/human_enum_name.rb
38
+ - lib/human_enum_name/helpers.rb
39
+ - lib/human_enum_name/version.rb
40
+ homepage: https://github.com/jkostolansky/human_enum_name
41
+ licenses:
42
+ - MIT
43
+ metadata: {}
44
+ post_install_message:
45
+ rdoc_options: []
46
+ require_paths:
47
+ - lib
48
+ required_ruby_version: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: 2.3.0
53
+ required_rubygems_version: !ruby/object:Gem::Requirement
54
+ requirements:
55
+ - - ">="
56
+ - !ruby/object:Gem::Version
57
+ version: '0'
58
+ requirements: []
59
+ rubyforge_project:
60
+ rubygems_version: 2.7.6
61
+ signing_key:
62
+ specification_version: 4
63
+ summary: I18n support for Rails enums
64
+ test_files: []