buddy_translatable 0.1.2 → 0.2.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: 5860ae961e251dc9f3bb1e1741ed4a41b17e78172a13f349766b3aaaaed00cb8
4
- data.tar.gz: a92c5dc5426d3b1b7ef176e6a4cabb6eca20bd684a55ac7b1ce85bd70408ee47
3
+ metadata.gz: 7400068f6a44cecc838b666b11a3d04e2379bd0e10f3ef64e92b62bb70438d8d
4
+ data.tar.gz: e41ee4fbe96d09530663597c37114f9dac7375e45008eeb4bafa3325b3790520
5
5
  SHA512:
6
- metadata.gz: eb9a0b94b60b05b7f725e88ec449c697d8bc1b1acf4c502f0f2c12fa359600cc4930815206cc9e72884215a779f079f3fe118cf3b6e34ec3999778e135ce689e
7
- data.tar.gz: 15f512c46b02f8dfbdd19643fe231f90bb65cfb170db8a10cf950a0ef6a9f67e9dce3e5dbcf570346bbb7a7ebb55fb60303daa5768caad3d459411cbc3234cbe
6
+ metadata.gz: 9efbcbc8f420ebd9011528e0d086d2836f8be5dfb6b0946c2911ba4c6089c6237ddb0e6b2f22542bdfecc95398df7a94483847a68430d9d6cd55e5a17adf3f7d
7
+ data.tar.gz: 41c4c3a915c831689e52088cf6b44c3fa1e0274283b33bfe55bc4e61bf6324f8a9d06e88410c3b647340807a5f1c51e3814a8e7131e0fe35c70d3309b1f956eb
@@ -0,0 +1,5 @@
1
+ # 0.2.0 (14-08-2020)
2
+ - Removed sales_datable
3
+
4
+ # 0.1.2
5
+ - First public release
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- buddy_translatable (0.1.2)
4
+ buddy_translatable (0.2.0)
5
5
  activerecord (>= 5.0)
6
6
  activesupport (>= 5.0)
7
7
  i18n
@@ -10,24 +10,23 @@ PATH
10
10
  GEM
11
11
  remote: https://rubygems.org/
12
12
  specs:
13
- activemodel (5.2.3)
14
- activesupport (= 5.2.3)
15
- activerecord (5.2.3)
16
- activemodel (= 5.2.3)
17
- activesupport (= 5.2.3)
18
- arel (>= 9.0)
19
- activesupport (5.2.3)
13
+ activemodel (6.0.3.2)
14
+ activesupport (= 6.0.3.2)
15
+ activerecord (6.0.3.2)
16
+ activemodel (= 6.0.3.2)
17
+ activesupport (= 6.0.3.2)
18
+ activesupport (6.0.3.2)
20
19
  concurrent-ruby (~> 1.0, >= 1.0.2)
21
20
  i18n (>= 0.7, < 2)
22
21
  minitest (~> 5.1)
23
22
  tzinfo (~> 1.1)
24
- arel (9.0.0)
25
- concurrent-ruby (1.1.5)
23
+ zeitwerk (~> 2.2, >= 2.2.2)
24
+ concurrent-ruby (1.1.7)
26
25
  diff-lcs (1.3)
27
- i18n (1.6.0)
26
+ i18n (1.8.5)
28
27
  concurrent-ruby (~> 1.0)
29
- minitest (5.11.3)
30
- pg (1.1.4)
28
+ minitest (5.14.1)
29
+ pg (1.2.3)
31
30
  rake (10.5.0)
32
31
  rspec (3.8.0)
33
32
  rspec-core (~> 3.8.0)
@@ -43,8 +42,9 @@ GEM
43
42
  rspec-support (~> 3.8.0)
44
43
  rspec-support (3.8.2)
45
44
  thread_safe (0.3.6)
46
- tzinfo (1.2.5)
45
+ tzinfo (1.2.7)
47
46
  thread_safe (~> 0.1)
47
+ zeitwerk (2.4.0)
48
48
 
49
49
  PLATFORMS
50
50
  ruby
@@ -56,4 +56,4 @@ DEPENDENCIES
56
56
  rspec (~> 3.0)
57
57
 
58
58
  BUNDLED WITH
59
- 1.16.2
59
+ 1.17.3
data/README.md CHANGED
@@ -1,9 +1,10 @@
1
1
  # JSON Buddy Translatable
2
2
 
3
- Allows you to store text data in multiple languages or Sales channels. Based on [translateable](https://github.com/olegantonyan/translateable), but with a few differences:
3
+ Allows you to store text data in multiple languages. Based on [translateable](https://github.com/olegantonyan/translateable), but with a few differences:
4
4
 
5
5
  1. Support for key methods
6
- 2. Support for Sales channels
6
+ 2. No extra table dependency
7
+ 3. Single attribute
7
8
 
8
9
  ### Translations
9
10
  ```ruby
@@ -37,40 +38,7 @@ post.title_es # => Hallo (return default key if not found)
37
38
  # Replace all data
38
39
  post.update(title: { en: 'En val', de: 'De val' })
39
40
  post.title_en # => En val
40
- ```
41
-
42
- ### Sales Channels
43
- ```ruby
44
- class Post < ActiveRecord::Base
45
- include BuddyTranslatable
46
- sales_datable :key, default_key: :vev
47
- end
48
- post = Post.create(key: { vev: 'vev', ebay: 'ebay' })
49
-
50
- # getter
51
- post.key #=> vev # return default key
52
- BuddyTranslatable.config.current_sales_key = :ebay
53
- post.key #=> ebay
54
-
55
- # you can reset current sales channel by
56
- BuddyTranslatable.config.reset_current_sales_key
57
-
58
- # Getter using methods
59
- post.key_vev #=> vev
60
- post.key_ebay #=> ebay
61
- post.key_for(:ebay) #=> ebay
62
- post.key_data_for(:vev) #=> vev
63
- post.key_data # => return all data (Hash)
64
-
65
- # Update current sales key (if empty will use default_key) and maintain others
66
- BuddyTranslatable.config.current_sales_key = :ebay
67
- post.update(key: 'Ebay changed')
68
- post.key_ebay # => Ebay changed
69
- post.key_vev # => vev
70
-
71
- # Replace all data
72
- post.update(key: { vev: 'vev val', ebay: 'ebay val' })
73
- post.key_vev # => vev val
41
+ post.title_es # => De val # default_key value is used when not defined
74
42
  ```
75
43
 
76
44
  ## Requirements
@@ -87,12 +55,8 @@ Add this line to your application's Gemfile:
87
55
  gem 'buddy_translatable'
88
56
  ```
89
57
 
90
- Create initializer:
91
- ```ruby
92
- # config/initializers/translatable.rb
93
- BuddyTranslatable.config.available_sales_keys = %i[de ebay]
94
- I18n.available_locales = %i[de en es]
95
- ```
58
+ Configure your available locales in your rails app, like:
59
+ ```I18n.available_locales = %i[de en es]```
96
60
 
97
61
  And then execute:
98
62
  ``` bundle install ```
@@ -104,7 +68,6 @@ class TestModel < ActiveRecord::Base
104
68
  include BuddyTranslatable
105
69
 
106
70
  translatable :title, default_key: :de
107
- sales_datable :key, default_key: :vev #, available_keys: [:ebay, :amazon, :vev]
108
71
  end
109
72
  ```
110
73
 
@@ -11,8 +11,8 @@ Gem::Specification.new do |spec|
11
11
  spec.authors = ['Owen']
12
12
  spec.email = ['owenperedo@gmail.com']
13
13
 
14
- spec.summary = 'Manages translations and sales data fields'
15
- spec.description = 'Manages translations and sales data fields'
14
+ spec.summary = 'Manages attribute translations translations'
15
+ spec.description = 'Manages attribute translations translations'
16
16
  spec.homepage = 'https://github.com/owen2345/buddy_translatable'
17
17
  spec.license = 'MIT'
18
18
 
@@ -1,13 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'buddy_translatable/version'
4
- require 'buddy_translatable/configuration'
5
4
  require 'buddy_translatable/core'
6
5
  module BuddyTranslatable
7
- def self.config
8
- @config ||= Configuration.new
9
- end
10
-
11
6
  def self.included(base)
12
7
  base.extend BuddyTranslatable::Core
13
8
  end
@@ -2,40 +2,24 @@
2
2
 
3
3
  module BuddyTranslatable
4
4
  module Core
5
- def translatable(*attrs, default_key: :de, available_keys: [])
6
- available_keys = I18n.available_locales unless available_keys.present?
5
+ def translatable(*attrs, default_key: :en, available_keys: nil)
6
+ available_keys ||= I18n.available_locales
7
7
  attrs.each do |attr|
8
8
  define_translatable_methods(attr, default_key)
9
9
  define_translatable_key_methods(attr, available_keys)
10
10
  end
11
11
  end
12
12
 
13
- def sales_datable(*attrs, default_key: :vev, available_keys: [])
14
- unless available_keys.present?
15
- available_keys = BuddyTranslatable.config.available_sales_keys
16
- end
17
- attrs.each do |attr|
18
- define_translatable_methods(attr, default_key, is_locale: false)
19
- define_translatable_key_methods(attr, available_keys)
20
- end
21
- end
22
-
23
- def define_translatable_methods(attr, default_key, is_locale: true)
24
- current_key = lambda do
25
- res = I18n.locale
26
- current_sales_key = BuddyTranslatable.config.current_sales_key
27
- res = current_sales_key || default_key unless is_locale
28
- res.to_sym
29
- end
30
- define_translatable_setters(attr, current_key)
13
+ def define_translatable_methods(attr, default_key)
14
+ define_translatable_setters(attr)
31
15
  define_translatable_key_getters(attr, default_key)
32
- define_translatable_getters(attr, current_key)
16
+ define_translatable_getters(attr)
33
17
  end
34
18
 
35
- def define_translatable_setters(attr, current_key)
19
+ def define_translatable_setters(attr)
36
20
  define_method("#{attr}_data=") do |arg|
37
21
  data = send("#{attr}_data")
38
- self[attr] = arg.is_a?(Hash) ? arg : data.merge(current_key.call => arg)
22
+ self[attr] = arg.is_a?(Hash) ? arg : data.merge(I18n.locale => arg)
39
23
  end
40
24
 
41
25
  define_method("#{attr}=") do |arg|
@@ -56,15 +40,15 @@ module BuddyTranslatable
56
40
  end
57
41
  end
58
42
 
59
- def define_translatable_getters(attr, current_key)
43
+ def define_translatable_getters(attr)
60
44
  define_method("#{attr}_data") do
61
45
  res = self[attr]
62
- res = new_record? ? { current_key.call => '' } : {} unless res.present?
46
+ res = new_record? ? { I18n.locale => '' } : {} unless res.present?
63
47
  res.symbolize_keys.with_indifferent_access
64
48
  end
65
49
 
66
50
  define_method(attr) do |**_args|
67
- send("#{attr}_data_for", current_key.call)
51
+ send("#{attr}_data_for", I18n.locale)
68
52
  end
69
53
  end
70
54
 
@@ -1,3 +1,3 @@
1
1
  module BuddyTranslatable
2
- VERSION = '0.1.2'.freeze
2
+ VERSION = '0.2.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: buddy_translatable
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Owen
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-10-29 00:00:00.000000000 Z
11
+ date: 2020-08-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -108,7 +108,7 @@ dependencies:
108
108
  - - ">="
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
- description: Manages translations and sales data fields
111
+ description: Manages attribute translations translations
112
112
  email:
113
113
  - owenperedo@gmail.com
114
114
  executables: []
@@ -118,6 +118,7 @@ files:
118
118
  - ".gitignore"
119
119
  - ".rspec"
120
120
  - ".travis.yml"
121
+ - CHANGELOG.md
121
122
  - CODE_OF_CONDUCT.md
122
123
  - Gemfile
123
124
  - Gemfile.lock
@@ -128,14 +129,13 @@ files:
128
129
  - bin/setup
129
130
  - buddy_translatable.gemspec
130
131
  - lib/buddy_translatable.rb
131
- - lib/buddy_translatable/configuration.rb
132
132
  - lib/buddy_translatable/core.rb
133
133
  - lib/buddy_translatable/version.rb
134
134
  homepage: https://github.com/owen2345/buddy_translatable
135
135
  licenses:
136
136
  - MIT
137
137
  metadata: {}
138
- post_install_message:
138
+ post_install_message:
139
139
  rdoc_options: []
140
140
  require_paths:
141
141
  - lib
@@ -150,9 +150,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
150
150
  - !ruby/object:Gem::Version
151
151
  version: '0'
152
152
  requirements: []
153
- rubyforge_project:
154
- rubygems_version: 2.7.7
155
- signing_key:
153
+ rubygems_version: 3.0.8
154
+ signing_key:
156
155
  specification_version: 4
157
- summary: Manages translations and sales data fields
156
+ summary: Manages attribute translations translations
158
157
  test_files: []
@@ -1,15 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module BuddyTranslatable
4
- class Configuration
5
- attr_accessor :available_sales_keys, :current_sales_key
6
-
7
- def initialize
8
- @available_sales_keys = %i[vev ebay]
9
- end
10
-
11
- def reset_current_sales_key
12
- @current_sales_key = nil
13
- end
14
- end
15
- end