schema_plus_enums 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,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: ad8cf6ebb0d21c741326bdb6f5715fd4d3907724
4
+ data.tar.gz: 56da3f47d07ed577455bb955a64e4b8db2c740bd
5
+ SHA512:
6
+ metadata.gz: 1447dacc6fd9173d1ea79b2ae04d0e89ca45547c63a8373e15a6f892411a0fef141bbf3d53778822d6e196651a173d63f80bee4580d16bc2f36eaeae274e2dba
7
+ data.tar.gz: bb1a5487853a8e3f92b7df41310106c27f83c06bcfd914fc5c565c44ff3517832364b62f9b9edbfc2b345bd2e5ba7fcc5fa6ed66be096308e04d66849ac26d70
data/.gitignore ADDED
@@ -0,0 +1,9 @@
1
+ /coverage
2
+ /tmp
3
+ /pkg
4
+ /Gemfile.local
5
+
6
+ *.lock
7
+ *.log
8
+ *.sqlite3
9
+ !gemfiles/**/*.sqlite3
data/.travis.yml ADDED
@@ -0,0 +1,16 @@
1
+ # This file was auto-generated by the schema_dev tool, based on the data in
2
+ # ./schema_dev.yml
3
+ # Please do not edit this file; any changes will be overwritten next time
4
+ # schema_dev gets run.
5
+ ---
6
+ sudo: false
7
+ rvm:
8
+ - 2.1.5
9
+ gemfile:
10
+ - gemfiles/activerecord-4.2/Gemfile.postgresql
11
+ env: POSTGRESQL_DB_USER=postgres
12
+ addons:
13
+ postgresql: '9.3'
14
+ before_script: bundle exec rake create_databases
15
+ after_script: bundle exec rake drop_databases
16
+ script: bundle exec rake travis
data/Gemfile ADDED
@@ -0,0 +1,5 @@
1
+ source "http://rubygems.org"
2
+
3
+ gemspec
4
+
5
+ File.exist?(gemfile_local = File.expand_path('../Gemfile.local', __FILE__)) and eval File.read(gemfile_local), binding, gemfile_local
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2015 ronen barzel
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,96 @@
1
+ [![Gem Version](https://badge.fury.io/rb/schema_plus_enums.svg)](http://badge.fury.io/rb/schema_plus_enums)
2
+ [![Build Status](https://secure.travis-ci.org/SchemaPlus/schema_plus_enums.svg)](http://travis-ci.org/SchemaPlus/schema_plus_enums)
3
+ [![Coverage Status](https://img.shields.io/coveralls/SchemaPlus/schema_plus_enums.svg)](https://coveralls.io/r/SchemaPlus/schema_plus_enums)
4
+ [![Dependency Status](https://gemnasium.com/lomba/schema_plus_enums.svg)](https://gemnasium.com/SchemaPlus/schema_plus_enums)
5
+
6
+ # SchemaPlus::Enums
7
+
8
+ SchemaPlus::Enums provides support for enum data types in ActiveRecord. Currently the support is limited to defining enum data types, for PostgreSQL only.
9
+
10
+
11
+ SchemaPlus::Enums is part of the [SchemaPlus](https://github.com/SchemaPlus/) family of Ruby on Rails ActiveRecord extension gems.
12
+
13
+ ## Installation
14
+
15
+ <!-- SCHEMA_DEV: TEMPLATE INSTALLATION - begin -->
16
+ <!-- These lines are auto-inserted from a schema_dev template -->
17
+ As usual:
18
+
19
+ ```ruby
20
+ gem "schema_plus_enums" # in a Gemfile
21
+ gem.add_dependency "schema_plus_enums" # in a .gemspec
22
+ ```
23
+
24
+ <!-- SCHEMA_DEV: TEMPLATE INSTALLATION - end -->
25
+
26
+ ## Compatibility
27
+
28
+ SchemaPlus::Enums is tested on:
29
+
30
+ <!-- SCHEMA_DEV: MATRIX - begin -->
31
+ <!-- These lines are auto-generated by schema_dev based on schema_dev.yml -->
32
+ * ruby **2.1.5** with activerecord **4.2**, using **postgresql**
33
+
34
+ <!-- SCHEMA_DEV: MATRIX - end -->
35
+
36
+ ## Usage
37
+
38
+ In a migration:
39
+
40
+ ```ruby
41
+ create_enum :color, 'red', 'green', 'blue'
42
+ create_enum :color, 'cyan', 'magenta', 'yellow', 'black', schema: 'cmyk'
43
+ ```
44
+
45
+
46
+ ## History
47
+
48
+ * 0.1.0 - Initial release, pulled from schema_plus 1.x
49
+
50
+ ## Development & Testing
51
+
52
+ Are you interested in contributing to SchemaPlus::Enums? Thanks! Please follow
53
+ the standard protocol: fork, feature branch, develop, push, and issue pull
54
+ request.
55
+
56
+ Some things to know about to help you develop and test:
57
+
58
+ <!-- SCHEMA_DEV: TEMPLATE USES SCHEMA_DEV - begin -->
59
+ <!-- These lines are auto-inserted from a schema_dev template -->
60
+ * **schema_dev**: SchemaPlus::Enums uses [schema_dev](https://github.com/SchemaPlus/schema_dev) to
61
+ facilitate running rspec tests on the matrix of ruby, activerecord, and database
62
+ versions that the gem supports, both locally and on
63
+ [travis-ci](http://travis-ci.org/SchemaPlus/schema_plus_enums)
64
+
65
+ To to run rspec locally on the full matrix, do:
66
+
67
+ $ schema_dev bundle install
68
+ $ schema_dev rspec
69
+
70
+ You can also run on just one configuration at a time; For info, see `schema_dev --help` or the [schema_dev](https://github.com/SchemaPlus/schema_dev) README.
71
+
72
+ The matrix of configurations is specified in `schema_dev.yml` in
73
+ the project root.
74
+
75
+
76
+ <!-- SCHEMA_DEV: TEMPLATE USES SCHEMA_DEV - end -->
77
+
78
+ <!-- SCHEMA_DEV: TEMPLATE USES SCHEMA_PLUS_CORE - begin -->
79
+ <!-- These lines are auto-inserted from a schema_dev template -->
80
+ * **schema_plus_core**: SchemaPlus::Enums uses the SchemaPlus::Core API that
81
+ provides middleware callback stacks to make it easy to extend
82
+ ActiveRecord's behavior. If that API is missing something you need for
83
+ your contribution, please head over to
84
+ [schema_plus_core](https://github.com/SchemaPlus/schema_plus_core) and open
85
+ an issue or pull request.
86
+
87
+ <!-- SCHEMA_DEV: TEMPLATE USES SCHEMA_PLUS_CORE - end -->
88
+
89
+ <!-- SCHEMA_DEV: TEMPLATE USES SCHEMA_MONKEY - begin -->
90
+ <!-- These lines are auto-inserted from a schema_dev template -->
91
+ * **schema_monkey**: SchemaPlus::Enums is implemented as a
92
+ [schema_monkey](https://github.com/SchemaPlus/schema_monkey) client,
93
+ using [schema_monkey](https://github.com/SchemaPlus/schema_monkey)'s
94
+ convention-based protocols for extending ActiveRecord and using middleware stacks.
95
+
96
+ <!-- SCHEMA_DEV: TEMPLATE USES SCHEMA_MONKEY - end -->
data/Rakefile ADDED
@@ -0,0 +1,9 @@
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
3
+
4
+ require 'schema_dev/tasks'
5
+
6
+ task :default => :spec
7
+
8
+ require 'rspec/core/rake_task'
9
+ RSpec::Core::RakeTask.new(:spec)
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+ gemspec :path => File.expand_path('..', __FILE__)
3
+
4
+ File.exist?(gemfile_local = File.expand_path('../Gemfile.local', __FILE__)) and eval File.read(gemfile_local), binding, gemfile_local
@@ -0,0 +1,3 @@
1
+ eval File.read File.expand_path('../../Gemfile.base', __FILE__)
2
+
3
+ gem "activerecord", "~> 4.2.0"
@@ -0,0 +1,10 @@
1
+ require "pathname"
2
+ eval(Pathname.new(__FILE__).dirname.join("Gemfile.base").read, binding)
3
+
4
+ platform :ruby do
5
+ gem "pg"
6
+ end
7
+
8
+ platform :jruby do
9
+ gem 'activerecord-jdbcpostgresql-adapter'
10
+ end
@@ -0,0 +1,7 @@
1
+ require 'schema_plus/core'
2
+
3
+ require_relative 'enums/active_record'
4
+ require_relative 'enums/middleware'
5
+ require_relative 'enums/version'
6
+
7
+ SchemaMonkey.register SchemaPlus::Enums
@@ -0,0 +1,69 @@
1
+ module SchemaPlus::Enums
2
+ module ActiveRecord
3
+ module ConnectionAdapters
4
+ module PostgresqlAdapter
5
+
6
+ def enums
7
+ result = query(<<-SQL)
8
+ SELECT
9
+ N.nspname AS schema_name,
10
+ T.typname AS enum_name,
11
+ E.enumlabel AS enum_label,
12
+ E.enumsortorder AS enum_sort_order
13
+ --array_agg(E.enumlabel ORDER BY enumsortorder) AS labels
14
+ FROM pg_type T
15
+ JOIN pg_enum E ON E.enumtypid = T.oid
16
+ JOIN pg_namespace N ON N.oid = T.typnamespace
17
+ ORDER BY 1, 2, 4
18
+ SQL
19
+
20
+ result.reduce([]) do |res, row|
21
+ last = res.last
22
+ if last && last[0] == row[0] && last[1] == row[1]
23
+ last[2] << row[2]
24
+ else
25
+ res << (row[0..1] << [row[2]])
26
+ end
27
+ res
28
+ end
29
+ end
30
+
31
+ def create_enum(name, *values)
32
+ options = values.extract_options!
33
+ list = values.map { |value| escape_enum_value(value) }
34
+ execute "CREATE TYPE #{enum_name(name, options[:schema])} AS ENUM (#{list.join(',')})"
35
+ end
36
+
37
+ def alter_enum(name, value, options = {})
38
+ opts = case
39
+ when options[:before] then "BEFORE #{escape_enum_value(options[:before])}"
40
+ when options[:after] then "AFTER #{escape_enum_value(options[:after])}"
41
+ else
42
+ ''
43
+ end
44
+ execute "ALTER TYPE #{enum_name(name, options[:schema])} ADD VALUE #{escape_enum_value(value)} #{opts}"
45
+ end
46
+
47
+ def drop_enum(name, options = {})
48
+ execute "DROP TYPE #{enum_name(name, options[:schema])}"
49
+ end
50
+
51
+ private
52
+
53
+ def enum_name(name, schema)
54
+ [schema || 'public', name].map { |s|
55
+ %Q{"#{s}"}
56
+ }.join('.')
57
+ end
58
+
59
+ def escape_enum_value(value)
60
+ escaped_value = value.to_s.sub("'", "''")
61
+ "'#{escaped_value}'"
62
+ end
63
+
64
+
65
+ end
66
+ end
67
+ end
68
+ end
69
+
@@ -0,0 +1,22 @@
1
+ module SchemaPlus::Enums
2
+ module Middleware
3
+
4
+ module Dumper
5
+ module Initial
6
+
7
+ module Postgresql
8
+
9
+ def after(env)
10
+ env.connection.enums.each do |schema, name, values|
11
+ params = [name.inspect]
12
+ params << values.map(&:inspect).join(', ')
13
+ params << ":schema => #{schema.inspect}" if schema != 'public'
14
+
15
+ env.initial << "create_enum #{params.join(', ')}"
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,5 @@
1
+ module SchemaPlus
2
+ module Enums
3
+ VERSION = "0.1.0"
4
+ end
5
+ end
@@ -0,0 +1 @@
1
+ require_relative 'schema_plus/enums'
data/schema_dev.yml ADDED
@@ -0,0 +1,6 @@
1
+ ruby:
2
+ - 2.1.5
3
+ activerecord:
4
+ - 4.2
5
+ db:
6
+ - postgresql
@@ -0,0 +1,30 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'schema_plus/enums/version'
5
+
6
+ Gem::Specification.new do |gem|
7
+ gem.name = "schema_plus_enums"
8
+ gem.version = SchemaPlus::Enums::VERSION
9
+ gem.authors = ["ronen barzel"]
10
+ gem.email = ["ronen@barzel.org"]
11
+ gem.summary = %q{Adds support for enum data types in ActiveRecord}
12
+ gem.description = %q{Adds support for enum data types in ActiveRecord}
13
+ gem.homepage = "https://github.com/SchemaPlus/schema_plus_enums"
14
+ gem.license = "MIT"
15
+
16
+ gem.files = `git ls-files -z`.split("\x0")
17
+ gem.executables = gem.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
19
+ gem.require_paths = ["lib"]
20
+
21
+ gem.add_dependency "activerecord", "~> 4.2"
22
+ gem.add_dependency "schema_plus_core", "~> 0.2", ">= 0.2.1"
23
+
24
+ gem.add_development_dependency "bundler", "~> 1.7"
25
+ gem.add_development_dependency "rake", "~> 10.0"
26
+ gem.add_development_dependency "rspec", "~> 3.0"
27
+ gem.add_development_dependency "schema_dev", "~> 3.3"
28
+ gem.add_development_dependency "simplecov"
29
+ gem.add_development_dependency "simplecov-gem-profile"
30
+ end
data/spec/enum_spec.rb ADDED
@@ -0,0 +1,141 @@
1
+ require 'spec_helper'
2
+
3
+ def enum_fields(name, schema = 'public')
4
+ sql = <<-SQL
5
+ SELECT array_to_string(array_agg(E.enumlabel ORDER BY enumsortorder), ' ') AS "values"
6
+ FROM pg_enum E
7
+ JOIN pg_type T ON E.enumtypid = T.oid
8
+ JOIN pg_namespace N ON N.oid = T.typnamespace
9
+ WHERE N.nspname = '#{schema}' AND T.typname = '#{name}'
10
+ GROUP BY T.oid;
11
+ SQL
12
+
13
+ data = ActiveRecord::Base.connection.select_all(sql)
14
+ return nil if data.empty?
15
+ data[0]['values'].split(' ')
16
+ end
17
+
18
+ describe 'enum', :postgresql => :only do
19
+ before(:all) do ActiveRecord::Migration.verbose = false end
20
+
21
+ let(:migration) { ActiveRecord::Migration }
22
+
23
+ describe 'enums' do
24
+ it 'should return all enums' do
25
+ begin
26
+ migration.execute 'create schema cmyk'
27
+ migration.create_enum 'color', 'red', 'green', 'blue'
28
+ migration.create_enum 'color', 'cyan', 'magenta', 'yellow', 'black', schema: 'cmyk'
29
+
30
+ expect(migration.enums).to match_array [['cmyk', 'color', %w|cyan magenta yellow black|], ['public', 'color', %w|red green blue|]]
31
+ ensure
32
+ migration.drop_enum 'color'
33
+ migration.execute 'drop schema cmyk cascade'
34
+ end
35
+ end
36
+ end
37
+
38
+ describe 'create_enum' do
39
+ it 'should create enum with given values' do
40
+ begin
41
+ migration.create_enum 'color', *%w|red green blue|
42
+ expect(enum_fields('color')).to eq(%w|red green blue|)
43
+ ensure
44
+ migration.execute 'DROP TYPE IF EXISTS color'
45
+ end
46
+ end
47
+
48
+ it 'should create enum using symbols' do
49
+ begin
50
+ migration.create_enum :color, :red, :green, :blue
51
+ expect(enum_fields('color')).to eq(%w|red green blue|)
52
+ ensure
53
+ migration.execute 'DROP TYPE IF EXISTS color'
54
+ end
55
+ end
56
+
57
+ it 'should create enum with schema' do
58
+ begin
59
+ migration.execute 'CREATE SCHEMA colors'
60
+ migration.create_enum 'color', *%|red green blue|, schema: 'colors'
61
+ expect(enum_fields('color', 'colors')).to eq(%w|red green blue|)
62
+ ensure
63
+ migration.execute 'DROP SCHEMA IF EXISTS colors CASCADE'
64
+ end
65
+ end
66
+
67
+ it 'should escape enum value' do
68
+ begin
69
+ migration.create_enum('names', "O'Neal")
70
+ expect(enum_fields('names')).to eq(["O'Neal"])
71
+ ensure
72
+ migration.execute "DROP TYPE IF EXISTS names"
73
+ end
74
+ end
75
+
76
+ it 'should escape schame name and enum name' do
77
+ begin
78
+ migration.execute 'CREATE SCHEMA "select"'
79
+ migration.create_enum 'where', *%|red green blue|, schema: 'select'
80
+ expect(enum_fields('where', 'select')).to eq(%w|red green blue|)
81
+ ensure
82
+ migration.execute 'DROP SCHEMA IF EXISTS "select" CASCADE'
83
+ end
84
+ end
85
+
86
+ end
87
+
88
+ describe 'alter_enum' do
89
+ before(:each) do migration.create_enum('color', 'red', 'green', 'blue') end
90
+ after(:each) do migration.execute 'DROP TYPE IF EXISTS color' end
91
+
92
+ it 'should add new value after all values' do
93
+ migration.alter_enum('color', 'magenta')
94
+ expect(enum_fields('color')).to eq(%w|red green blue magenta|)
95
+ end
96
+
97
+ it 'should add new value after existed' do
98
+ migration.alter_enum('color', 'magenta', after: 'red')
99
+ expect(enum_fields('color')).to eq(%w|red magenta green blue|)
100
+ end
101
+
102
+ it 'should add new value before existed' do
103
+ migration.alter_enum('color', 'magenta', before: 'green')
104
+ expect(enum_fields('color')).to eq(%w|red magenta green blue|)
105
+ end
106
+
107
+ it 'should add new value within given schema' do
108
+ begin
109
+ migration.execute 'CREATE SCHEMA colors'
110
+ migration.create_enum('color', 'red', schema: 'colors')
111
+ migration.alter_enum('color', 'green', schema: 'colors')
112
+
113
+ expect(enum_fields('color', 'colors')).to eq(%w|red green|)
114
+ ensure
115
+ migration.execute 'DROP SCHEMA colors CASCADE'
116
+ end
117
+ end
118
+ end
119
+
120
+ describe 'drop_enum' do
121
+ it 'should drop enum with given name' do
122
+ migration.execute "CREATE TYPE color AS ENUM ('red', 'blue')"
123
+ expect(enum_fields('color')).to eq(%w|red blue|)
124
+ migration.drop_enum('color')
125
+
126
+ expect(enum_fields('color')).to be_nil
127
+ end
128
+
129
+ it 'should drop enum within given name and schema' do
130
+ begin
131
+ migration.execute "CREATE SCHEMA colors; CREATE TYPE colors.color AS ENUM ('red', 'blue')"
132
+ expect(enum_fields('color', 'colors')).to eq(%w|red blue|)
133
+ migration.drop_enum('color', schema: 'colors')
134
+
135
+ expect(enum_fields('color', 'colors')).to be_nil
136
+ ensure
137
+ migration.execute "DROP SCHEMA colors CASCADE"
138
+ end
139
+ end
140
+ end
141
+ end
@@ -0,0 +1,37 @@
1
+ require 'spec_helper'
2
+ require 'stringio'
3
+
4
+ describe "Schema dump" do
5
+
6
+ context 'with enum', :postgresql => :only do
7
+ let(:connection) { ActiveRecord::Base.connection }
8
+
9
+ it 'should include enum' do
10
+ begin
11
+ connection.execute "CREATE TYPE color AS ENUM ('red', 'green', 'blue')"
12
+ expect(dump_schema).to match(%r{create_enum "color", "red", "green", "blue"})
13
+ ensure
14
+ connection.execute "DROP TYPE color"
15
+ end
16
+ end
17
+
18
+ it 'should include enum with schema' do
19
+ begin
20
+ connection.execute "CREATE SCHEMA cmyk; CREATE TYPE cmyk.color AS ENUM ('cyan', 'magenta', 'yellow', 'black')"
21
+ expect(dump_schema).to match(%r{create_enum "color", "cyan", "magenta", "yellow", "black", :schema => "cmyk"})
22
+ ensure
23
+ connection.execute "DROP SCHEMA cmyk CASCADE"
24
+ end
25
+ end
26
+ end
27
+
28
+ protected
29
+
30
+ def dump_schema(opts={})
31
+ stream = StringIO.new
32
+ ActiveRecord::SchemaDumper.ignore_tables = Array.wrap(opts[:ignore]) || []
33
+ ActiveRecord::SchemaDumper.dump(ActiveRecord::Base.connection, stream)
34
+ stream.string
35
+ end
36
+
37
+ end
@@ -0,0 +1,22 @@
1
+ require 'simplecov'
2
+ require 'simplecov-gem-profile'
3
+ SimpleCov.start "gem"
4
+
5
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
6
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
7
+
8
+ require 'rspec'
9
+ require 'active_record'
10
+ require 'schema_plus_enums'
11
+ require 'schema_dev/rspec'
12
+
13
+ SchemaDev::Rspec.setup
14
+
15
+ Dir[File.dirname(__FILE__) + "/support/**/*.rb"].each {|f| require f}
16
+
17
+ RSpec.configure do |config|
18
+ config.warnings = true
19
+ end
20
+
21
+ SimpleCov.command_name "[ruby #{RUBY_VERSION} - ActiveRecord #{::ActiveRecord::VERSION::STRING} - #{ActiveRecord::Base.connection.adapter_name}]"
22
+
metadata ADDED
@@ -0,0 +1,184 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: schema_plus_enums
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - ronen barzel
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-03-13 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: activerecord
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '4.2'
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'
27
+ - !ruby/object:Gem::Dependency
28
+ name: schema_plus_core
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '0.2'
34
+ - - ">="
35
+ - !ruby/object:Gem::Version
36
+ version: 0.2.1
37
+ type: :runtime
38
+ prerelease: false
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - "~>"
42
+ - !ruby/object:Gem::Version
43
+ version: '0.2'
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: 0.2.1
47
+ - !ruby/object:Gem::Dependency
48
+ name: bundler
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '1.7'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '1.7'
61
+ - !ruby/object:Gem::Dependency
62
+ name: rake
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: '10.0'
68
+ type: :development
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: '10.0'
75
+ - !ruby/object:Gem::Dependency
76
+ name: rspec
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: '3.0'
82
+ type: :development
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: '3.0'
89
+ - !ruby/object:Gem::Dependency
90
+ name: schema_dev
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: '3.3'
96
+ type: :development
97
+ prerelease: false
98
+ version_requirements: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: '3.3'
103
+ - !ruby/object:Gem::Dependency
104
+ name: simplecov
105
+ requirement: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ type: :development
111
+ prerelease: false
112
+ version_requirements: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ version: '0'
117
+ - !ruby/object:Gem::Dependency
118
+ name: simplecov-gem-profile
119
+ requirement: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ version: '0'
124
+ type: :development
125
+ prerelease: false
126
+ version_requirements: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - ">="
129
+ - !ruby/object:Gem::Version
130
+ version: '0'
131
+ description: Adds support for enum data types in ActiveRecord
132
+ email:
133
+ - ronen@barzel.org
134
+ executables: []
135
+ extensions: []
136
+ extra_rdoc_files: []
137
+ files:
138
+ - ".gitignore"
139
+ - ".travis.yml"
140
+ - Gemfile
141
+ - LICENSE.txt
142
+ - README.md
143
+ - Rakefile
144
+ - gemfiles/Gemfile.base
145
+ - gemfiles/activerecord-4.2/Gemfile.base
146
+ - gemfiles/activerecord-4.2/Gemfile.postgresql
147
+ - lib/schema_plus/enums.rb
148
+ - lib/schema_plus/enums/active_record.rb
149
+ - lib/schema_plus/enums/middleware.rb
150
+ - lib/schema_plus/enums/version.rb
151
+ - lib/schema_plus_enums.rb
152
+ - schema_dev.yml
153
+ - schema_plus_enums.gemspec
154
+ - spec/enum_spec.rb
155
+ - spec/schema_dumper_spec.rb
156
+ - spec/spec_helper.rb
157
+ homepage: https://github.com/SchemaPlus/schema_plus_enums
158
+ licenses:
159
+ - MIT
160
+ metadata: {}
161
+ post_install_message:
162
+ rdoc_options: []
163
+ require_paths:
164
+ - lib
165
+ required_ruby_version: !ruby/object:Gem::Requirement
166
+ requirements:
167
+ - - ">="
168
+ - !ruby/object:Gem::Version
169
+ version: '0'
170
+ required_rubygems_version: !ruby/object:Gem::Requirement
171
+ requirements:
172
+ - - ">="
173
+ - !ruby/object:Gem::Version
174
+ version: '0'
175
+ requirements: []
176
+ rubyforge_project:
177
+ rubygems_version: 2.2.2
178
+ signing_key:
179
+ specification_version: 4
180
+ summary: Adds support for enum data types in ActiveRecord
181
+ test_files:
182
+ - spec/enum_spec.rb
183
+ - spec/schema_dumper_spec.rb
184
+ - spec/spec_helper.rb