activerecord-mysql-enum 0.1.4 → 1.0.0.pre.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.gitignore +5 -0
- data/.rspec +1 -0
- data/.travis.yml +29 -0
- data/Appraisals +13 -0
- data/CHANGELOG.md +19 -1
- data/Gemfile +4 -1
- data/Gemfile.lock +51 -2
- data/README.md +3 -19
- data/Rakefile +15 -2
- data/app/assets/config/manifest.js +0 -0
- data/app/assets/images/.keep +0 -0
- data/app/assets/javascripts/application.js +16 -0
- data/app/assets/stylesheets/application.css +15 -0
- data/app/controllers/application_controller.rb +5 -0
- data/app/controllers/concerns/.keep +0 -0
- data/app/helpers/application_helper.rb +2 -0
- data/app/mailers/.keep +0 -0
- data/app/models/.keep +0 -0
- data/app/models/concerns/.keep +0 -0
- data/app/views/layouts/application.html.erb +14 -0
- data/bin/bundle +3 -0
- data/bin/rails +4 -0
- data/bin/rake +4 -0
- data/bin/setup +29 -0
- data/config/application.rb +35 -0
- data/config/boot.rb +3 -0
- data/config/database.yml +19 -0
- data/config/environment.rb +5 -0
- data/config/environments/development.rb +41 -0
- data/config/environments/production.rb +79 -0
- data/config/environments/test.rb +42 -0
- data/config/initializers/assets.rb +11 -0
- data/config/initializers/backtrace_silencers.rb +7 -0
- data/config/initializers/cookies_serializer.rb +3 -0
- data/config/initializers/filter_parameter_logging.rb +4 -0
- data/config/initializers/inflections.rb +16 -0
- data/config/initializers/mime_types.rb +4 -0
- data/config/initializers/session_store.rb +3 -0
- data/config/initializers/to_time_preserves_timezone.rb +10 -0
- data/config/initializers/wrap_parameters.rb +14 -0
- data/config/locales/en.yml +23 -0
- data/config/routes.rb +56 -0
- data/config/secrets.yml +22 -0
- data/db/schema.rb +26 -0
- data/db/seeds.rb +7 -0
- data/enum_column.gemspec +1 -0
- data/gemfiles/.bundle/config +2 -0
- data/gemfiles/rails_4.gemfile +14 -0
- data/gemfiles/rails_5.gemfile +14 -0
- data/gemfiles/rails_6.gemfile +14 -0
- data/lib/active_record/mysql/enum.rb +0 -5
- data/lib/active_record/mysql/enum/enum_column_adapter.rb +38 -91
- data/lib/active_record/mysql/enum/mysql_adapter.rb +15 -14
- data/lib/active_record/mysql/enum/version.rb +1 -1
- data/lib/activerecord-mysql-enum.rb +1 -0
- data/log/.keep +0 -0
- data/public/404.html +67 -0
- data/public/422.html +67 -0
- data/public/500.html +66 -0
- data/public/favicon.ico +0 -0
- data/public/robots.txt +5 -0
- metadata +72 -11
- data/lib/active_record/mysql/enum/active_record_helper.rb +0 -65
- data/lib/active_record/mysql/enum/enum_adapter.rb +0 -27
data/public/favicon.ico
ADDED
File without changes
|
data/public/robots.txt
ADDED
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: activerecord-mysql-enum
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1
|
4
|
+
version: 1.0.0.pre.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nick Pohodnya
|
8
8
|
- Invoca Development
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2020-
|
12
|
+
date: 2020-09-10 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activerecord
|
@@ -31,6 +31,20 @@ dependencies:
|
|
31
31
|
- - "<"
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '7'
|
34
|
+
- !ruby/object:Gem::Dependency
|
35
|
+
name: mysql2
|
36
|
+
requirement: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 0.4.5
|
41
|
+
type: :runtime
|
42
|
+
prerelease: false
|
43
|
+
version_requirements: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - '='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 0.4.5
|
34
48
|
description: Enable enum type for the MySQL Adapter in ActiveRecord
|
35
49
|
email:
|
36
50
|
- development@invoca.com
|
@@ -41,17 +55,58 @@ files:
|
|
41
55
|
- ".dependabot/config.yml"
|
42
56
|
- ".github/workflows/gem_release.yml"
|
43
57
|
- ".gitignore"
|
58
|
+
- ".rspec"
|
59
|
+
- ".travis.yml"
|
60
|
+
- Appraisals
|
44
61
|
- CHANGELOG.md
|
45
62
|
- Gemfile
|
46
63
|
- Gemfile.lock
|
47
64
|
- LICENSE
|
48
65
|
- README.md
|
49
66
|
- Rakefile
|
67
|
+
- app/assets/config/manifest.js
|
68
|
+
- app/assets/images/.keep
|
69
|
+
- app/assets/javascripts/application.js
|
70
|
+
- app/assets/stylesheets/application.css
|
71
|
+
- app/controllers/application_controller.rb
|
72
|
+
- app/controllers/concerns/.keep
|
73
|
+
- app/helpers/application_helper.rb
|
74
|
+
- app/mailers/.keep
|
75
|
+
- app/models/.keep
|
76
|
+
- app/models/concerns/.keep
|
77
|
+
- app/views/layouts/application.html.erb
|
78
|
+
- bin/bundle
|
79
|
+
- bin/rails
|
80
|
+
- bin/rake
|
81
|
+
- bin/setup
|
82
|
+
- config/application.rb
|
83
|
+
- config/boot.rb
|
84
|
+
- config/database.yml
|
85
|
+
- config/environment.rb
|
86
|
+
- config/environments/development.rb
|
87
|
+
- config/environments/production.rb
|
88
|
+
- config/environments/test.rb
|
89
|
+
- config/initializers/assets.rb
|
90
|
+
- config/initializers/backtrace_silencers.rb
|
91
|
+
- config/initializers/cookies_serializer.rb
|
92
|
+
- config/initializers/filter_parameter_logging.rb
|
93
|
+
- config/initializers/inflections.rb
|
94
|
+
- config/initializers/mime_types.rb
|
95
|
+
- config/initializers/session_store.rb
|
96
|
+
- config/initializers/to_time_preserves_timezone.rb
|
97
|
+
- config/initializers/wrap_parameters.rb
|
98
|
+
- config/locales/en.yml
|
99
|
+
- config/routes.rb
|
100
|
+
- config/secrets.yml
|
101
|
+
- db/schema.rb
|
102
|
+
- db/seeds.rb
|
50
103
|
- enum_column.gemspec
|
104
|
+
- gemfiles/.bundle/config
|
105
|
+
- gemfiles/rails_4.gemfile
|
106
|
+
- gemfiles/rails_5.gemfile
|
107
|
+
- gemfiles/rails_6.gemfile
|
51
108
|
- init.rb
|
52
109
|
- lib/active_record/mysql/enum.rb
|
53
|
-
- lib/active_record/mysql/enum/active_record_helper.rb
|
54
|
-
- lib/active_record/mysql/enum/enum_adapter.rb
|
55
110
|
- lib/active_record/mysql/enum/enum_column_adapter.rb
|
56
111
|
- lib/active_record/mysql/enum/enum_type.rb
|
57
112
|
- lib/active_record/mysql/enum/mysql_adapter.rb
|
@@ -59,13 +114,20 @@ files:
|
|
59
114
|
- lib/active_record/mysql/enum/schema_definitions.rb
|
60
115
|
- lib/active_record/mysql/enum/validations.rb
|
61
116
|
- lib/active_record/mysql/enum/version.rb
|
117
|
+
- lib/activerecord-mysql-enum.rb
|
118
|
+
- log/.keep
|
119
|
+
- public/404.html
|
120
|
+
- public/422.html
|
121
|
+
- public/500.html
|
122
|
+
- public/favicon.ico
|
123
|
+
- public/robots.txt
|
62
124
|
- rails/init.rb
|
63
125
|
homepage: http://github.com/Invoca/activerecord-mysql-enum
|
64
126
|
licenses: []
|
65
127
|
metadata:
|
66
128
|
source_code_uri: https://github.com/Invoca/activerecord-mysql-enum
|
67
129
|
allowed_push_host: https://rubygems.org
|
68
|
-
post_install_message:
|
130
|
+
post_install_message:
|
69
131
|
rdoc_options: []
|
70
132
|
require_paths:
|
71
133
|
- lib
|
@@ -76,13 +138,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
76
138
|
version: '0'
|
77
139
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
78
140
|
requirements:
|
79
|
-
- - "
|
141
|
+
- - ">"
|
80
142
|
- !ruby/object:Gem::Version
|
81
|
-
version:
|
143
|
+
version: 1.3.1
|
82
144
|
requirements: []
|
83
|
-
|
84
|
-
|
85
|
-
signing_key:
|
145
|
+
rubygems_version: 3.0.1
|
146
|
+
signing_key:
|
86
147
|
specification_version: 4
|
87
148
|
summary: Enable enum type for the MySQL Adapter in ActiveRecord
|
88
149
|
test_files: []
|
@@ -1,65 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
if defined?(Rails::Generator)
|
4
|
-
module Rails
|
5
|
-
module Generator
|
6
|
-
class GeneratedAttribute
|
7
|
-
def field_type_with_enumerated_attribute
|
8
|
-
return (@field_type = :enum_select) if type == :enum
|
9
|
-
field_type_without_enumerated_attribute
|
10
|
-
end
|
11
|
-
alias_method_chain :field_type, :enumerated_attribute
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
if defined?(ActionView::Base)
|
18
|
-
module ActionView
|
19
|
-
module Helpers
|
20
|
-
|
21
|
-
#form_options_helper.rb
|
22
|
-
module FormOptionsHelper
|
23
|
-
#def select
|
24
|
-
def enum_select(object, method, options={}, html_options={})
|
25
|
-
InstanceTag.new(object, method, self, options.delete(:object)).to_enum_select_tag(options, html_options)
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
class InstanceTag
|
30
|
-
def to_enum_select_tag(options, html_options={})
|
31
|
-
if self.object.respond_to?(method_name.to_sym)
|
32
|
-
column = self.object.column_for_attribute(method_name)
|
33
|
-
if (value = self.object.__send__(method_name.to_sym))
|
34
|
-
options[:selected] ||= value.to_s
|
35
|
-
else
|
36
|
-
options[:include_blank] = column.null if options[:include_blank].nil?
|
37
|
-
end
|
38
|
-
end
|
39
|
-
to_select_tag(column.limit, options, html_options)
|
40
|
-
end
|
41
|
-
|
42
|
-
#initialize record_name, method, self
|
43
|
-
if respond_to?(:to_tag)
|
44
|
-
def to_tag_with_enumerated_attribute(options={})
|
45
|
-
#look for an enum
|
46
|
-
if (column_type == :enum && self.object.class.respond_to?(method_name.to_sym))
|
47
|
-
to_enum_select_tag(options)
|
48
|
-
else
|
49
|
-
to_tag_without_enumerated_attribute(options)
|
50
|
-
end
|
51
|
-
end
|
52
|
-
alias_method_chain :to_tag, :enumerated_attribute
|
53
|
-
end
|
54
|
-
|
55
|
-
end
|
56
|
-
|
57
|
-
class FormBuilder
|
58
|
-
def enum_select(method, options={}, html_options={})
|
59
|
-
@template.enum_select(@object_name, method, objectify_options(options), @default_options.merge(html_options))
|
60
|
-
end
|
61
|
-
end
|
62
|
-
|
63
|
-
end
|
64
|
-
end
|
65
|
-
end
|
@@ -1,27 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
# This module provides all the column helper methods to deal with the
|
4
|
-
# values and adds the common type management code for the adapters.
|
5
|
-
|
6
|
-
adapter_class = if defined? ActiveRecord::ConnectionAdapters::Mysql2Adapter
|
7
|
-
ActiveRecord::ConnectionAdapters::Mysql2Adapter
|
8
|
-
elsif defined? ActiveRecord::ConnectionAdapters::MysqlAdapter
|
9
|
-
ActiveRecord::ConnectionAdapters::MysqlAdapter
|
10
|
-
end
|
11
|
-
|
12
|
-
if adapter_class
|
13
|
-
adapter_class.class_eval do
|
14
|
-
|
15
|
-
protected
|
16
|
-
if instance_methods.include?(:initialize_type_map)
|
17
|
-
def initialize_type_map_with_enum_types(m)
|
18
|
-
initialize_type_map_without_enum_types(m)
|
19
|
-
m.register_type(%r(enum)i) do |sql_type|
|
20
|
-
limit = sql_type.sub(/^enum\('(.+)'\)/i, '\1').split("','").map { |v| v.intern }
|
21
|
-
ActiveRecord::Type::Enum.new(limit: limit)
|
22
|
-
end
|
23
|
-
end
|
24
|
-
alias_method_chain :initialize_type_map, :enum_types
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|