declare_schema 3.0.0 → 3.1.0.colin.2

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.
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: declare_schema
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0
4
+ version: 3.1.0.colin.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Invoca Development adapted from hobo_fields by Tom Locke
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-04-08 00:00:00.000000000 Z
11
+ date: 2026-05-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '6.0'
19
+ version: '7.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '6.0'
26
+ version: '7.0'
27
27
  description: Declare your Rails/active_record model schemas and have database migrations
28
28
  generated for you!
29
29
  email: development@invoca.com
@@ -66,7 +66,6 @@ files:
66
66
  - lib/declare_schema/dsl.rb
67
67
  - lib/declare_schema/extensions/active_record/fields_declaration.rb
68
68
  - lib/declare_schema/extensions/module.rb
69
- - lib/declare_schema/field_declaration_dsl.rb
70
69
  - lib/declare_schema/model.rb
71
70
  - lib/declare_schema/model/column.rb
72
71
  - lib/declare_schema/model/field_spec.rb
@@ -108,7 +107,6 @@ files:
108
107
  - spec/fixtures/migrations/sqlite3/will_generate_unique_constraint_names_rails_6.txt
109
108
  - spec/fixtures/migrations/sqlite3/will_generate_unique_constraint_names_rails_7.txt
110
109
  - spec/lib/declare_schema/api_spec.rb
111
- - spec/lib/declare_schema/field_declaration_dsl_spec.rb
112
110
  - spec/lib/declare_schema/field_spec_spec.rb
113
111
  - spec/lib/declare_schema/generator_spec.rb
114
112
  - spec/lib/declare_schema/interactive_primary_key_spec.rb
@@ -133,6 +131,7 @@ files:
133
131
  - spec/lib/declare_schema/schema_change/table_remove_spec.rb
134
132
  - spec/lib/declare_schema/schema_change/table_rename_spec.rb
135
133
  - spec/lib/declare_schema_spec.rb
134
+ - spec/lib/generators/declare_schema/migration/migrator_default_pk_type_spec.rb
136
135
  - spec/lib/generators/declare_schema/migration/migrator_spec.rb
137
136
  - spec/spec_helper.rb
138
137
  - spec/support/acceptance_spec_helpers.rb
@@ -158,7 +157,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
158
157
  - !ruby/object:Gem::Version
159
158
  version: 1.3.6
160
159
  requirements: []
161
- rubygems_version: 3.4.16
160
+ rubygems_version: 3.4.10
162
161
  signing_key:
163
162
  specification_version: 4
164
163
  summary: Database schema declaration and migration generator for Rails
@@ -1,37 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module DeclareSchema
4
- class FieldDeclarationDsl < BasicObject # avoid Object because that gets extended by lots of gems
5
- include ::Kernel # but we need the basic class methods
6
-
7
- instance_methods.each do |m|
8
- unless m.to_s.starts_with?('__') || m.in?([:object_id, :instance_eval])
9
- undef_method(m)
10
- end
11
- end
12
-
13
- def initialize(model, **options)
14
- @model = model
15
- @options = options
16
- end
17
-
18
- attr_reader :model
19
-
20
- def timestamps
21
- field(:created_at, :datetime, null: true)
22
- field(:updated_at, :datetime, null: true)
23
- end
24
-
25
- def optimistic_lock
26
- field(:lock_version, :integer, default: 1, null: false)
27
- end
28
-
29
- def field(name, type, *args, **options)
30
- @model.declare_field(name, type, *args, **@options.merge(options))
31
- end
32
-
33
- def method_missing(name, *args, **options)
34
- field(name, *args, **options)
35
- end
36
- end
37
- end
@@ -1,34 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative '../../../lib/declare_schema/field_declaration_dsl'
4
-
5
- RSpec.describe DeclareSchema::FieldDeclarationDsl do
6
- include_context 'prepare test app'
7
-
8
- let(:model) { TestModel.new }
9
- subject { declared_class.new(model) }
10
-
11
- context 'Using declare_schema' do
12
- before do
13
- class TestModel < ActiveRecord::Base # rubocop:disable Lint/ConstantDefinitionInBlock
14
- declare_schema do
15
- string :name, limit: 127
16
-
17
- timestamps
18
- end
19
- end
20
- end
21
-
22
- it 'has fields' do
23
- expect(TestModel.field_specs).to be_kind_of(Hash)
24
- expect(TestModel.field_specs.keys).to eq(['name', 'created_at', 'updated_at'])
25
- expect(TestModel.field_specs.values.map(&:type)).to eq([:string, :datetime, :datetime])
26
- end
27
-
28
- it 'stores limits' do
29
- expect(TestModel.field_specs['name'].limit).to eq(127), TestModel.field_specs['name'].inspect
30
- end
31
- end
32
-
33
- # TODO: fill out remaining tests
34
- end