flagist 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 ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ MmZiYWFiNWZmMzEzNzVhNWI0NDk3ZjVmNDc0ZThlZTQ2Yzg5YjAwZg==
5
+ data.tar.gz: !binary |-
6
+ MDA5YTJiNTEyZmY5MmNiMGYwOWJhMGMyN2I3N2Q2NzQ5ZDAwNTJiNw==
7
+ SHA512:
8
+ metadata.gz: !binary |-
9
+ MWVkOTYyNTlkNmI3MjYxZWQ3ZjQ1MzlhYjMwNTBhMDNhYzZhNmNmMTA2M2Yy
10
+ NWM5ODliMDYwNWUzM2E4MWQyYzlmNzA0MmM4ZjJjYWFiNTVmZDc2MTFkNzU4
11
+ ZDA2ZmEzNDlkY2JlYTJjNWI1YWE2MTFmMTgyYTA0MDgxMmVlOTM=
12
+ data.tar.gz: !binary |-
13
+ YjlmNzk2MDEyMjY3NDYxNjQwMGE5MjJlOGIwZDhkY2NkYmQwZTFkY2Q4MjAz
14
+ MmZkNDc3YjYyYmIyMzM1NTA0Zjc0Yjc3MTBmNTNlZmRmOWQ5YmFkNjMzZGQw
15
+ ZWNkNjZiYmRmMWZiZjI1MmRkNzNiNmRiNGFlNjg5Yzg0YjNkYTI=
data/.gitignore ADDED
@@ -0,0 +1,9 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
data/.travis.yml ADDED
@@ -0,0 +1,12 @@
1
+ sudo: false
2
+ language: ruby
3
+ rvm:
4
+ - 2.3.1
5
+ before_install: gem install bundler -v 1.12.3
6
+ script: bundle exec rake
7
+ deploy:
8
+ provider: rubygems
9
+ api_key:
10
+ secure: UurdZcRQcGckbdtg8N09Zb00IPcMuS0bZfiDzINlObvPrTFaNnlG9byfqyxmzRPomNcuHF/6j+Y2Boi/PKyBS4W2kcwXrMbcbQ+SHD+de5O1G5QsX7VKUBILlnpaDhf4F2L43FyFoStXHsJb0Tem/pA4tnVeTiaUZ+bd8VUYlbbB+uMl+fb8E+6pRxUAtBHx2vK/UKrs+teIohuxe03JLaboqpaIWisJ5o2P+/BD4U4BVV2aT6JssnIAGjvjNmbRmT7RTE1Xod2ZYOQc5PwG4GVMdYPI9BDz8jP/YjOR1SkhekDrtymJ0MnOesAwqHRRv+Qk/YccgYd2Fj3eF4isTtiQ3Ds/eglrUUGI80RGdoCkrzOtMhPwY7hOnRX5NdmKKIn81ZddThdafY2XjGOMzcjOGuiQAIWC0i8HT9xHv3a6dmXyy1frhYemvG3KX1rxb3b4SjlW/WjSiU1z3E313GDqDB+HBGuRMVs/LsFpE4mm6V3QzbZfRO6REToeGs4DGFIUodvA0/gHmWK79aUavfNm+u9kjpOj1yuzDL+1MsiFtNebp5CNLP4nmWNeJV65Qf502bVE6a+UNDJGkykqn12aqvLD4KMFASs8CYUe73YGQ7ec9IQnvLoYmQhGLWT3dW1UOqrPeqBJvUyV3Bnv0Mm4DUL8fIvkY76peAsSccw=
11
+ on:
12
+ tags: true
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in flagist.gemspec
4
+ gemspec
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2016 sanzen-sekai
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 all
13
+ 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 THE
21
+ SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,300 @@
1
+ # flagist
2
+
3
+ flag addon to active model
4
+
5
+ ![Build Status](https://travis-ci.org/sanzen-sekai/flagist.svg?branch=master)
6
+
7
+ ## Installation
8
+
9
+ Add this line to your application's Gemfile:
10
+
11
+ ```ruby
12
+ gem 'flagist'
13
+ ```
14
+
15
+ And then execute:
16
+
17
+ $ bundle
18
+
19
+ Or install it yourself as:
20
+
21
+ $ gem install flagist
22
+
23
+ ## Usage
24
+
25
+ 初期化
26
+ ActiveModel::Model に flagist クラスメソッドをインクルードする
27
+
28
+ 気になるなら、各モデルで `include Flagist` でも良い
29
+
30
+ ```ruby
31
+ # config/initializers/flagist.rb
32
+ Flagist.install
33
+ # ActiveModel::Model.send :include, Flagist
34
+ ```
35
+
36
+ フラグ設定は各モデルで行う
37
+
38
+ ```ruby
39
+ # app/models/my_model.rb
40
+ class MyModel < ActiveRecord::Base
41
+ flagist do |flag|
42
+ flag.is_active true, false
43
+
44
+ flag.color nil => :blank, 1 => :yellow, 2 => :red, 3 => :green
45
+
46
+ flag.roles :admin, :user, :guest
47
+
48
+ # flag.フラグ ( 値, 値, 値, ... )
49
+ # flag.フラグ ( 値 => name, ... )
50
+
51
+ # フラグ名を複数形で指定すると type: :array になる
52
+ # その場合の型は String で、値のカンマ区切りで保存される
53
+
54
+ # name が String で指定された場合、 symbol に変換される
55
+ end
56
+ end
57
+ ```
58
+
59
+ i18n
60
+
61
+ ```yml
62
+ # config/locales/models/my_model/ja.yml
63
+ ja:
64
+ activerecord:
65
+ flags:
66
+ my_model:
67
+ is_active:
68
+ true: 有効
69
+ false: 無効
70
+ color:
71
+ blank: なし
72
+ yellow: 黄
73
+ red: 赤
74
+ green: 緑
75
+ roles:
76
+ admin: 管理
77
+ user: ユーザー
78
+ guest: ゲスト
79
+ ```
80
+
81
+ ラベル情報の取得
82
+
83
+ ```ruby
84
+ MyModel.is_active_labels #=> {true => "有効", false => "無効"}
85
+ MyModel.is_active_names #=> {true => true, false => false}
86
+
87
+ MyModel.color_labels #=> {nil => "なし", 1 => "黄", 2 => "赤", 3 => "緑"}
88
+ MyModel.color_names #=> {nil => :blank, 1 => :yellow, 2 => :red, 3 => :green}
89
+
90
+ MyModel.roles_labels #=> {:admin => "管理", :user => "ユーザー", :guest => "ゲスト"}
91
+ MyModel.roles_names #=> {:admin => :admin, :user => :user, :guest => :guest}
92
+
93
+
94
+ MyModel.color_labels_inverse #=> {"なし" => nil, "黄" => 1, "赤" => 2, "緑" => 3}
95
+ MyModel.color_names_inverse #=> {:blank => nil, :yellow => 1, :red => 2, :green => 3}
96
+ ```
97
+
98
+ 値の取得
99
+
100
+ 値、 name, label のどれを指定しても良い
101
+ それぞれに重複するものがあるとおかしくなるが、そもそもそんな設定はおかしい
102
+
103
+ ```ruby
104
+ MyModel.is_active(true) #=> true
105
+ MyModel.is_active("有効") #=> true
106
+
107
+ MyModel.is_active_name(true) #=> true
108
+ MyModel.is_active_name("有効") #=> true
109
+
110
+ MyModel.is_active_label(true) #=> "有効"
111
+ MyModel.is_active_label("有効") #=> "有効"
112
+
113
+
114
+ MyModel.color(1) #=> 1
115
+ MyModel.color(:yellow) #=> 1
116
+ MyModel.color("黄") #=> 1
117
+
118
+ MyModel.color_name(1) #=> :yellow
119
+ MyModel.color_name(:yellow) #=> :yellow
120
+ MyModel.color_name("黄") #=> :yellow
121
+
122
+ MyModel.color_label(1) #=> "黄"
123
+ MyModel.color_label(:yellow) #=> "黄"
124
+ MyModel.color_label("黄") #=> "黄"
125
+
126
+
127
+ MyModel.roles(:admin) #=> :admin
128
+ MyModel.roles("管理") #=> :admin
129
+
130
+ MyModel.roles_name(:admin) #=> :admin
131
+ MyModel.roles_name("管理") #=> :admin
132
+
133
+ MyModel.roles_label(:admin) #=> "管理"
134
+ MyModel.roles_label("管理") #=> "管理"
135
+ ```
136
+
137
+ 配列で指定すると配列で戻る
138
+
139
+ ```ruby
140
+ MyModel.roles_label([:admin, :user]) #=> ["管理", "ユーザー"]
141
+ ```
142
+
143
+ 存在しない場合は例外が発生
144
+
145
+ ```ruby
146
+ MyModel.roles_label("マネージャー") #=> raise Flagist::UnknownFlagError
147
+ ```
148
+
149
+ インスタンスメソッド
150
+ `type: :array` の場合、 `roles_name`, `roles_label` の戻り値は配列になる
151
+
152
+ 戻り値は freeze して返される
153
+
154
+ ```ruby
155
+ model = MyModel.new
156
+
157
+ model.is_active #=> true
158
+ model.is_active_name #=> true
159
+ model.is_active_label #=> "有効"
160
+
161
+ model.color #=> 1
162
+ model.color_name #=> :yellow
163
+ model.color_label #=> "黄"
164
+
165
+ model.roles #=> "admin,user"
166
+ model.roles_name #=> [:admin,:user]
167
+ model.roles_label #=> ["管理","ユーザー"]
168
+ ```
169
+
170
+ クラスメソッドと同様の呼び出しも可能
171
+
172
+ ```ruby
173
+ model = MyModel.new
174
+
175
+ model.is_active(true) #=> true
176
+ model.is_active("有効") #=> true
177
+
178
+ model.is_active_name(true) #=> true
179
+ model.is_active_name("有効") #=> true
180
+
181
+ model.is_active_label(true) #=> "有効"
182
+ model.is_active_label("有効") #=> "有効"
183
+
184
+
185
+ model.color(1) #=> 1
186
+ model.color(:yellow) #=> 1
187
+ model.color("黄") #=> 1
188
+
189
+ model.color_name(1) #=> :yellow
190
+ model.color_name(:yellow) #=> :yellow
191
+ model.color_name("黄") #=> :yellow
192
+
193
+ model.color_label(1) #=> "黄"
194
+ model.color_label(:yellow) #=> "黄"
195
+ model.color_label("黄") #=> "黄"
196
+
197
+
198
+ model.roles(:admin) #=> :admin
199
+ model.roles("管理") #=> :admin
200
+
201
+ model.roles_name(:admin) #=> "管理"
202
+ model.roles_name("管理") #=> "管理"
203
+
204
+ model.roles_label(:admin) #=> "管理"
205
+ model.roles_label("管理") #=> "管理"
206
+
207
+
208
+ model.roles_label([:admin, :user]) #=> ["管理", "ユーザー"]
209
+ ```
210
+
211
+ 値の設定
212
+
213
+ ```ruby
214
+ model = MyModel.new
215
+
216
+ model.is_active = true
217
+ model.is_active_name = true
218
+ model.is_active_label = "有効"
219
+
220
+ model.color = 1
221
+ model.color_name = :yellow
222
+ model.color_label = "黄"
223
+
224
+ model.roles = "admin,user"
225
+ model.roles_name = [:admin,:user]
226
+ model.roles_label = ["管理","ユーザー"]
227
+ ```
228
+
229
+ 存在しない場合は例外が発生
230
+
231
+ ```ruby
232
+ model.roles_label = ["マネージャー"] #=> raise Flagist::UnknownFlagError
233
+ ```
234
+
235
+ 第一引数にオプションを渡すと :type の上書きが可能
236
+
237
+ ```ruby
238
+ flag.is_active {type: :scalar}, true, false
239
+ ```
240
+
241
+ 全設定の dump
242
+
243
+ ```ruby
244
+ MyModel.flagist
245
+ # => {
246
+ # is_active: {
247
+ # type: :scalar,
248
+ # flags: {
249
+ # true => {value: true, name: true, label: "有効"},
250
+ # false => {value: false, name: false, label: "無効"},
251
+ # },
252
+ # },
253
+ # color: {
254
+ # type: :scalar,
255
+ # flags: {
256
+ # nil => {value: nil, name: :blank, label: "なし"},
257
+ # 1 => {value: 1, name: :yellow, label: "黄"},
258
+ # 2 => {value: 2, name: :red, label: "赤"},
259
+ # 3 => {value: 3, name: :green, label: "緑"},
260
+ # },
261
+ # },
262
+ # roles: {
263
+ # type: :array,
264
+ # flags: {
265
+ # :admin => {value: :admin, name: :admin, label: "管理"},
266
+ # :user => {value: :user, name: :user, label: "ユーザー"},
267
+ # :guest => {value: :guest, name: :guest, label: "ゲスト"},
268
+ # },
269
+ # },
270
+ # }
271
+ # # i18n が設定されていない場合は label には name が使用される
272
+ # # この時、 name が明示的に指定されていない場合は label は nil が使用される
273
+ ```
274
+
275
+ ## Configure
276
+
277
+ 設定可能なパラメータとデフォルト
278
+
279
+ ```ruby
280
+ # config/initializers/flagist.rb
281
+ Flagist.configure do |config|
282
+ config.i18n_namespace = "activerecord.flags" # I18n.translate でカラム名を取得する際の namespace
283
+ end
284
+ ```
285
+
286
+ ## Development
287
+
288
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
289
+
290
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
291
+
292
+ ## Contributing
293
+
294
+ Bug reports and pull requests are welcome on GitHub at https://github.com/sanzen-sekai/flagist.
295
+
296
+
297
+ ## License
298
+
299
+ The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
300
+
data/Rakefile ADDED
@@ -0,0 +1,10 @@
1
+ require "bundler/gem_tasks"
2
+ require "rake/testtask"
3
+
4
+ Rake::TestTask.new(:test) do |t|
5
+ t.libs << "test"
6
+ t.libs << "lib"
7
+ t.test_files = FileList['test/**/*_test.rb']
8
+ end
9
+
10
+ task :default => :test
data/bin/console ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "flagist"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start
data/bin/setup ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
data/flagist.gemspec ADDED
@@ -0,0 +1,28 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'flagist/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "flagist"
8
+ spec.version = Flagist::VERSION
9
+ spec.authors = ["shun-fix9"]
10
+ spec.email = ["shun.fix9@gmail.com"]
11
+
12
+ spec.summary = %q{flag addon to active record}
13
+ spec.description = %q{like enum, my flag addon}
14
+ spec.homepage = "https://github.com/sanzen-sekai/flagist"
15
+ spec.license = "MIT"
16
+
17
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
18
+ spec.bindir = "exe"
19
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
+ spec.require_paths = ["lib"]
21
+
22
+ spec.add_development_dependency "travis", "~> 1.8"
23
+ spec.add_development_dependency "bundler", "~> 1.12"
24
+ spec.add_development_dependency "rake", "~> 10.0"
25
+ spec.add_development_dependency "minitest", "~> 5.0"
26
+
27
+ spec.add_development_dependency "activemodel", "~> 4.0"
28
+ end
@@ -0,0 +1,3 @@
1
+ module Flagist
2
+ VERSION = "0.1.0"
3
+ end
data/lib/flagist.rb ADDED
@@ -0,0 +1,203 @@
1
+ require "flagist/version"
2
+
3
+ module Flagist
4
+ class UnknownFlagError < ::StandardError
5
+ def self.raise_by(method,prop,value)
6
+ raise ::Flagist::UnknownFlagError, "#{method}'s #{prop} not exists. value: [#{value.inspect}]"
7
+ end
8
+ end
9
+
10
+ module ClassMethods
11
+ def install
12
+ ActiveModel::Model.send :include, ::Flagist
13
+ end
14
+
15
+ def configure
16
+ @config ||= OpenStruct.new
17
+ yield @config if block_given?
18
+ @config
19
+ end
20
+ def config
21
+ @config
22
+ end
23
+ end
24
+ extend ClassMethods
25
+
26
+ configure do |config|
27
+ config.i18n_namespace = "activerecord.flags"
28
+ end
29
+
30
+
31
+ def self.included(m)
32
+ m.extend ::Flagist::ModuleMethods
33
+ end
34
+
35
+ module ModuleMethods
36
+ def flagist
37
+ flagist = @flagist ||= {}
38
+ if block_given?
39
+ yield ::Flagist::Definer.new(self,flagist)
40
+
41
+ self.class.class_eval do
42
+ flagist.each do |method,info|
43
+ {value: "", name: "_name", label: "_label"}.each do |prop,suffix|
44
+ define_method :"#{method}#{suffix}" do |args|
45
+ if args.respond_to?(:map)
46
+ args_is_array = true
47
+ wrapped_args = args
48
+ else
49
+ wrapped_args = [args]
50
+ end
51
+
52
+ result = wrapped_args.map{|arg|
53
+ value, flag = flagist[method][:flags].find{|value,flag|
54
+ value == arg ||
55
+ flag[:name] == arg ||
56
+ (arg.respond_to?(:to_sym) && flag[:name] == arg.to_sym) ||
57
+ flag[:label] == arg
58
+ }
59
+ unless flag
60
+ ::Flagist::UnknownFlagError.raise_by method, "value", arg
61
+ end
62
+ flag[prop]
63
+ }
64
+
65
+ if args_is_array
66
+ result
67
+ else
68
+ result.first
69
+ end
70
+ end
71
+ end
72
+ %i(name label).each do |prop|
73
+ define_method :"#{method}_#{prop}s" do
74
+ flagist[method][:flags].each.map{|value,flag| [value,flag[prop]]}.to_h
75
+ end
76
+ define_method :"#{method}_#{prop}s_inverse" do
77
+ flagist[method][:flags].each.map{|value,flag| [flag[prop],value]}.to_h
78
+ end
79
+ end
80
+ end
81
+ end
82
+
83
+ instance_methods = Module.new
84
+ instance_methods.class_eval do
85
+ flagist.each do |method,info|
86
+ {value: "", name: "_name", label: "_label"}.each do |prop,suffix|
87
+ define_method :"#{method}#{suffix}" do |*all_args|
88
+ if all_args.size > 1
89
+ raise ::ArgumentError, "wrong number of arguments (given #{all_args.size}, expected 0..1)"
90
+ end
91
+
92
+ if all_args.size > 0
93
+ args = all_args.first
94
+ else
95
+ if prop == :value
96
+ return super()
97
+ end
98
+
99
+ args = __send__ method
100
+
101
+ if info[:type] == :array
102
+ if args.respond_to?(:split)
103
+ args = args.split(",")
104
+ end
105
+ end
106
+ end
107
+
108
+ self.class.__send__(:"#{method}#{suffix}", args).freeze
109
+ end
110
+ end
111
+ %i(name label).each do |prop|
112
+ ["","_inverse"].each do |suffix|
113
+ define_method :"#{method}_#{prop}s#{suffix}" do
114
+ self.class.__send__ :"#{method}_#{prop}s#{suffix}"
115
+ end
116
+ end
117
+ define_method :"#{method}_#{prop}=" do |new_values|
118
+ if info[:type] != :array
119
+ new_values = [new_values]
120
+ end
121
+
122
+ result = new_values.map{|new_value|
123
+ value, flag = flagist[method][:flags].find{|value,flag| flag[prop] == new_value}
124
+ unless flag
125
+ ::Flagist::UnknownFlagError.raise_by method, prop, new_value
126
+ end
127
+ value
128
+ }
129
+
130
+ if info[:type] == :array
131
+ result = result.join(",")
132
+ else
133
+ result = result.first
134
+ end
135
+ __send__ :"#{method}=", result
136
+ end
137
+ end
138
+ end
139
+ end
140
+ self.__send__ :prepend, instance_methods
141
+ end
142
+ flagist
143
+ end
144
+ end
145
+
146
+ class Definer < ::BasicObject
147
+ def initialize(model,data)
148
+ @config = ::Flagist.config
149
+ @model = model
150
+ @data = data
151
+ end
152
+
153
+ def method_missing(method,*args)
154
+ if args.size > 1
155
+ case args.first
156
+ when ::Hash
157
+ opts = args.shift
158
+ end
159
+ end
160
+ case args.last
161
+ when ::Hash
162
+ hash = args.pop
163
+ end
164
+
165
+ info = @data[method] ||= {}
166
+ if opts
167
+ opts.each do |k,v|
168
+ info[k] = v
169
+ end
170
+ end
171
+
172
+ unless info[:type]
173
+ info[:type] = (method.to_s.pluralize == method.to_s) ? :array : :scalar
174
+ end
175
+
176
+ flags = info[:flags] ||= {}
177
+
178
+ args.each do |value|
179
+ flag = flags[value] ||= {}
180
+ flag[:value] = value
181
+ flag[:name] = value
182
+ end
183
+
184
+ if hash
185
+ hash.each do |value,name|
186
+ flag = flags[value] ||= {}
187
+ flag[:value] = value
188
+ flag[:name] = name
189
+ end
190
+ end
191
+
192
+ labels = ::I18n.translate("#{@config.i18n_namespace}.#{@model.model_name.singular}.#{method}", default: {})
193
+ flags.each do |value,flag|
194
+ name = flag[:name]
195
+ if labels[name]
196
+ flag[:label] = labels[name]
197
+ end
198
+ end
199
+
200
+ info
201
+ end
202
+ end
203
+ end
metadata ADDED
@@ -0,0 +1,125 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: flagist
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - shun-fix9
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2016-05-11 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: travis
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '1.8'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '1.8'
27
+ - !ruby/object:Gem::Dependency
28
+ name: bundler
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: '1.12'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: '1.12'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ~>
46
+ - !ruby/object:Gem::Version
47
+ version: '10.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: '10.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: minitest
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: '5.0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ~>
67
+ - !ruby/object:Gem::Version
68
+ version: '5.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: activemodel
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ~>
74
+ - !ruby/object:Gem::Version
75
+ version: '4.0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ~>
81
+ - !ruby/object:Gem::Version
82
+ version: '4.0'
83
+ description: like enum, my flag addon
84
+ email:
85
+ - shun.fix9@gmail.com
86
+ executables: []
87
+ extensions: []
88
+ extra_rdoc_files: []
89
+ files:
90
+ - .gitignore
91
+ - .travis.yml
92
+ - Gemfile
93
+ - LICENSE
94
+ - README.md
95
+ - Rakefile
96
+ - bin/console
97
+ - bin/setup
98
+ - flagist.gemspec
99
+ - lib/flagist.rb
100
+ - lib/flagist/version.rb
101
+ homepage: https://github.com/sanzen-sekai/flagist
102
+ licenses:
103
+ - MIT
104
+ metadata: {}
105
+ post_install_message:
106
+ rdoc_options: []
107
+ require_paths:
108
+ - lib
109
+ required_ruby_version: !ruby/object:Gem::Requirement
110
+ requirements:
111
+ - - ! '>='
112
+ - !ruby/object:Gem::Version
113
+ version: '0'
114
+ required_rubygems_version: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - ! '>='
117
+ - !ruby/object:Gem::Version
118
+ version: '0'
119
+ requirements: []
120
+ rubyforge_project:
121
+ rubygems_version: 2.4.5
122
+ signing_key:
123
+ specification_version: 4
124
+ summary: flag addon to active record
125
+ test_files: []