schema_plus_columns 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: e2e50ad0886c5c588922f16d17e739cf967af4a9
4
+ data.tar.gz: ab16108afe29a0887682963e9e15ac75345222a8
5
+ SHA512:
6
+ metadata.gz: 4ad20f2b42667c98fe210b2b6a825c8cd7b7359c49d7beea5c7145b141b1d753a3113ae09cb70ffdbd5a60a4d2640cee3d087d8d7833f13b0b1dbd321af671c3
7
+ data.tar.gz: 6b642322e885a7ef600d0b322de619283168b33b6d45b4f4ceff6187c3dbbf2524637b4add79747b676878a4758b0a66cc59aaecb07fbb4d0590f327d555d4af
@@ -0,0 +1,9 @@
1
+ /coverage
2
+ /tmp
3
+ /pkg
4
+ /Gemfile.local
5
+
6
+ *.lock
7
+ *.log
8
+ *.sqlite3
9
+ !gemfiles/**/*.sqlite3
@@ -0,0 +1,18 @@
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.mysql2
11
+ - gemfiles/activerecord-4.2/Gemfile.postgresql
12
+ - gemfiles/activerecord-4.2/Gemfile.sqlite3
13
+ env: POSTGRESQL_DB_USER=postgres MYSQL_DB_USER=travis
14
+ addons:
15
+ postgresql: '9.3'
16
+ before_script: bundle exec rake create_databases
17
+ after_script: bundle exec rake drop_databases
18
+ 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
@@ -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.
@@ -0,0 +1,123 @@
1
+ [![Gem Version](https://badge.fury.io/rb/schema_plus_columns.svg)](http://badge.fury.io/rb/schema_plus_columns)
2
+ [![Build Status](https://secure.travis-ci.org/SchemaPlus/schema_plus_columns.svg)](http://travis-ci.org/SchemaPlus/schema_plus_columns)
3
+ [![Coverage Status](https://img.shields.io/coveralls/SchemaPlus/schema_plus_columns.svg)](https://coveralls.io/r/SchemaPlus/schema_plus_columns)
4
+ [![Dependency Status](https://gemnasium.com/lomba/schema_plus_columns.svg)](https://gemnasium.com/SchemaPlus/schema_plus_columns)
5
+
6
+ # SchemaPlus::Columns
7
+
8
+ SchemaPlus::Columns adds some useful accessors the objects returned by ActiveRecord's [`Model.columns`](http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/PostgreSQL/SchemaStatements.html#method-i-columns) database introspection query.
9
+
10
+ SchemaPlus::Columns is part of the [SchemaPlus](https://github.com/SchemaPlus/) family of Ruby on Rails extension gems.
11
+
12
+ ## Installation
13
+
14
+ <!-- SCHEMA_DEV: TEMPLATE INSTALLATION - begin -->
15
+ <!-- These lines are auto-inserted from a schema_dev template -->
16
+ As usual:
17
+
18
+ ```ruby
19
+ gem "schema_plus_columns" # in a Gemfile
20
+ gem.add_dependency "schema_plus_columns" # in a .gemspec
21
+ ```
22
+
23
+ To use with a rails app, also include
24
+
25
+ ```ruby
26
+ gem "schema_monkey_rails"
27
+ ```
28
+
29
+ which creates a Railtie to that will insert SchemaPlus::Columns appropriately into the rails stack. To use with Padrino, see [schema_monkey_padrino](https://github.com/SchemaPlus/schema_monkey_padrino).
30
+
31
+ <!-- SCHEMA_DEV: TEMPLATE INSTALLATION - end -->
32
+
33
+ ## Usage
34
+
35
+ SchemaPlus::Columns makes these accessors available:
36
+
37
+ #### `column.indexes`
38
+
39
+ Returns a list of index definitions for each index that refers to this column. Returns an empty list if there are no such indexes.
40
+
41
+ #### `column.unique?`
42
+
43
+ Returns true if the column is in a unique index.
44
+
45
+ #### `column.unique_scope`
46
+
47
+ If the column is in a unique index, returns a list of names of other columns in the index. Returns an empty list if it's a single-column index. Returns nil if the column is not in a unique index.
48
+
49
+ #### `column.case_sensitive?`
50
+
51
+ Returns true if the column is in one or more indexes that are case sensitive. *Requires the index definitions to respond to `:case_sensitive?`* -- i.e. Only works with `schema_plus_pg_indexes` having been loaded.
52
+
53
+ #### `column.required_on`
54
+
55
+ Returns an indicator of the circumstance in which the column must have a value:
56
+
57
+ * `nil` If the column may be null
58
+ * `:save` If the column has no default value
59
+ * `:update` Otherwise
60
+
61
+
62
+ ## Compatibility
63
+
64
+ SchemaPlus::Columns is tested on:
65
+
66
+ <!-- SCHEMA_DEV: MATRIX - begin -->
67
+ <!-- These lines are auto-generated by schema_dev based on schema_dev.yml -->
68
+ * ruby **2.1.5** with activerecord **4.2**, using **mysql2**, **sqlite3** or **postgresql**
69
+
70
+ <!-- SCHEMA_DEV: MATRIX - end -->
71
+
72
+
73
+ ## History
74
+
75
+ * 0.1.0 - Initial release, extracted from SchemaPlus 1.x
76
+
77
+ ## Development & Testing
78
+
79
+ Are you interested in contributing to SchemaPlus::Columns? Thanks! Please follow
80
+ the standard protocol: fork, feature branch, develop, push, and issue pull
81
+ request.
82
+
83
+ Some things to know about to help you develop and test:
84
+
85
+ <!-- SCHEMA_DEV: TEMPLATE USES SCHEMA_DEV - begin -->
86
+ <!-- These lines are auto-inserted from a schema_dev template -->
87
+ * **schema_dev**: SchemaPlus::Columns uses [schema_dev](https://github.com/SchemaPlus/schema_dev) to
88
+ facilitate running rspec tests on the matrix of ruby, activerecord, and database
89
+ versions that the gem supports, both locally and on
90
+ [travis-ci](http://travis-ci.org/SchemaPlus/schema_plus_columns)
91
+
92
+ To to run rspec locally on the full matrix, do:
93
+
94
+ $ schema_dev bundle install
95
+ $ schema_dev rspec
96
+
97
+ 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.
98
+
99
+ The matrix of configurations is specified in `schema_dev.yml` in
100
+ the project root.
101
+
102
+
103
+ <!-- SCHEMA_DEV: TEMPLATE USES SCHEMA_DEV - end -->
104
+
105
+ <!-- SCHEMA_DEV: TEMPLATE USES SCHEMA_PLUS_CORE - begin -->
106
+ <!-- These lines are auto-inserted from a schema_dev template -->
107
+ * **schema_plus_core**: SchemaPlus::Columns uses the SchemaPlus::Core API that
108
+ provides middleware callback stacks to make it easy to extend
109
+ ActiveRecord's behavior. If that API is missing something you need for
110
+ your contribution, please head over to
111
+ [schema_plus_core](https://github/SchemaPlus/schema_plus_core) and open
112
+ an issue or pull request.
113
+
114
+ <!-- SCHEMA_DEV: TEMPLATE USES SCHEMA_PLUS_CORE - end -->
115
+
116
+ <!-- SCHEMA_DEV: TEMPLATE USES SCHEMA_MONKEY - begin -->
117
+ <!-- These lines are auto-inserted from a schema_dev template -->
118
+ * **schema_monkey**: SchemaPlus::Columns is implemented as a
119
+ [schema_monkey](https://github.com/SchemaPlus/schema_monkey) client,
120
+ using [schema_monkey](https://github.com/SchemaPlus/schema_monkey)'s
121
+ convention-based protocols for extending ActiveRecord and using middleware stacks.
122
+
123
+ <!-- SCHEMA_DEV: TEMPLATE USES SCHEMA_MONKEY - end -->
@@ -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 "mysql2"
6
+ end
7
+
8
+ platform :jruby do
9
+ gem 'activerecord-jdbcmysql-adapter'
10
+ end
@@ -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,10 @@
1
+ require "pathname"
2
+ eval(Pathname.new(__FILE__).dirname.join("Gemfile.base").read, binding)
3
+
4
+ platform :ruby do
5
+ gem "sqlite3"
6
+ end
7
+
8
+ platform :jruby do
9
+ gem 'activerecord-jdbcsqlite3-adapter', '>=1.3.0.beta2'
10
+ end
@@ -0,0 +1,7 @@
1
+ require 'schema_plus/indexes'
2
+
3
+ require_relative 'columns/active_record/connection_adapters/column'
4
+ require_relative 'columns/middleware/model'
5
+ require_relative 'columns/version'
6
+
7
+ SchemaMonkey.register SchemaPlus::Columns
@@ -0,0 +1,65 @@
1
+ module SchemaPlus::Columns
2
+ module ActiveRecord
3
+ module ConnectionAdapters
4
+
5
+ #
6
+ # SchemaPlus::Index adds several methods to Column
7
+ #
8
+ module Column
9
+
10
+ attr_writer :model # model assigned set by Middleware::Model::Columns
11
+
12
+ # Returns the list of IndexDefinition instances for each index that
13
+ # refers to this column. Returns an empty list if there are no
14
+ # such indexes.
15
+ def indexes
16
+ @indexes ||= @model.indexes.select{|index| index.columns.include? self.name}
17
+ end
18
+
19
+ # If the column is in a unique index, returns a list of names of other columns in
20
+ # the index. Returns an empty list if it's a single-column index.
21
+ # Returns nil if the column is not in a unique index.
22
+ def unique_scope
23
+ if index = indexes.select{|i| i.unique}.sort_by{|i| i.columns.size}.first
24
+ index.columns.reject{|name| name == self.name}
25
+ end
26
+ end
27
+
28
+ # Returns true if the column is in a unique index. See also
29
+ # unique_scope
30
+ def unique?
31
+ indexes.any?{|i| i.unique}
32
+ end
33
+
34
+ # Returns true if the column is in one or more indexes that are
35
+ # case sensitive. Will raise exception if
36
+ # IndexDefinition#case_sensitive? isn't defined, i.e. if
37
+ # schema_plus_pg_indexes hasn't been loaded.
38
+ def case_sensitive?
39
+ indexes.any?{|i| i.case_sensitive?}
40
+ end
41
+
42
+ # The default as_jon includes all instance variables. but
43
+ # @model can't be dumped (it contains circular references)
44
+ def as_json(options=nil)
45
+ instance_values.except "model", "adapter"
46
+ end
47
+
48
+ # Returns the circumstance in which the column must have a value:
49
+ # nil if the column may be null
50
+ # :save if the column has no default value
51
+ # :update otherwise
52
+ def required_on
53
+ if null
54
+ nil
55
+ elsif default.nil?
56
+ :save
57
+ else
58
+ :update
59
+ end
60
+ end
61
+ end
62
+ end
63
+ end
64
+ end
65
+
@@ -0,0 +1,16 @@
1
+ module SchemaPlus::Columns
2
+ module Middleware
3
+ module Model
4
+
5
+ module Columns
6
+
7
+ def after(env)
8
+ env.columns.each do |column|
9
+ column.model = env.model
10
+ end
11
+ end
12
+
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,5 @@
1
+ module SchemaPlus
2
+ module Columns
3
+ VERSION = "0.1.0"
4
+ end
5
+ end
@@ -0,0 +1 @@
1
+ require_relative 'schema_plus/columns'
@@ -0,0 +1,8 @@
1
+ ruby:
2
+ - 2.1.5
3
+ activerecord:
4
+ - 4.2
5
+ db:
6
+ - mysql2
7
+ - sqlite3
8
+ - postgresql
@@ -0,0 +1,29 @@
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/columns/version'
5
+
6
+ Gem::Specification.new do |gem|
7
+ gem.name = "schema_plus_columns"
8
+ gem.version = SchemaPlus::Columns::VERSION
9
+ gem.authors = ["ronen barzel"]
10
+ gem.email = ["ronen@barzel.org"]
11
+ gem.summary = %q{Adds useful accessors to ActiveRecord's Column object.}
12
+ gem.homepage = "https://github.com/SchemaPlus/schema_plus_columns"
13
+ gem.license = "MIT"
14
+
15
+ gem.files = `git ls-files -z`.split("\x0")
16
+ gem.executables = gem.files.grep(%r{^bin/}) { |f| File.basename(f) }
17
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
18
+ gem.require_paths = ["lib"]
19
+
20
+ gem.add_dependency "activerecord", "~> 4.2"
21
+ gem.add_dependency "schema_plus_indexes", "~> 0.1"
22
+
23
+ gem.add_development_dependency "bundler", "~> 1.7"
24
+ gem.add_development_dependency "rake", "~> 10.0"
25
+ gem.add_development_dependency "rspec", "~> 3.0"
26
+ gem.add_development_dependency "schema_dev", "~> 3.2", ">= 3.2.2"
27
+ gem.add_development_dependency "simplecov"
28
+ gem.add_development_dependency "simplecov-gem-profile"
29
+ end
@@ -0,0 +1,156 @@
1
+ require 'spec_helper'
2
+
3
+ describe "Column" do
4
+
5
+ before(:all) do
6
+ class User < ::ActiveRecord::Base ; end
7
+ end
8
+
9
+ let(:migration) { ::ActiveRecord::Migration }
10
+
11
+ context "JSON serialization" do
12
+ before(:each) do
13
+ create_table(User, :login => { :index => true})
14
+ @login = User.columns.find{|column| column.name == "login"}
15
+ end
16
+ it "works properly" do
17
+ type = case
18
+ when SchemaDev::Rspec::Helpers.mysql?
19
+ { "sql_type" => "varchar(255)" }
20
+ when SchemaDev::Rspec::Helpers.postgresql?
21
+ { "sql_type" => "character varying" }
22
+ when SchemaDev::Rspec::Helpers.sqlite3?
23
+ { "sql_type" => "varchar" }
24
+ end
25
+ expect(JSON.parse(@login.to_json)).to include(type.merge("name" => "login"))
26
+ end
27
+ end
28
+
29
+ context "regarding indexes" do
30
+
31
+ context "if not unique" do
32
+
33
+ before(:each) do
34
+ create_table(User, :login => { :index => true})
35
+ @login = User.columns.find{|column| column.name == "login"}
36
+ end
37
+
38
+ it "should report not unique" do
39
+ expect(@login).not_to be_unique
40
+ end
41
+
42
+ it "should report nil unique scope" do
43
+ create_table(User, :login => { :index => true})
44
+ expect(@login.unique_scope).to be_nil
45
+ end
46
+ end
47
+
48
+ context "if unique single column" do
49
+ before(:each) do
50
+ create_table(User, :login => { :index => :unique})
51
+ @login = User.columns.find{|column| column.name == "login"}
52
+ end
53
+
54
+ it "should report unique" do
55
+ expect(@login).to be_unique
56
+ end
57
+
58
+ it "should report an empty unique scope" do
59
+ expect(@login.unique_scope).to eq([])
60
+ end
61
+ end
62
+
63
+ context "if unique multicolumn" do
64
+
65
+ before(:each) do
66
+ create_table(User, :first => {}, :middle => {}, :last => { :index => {:with => [:first, :middle], :unique => true}})
67
+ @first = User.columns.find{|column| column.name == "first"}
68
+ @middle = User.columns.find{|column| column.name == "middle"}
69
+ @last = User.columns.find{|column| column.name == "last"}
70
+ end
71
+
72
+ it "should report unique for each" do
73
+ expect(@first).to be_unique
74
+ expect(@middle).to be_unique
75
+ expect(@last).to be_unique
76
+ end
77
+
78
+ it "should report unique scope for each" do
79
+ expect(@first.unique_scope).to match_array(%W[middle last])
80
+ expect(@middle.unique_scope).to match_array(%W[first last])
81
+ expect(@last.unique_scope).to match_array(%W[first middle])
82
+ end
83
+ end
84
+
85
+ context "with case insensitive" do
86
+ before(:each) do
87
+ create_table(User, :login => { :index => {}})
88
+ User.reset_column_information
89
+ @column = User.columns.find(&its.name == "login")
90
+ end
91
+
92
+ context "index", :mysql => :skip do
93
+
94
+ it "reports column as case insensitive" do
95
+ allow(User.indexes.first).to receive(:case_sensitive?).and_return(false);
96
+ expect(@column).not_to be_case_sensitive
97
+ end
98
+ end
99
+
100
+ context "database", :mysql => :only do
101
+
102
+ # make sure we haven't broken mysql's method
103
+ it "reports column as case insensitive" do
104
+ allow(migration).to receive(:collation).and_return("utf8_unicode_ci") # mysql determines case insensitivity its own way
105
+ expect(@column).not_to be_case_sensitive
106
+ end
107
+ end
108
+ end
109
+
110
+ end
111
+
112
+ context "regarding when it requires a value" do
113
+
114
+ it "not required if the column can be null" do
115
+ create_table(User, :login => { :null => true})
116
+ expect(User.columns.find{|column| column.name == "login"}.required_on).to be_nil
117
+ end
118
+
119
+ it "must have a value on :save if there's no default" do
120
+ create_table(User, :login => { :null => false })
121
+ expect(User.columns.find{|column| column.name == "login"}.required_on).to eq(:save)
122
+ end
123
+
124
+ it "must have a value on :update if there's default" do
125
+ create_table(User, :login => { :null => false, :default => "foo" })
126
+ expect(User.columns.find{|column| column.name == "login"}.required_on).to eq(:update)
127
+ end
128
+
129
+ end
130
+
131
+ context "Postgresql array", :postgresql => :only do
132
+
133
+ before(:each) do
134
+ create_table(User, :alpha => { :default => [], :array => true })
135
+ end
136
+
137
+ it "respects array: true" do
138
+ column = User.columns.find(&its.name == "alpha")
139
+ expect(column.array).to be_truthy
140
+ end
141
+ end
142
+
143
+ protected
144
+
145
+ def create_table(model, columns_with_options)
146
+ migration.suppress_messages do
147
+ migration.create_table model.table_name, :force => true do |t|
148
+ columns_with_options.each_pair do |column, options|
149
+ t.send :string, column, options
150
+ end
151
+ end
152
+ model.reset_column_information
153
+ end
154
+ end
155
+
156
+ end
@@ -0,0 +1,13 @@
1
+ require 'spec_helper'
2
+
3
+
4
+ # A basic sanity check to have as a spec when first starting. Feel free to delete this
5
+ # once you've got real content.
6
+
7
+ describe "Sanity Check" do
8
+
9
+ it "database is connected" do
10
+ expect(ActiveRecord::Base).to be_connected
11
+ end
12
+
13
+ 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_columns'
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,186 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: schema_plus_columns
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-02-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_indexes
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '0.1'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '0.1'
41
+ - !ruby/object:Gem::Dependency
42
+ name: bundler
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.7'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.7'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '10.0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '10.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '3.0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '3.0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: schema_dev
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '3.2'
90
+ - - ">="
91
+ - !ruby/object:Gem::Version
92
+ version: 3.2.2
93
+ type: :development
94
+ prerelease: false
95
+ version_requirements: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - "~>"
98
+ - !ruby/object:Gem::Version
99
+ version: '3.2'
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: 3.2.2
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:
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.mysql2
147
+ - gemfiles/activerecord-4.2/Gemfile.postgresql
148
+ - gemfiles/activerecord-4.2/Gemfile.sqlite3
149
+ - lib/schema_plus/columns.rb
150
+ - lib/schema_plus/columns/active_record/connection_adapters/column.rb
151
+ - lib/schema_plus/columns/middleware/model.rb
152
+ - lib/schema_plus/columns/version.rb
153
+ - lib/schema_plus_columns.rb
154
+ - schema_dev.yml
155
+ - schema_plus_columns.gemspec
156
+ - spec/column_spec.rb
157
+ - spec/sanity_spec.rb
158
+ - spec/spec_helper.rb
159
+ homepage: https://github.com/SchemaPlus/schema_plus_columns
160
+ licenses:
161
+ - MIT
162
+ metadata: {}
163
+ post_install_message:
164
+ rdoc_options: []
165
+ require_paths:
166
+ - lib
167
+ required_ruby_version: !ruby/object:Gem::Requirement
168
+ requirements:
169
+ - - ">="
170
+ - !ruby/object:Gem::Version
171
+ version: '0'
172
+ required_rubygems_version: !ruby/object:Gem::Requirement
173
+ requirements:
174
+ - - ">="
175
+ - !ruby/object:Gem::Version
176
+ version: '0'
177
+ requirements: []
178
+ rubyforge_project:
179
+ rubygems_version: 2.2.2
180
+ signing_key:
181
+ specification_version: 4
182
+ summary: Adds useful accessors to ActiveRecord's Column object.
183
+ test_files:
184
+ - spec/column_spec.rb
185
+ - spec/sanity_spec.rb
186
+ - spec/spec_helper.rb