rom-rails 0.9.0 → 1.0.0.beta1
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 +4 -4
- data/.rspec +2 -0
- data/.travis.yml +1 -0
- data/CHANGELOG.md +14 -0
- data/Gemfile +8 -5
- data/lib/generators/rom/commands/templates/create.rb.erb +5 -7
- data/lib/generators/rom/commands/templates/update.rb.erb +5 -7
- data/lib/generators/rom/relation/templates/relation.rb.erb +6 -4
- data/lib/rom-rails.rb +0 -1
- data/lib/rom/rails/configuration.rb +0 -2
- data/lib/rom/rails/version.rb +1 -1
- data/rom-rails.gemspec +2 -4
- data/spec/dummy/app/commands/create_user.rb +10 -0
- data/spec/dummy/app/commands/update_user.rb +9 -0
- data/spec/dummy/app/controllers/users_controller.rb +12 -8
- data/spec/dummy/app/forms/user_form.rb +29 -9
- data/spec/dummy/app/mappers/task_mapper.rb +1 -1
- data/spec/dummy/app/mappers/user_mapper.rb +1 -1
- data/spec/dummy/app/models/user.rb +1 -1
- data/spec/dummy/app/relations/dummy_relation.rb +2 -1
- data/spec/dummy/app/relations/tasks.rb +2 -0
- data/spec/dummy/app/relations/users.rb +2 -0
- data/spec/dummy/lib/rom/test_adapter.rb +1 -1
- data/spec/features/users_spec.rb +1 -3
- data/spec/integration/activerecord_setup.rb +1 -1
- data/spec/integration/initializer_spec.rb +1 -3
- data/spec/integration/logger_spec.rb +1 -3
- data/spec/integration/user_commands_spec.rb +7 -7
- data/spec/integration/user_model_mapping_spec.rb +2 -4
- data/spec/lib/active_record/configuration_spec.rb +1 -2
- data/spec/lib/generators/commands_generator_spec.rb +7 -17
- data/spec/lib/generators/mapper_generator_spec.rb +1 -3
- data/spec/lib/generators/relation_generator_spec.rb +4 -8
- data/spec/lib/generators/repository_generator_spec.rb +1 -3
- data/spec/spec_helper.rb +1 -1
- metadata +12 -61
- data/lib/generators/rom/form/templates/base_form.rb.erb +0 -17
- data/lib/generators/rom/form/templates/edit_form.rb.erb +0 -20
- data/lib/generators/rom/form/templates/new_form.rb.erb +0 -20
- data/lib/generators/rom/form_generator.rb +0 -47
- data/lib/rom/rails/model/form.rb +0 -173
- data/lib/rom/rails/model/form/class_interface.rb +0 -457
- data/lib/rom/rails/model/form/error_proxy.rb +0 -53
- data/spec/dummy/app/forms/new_user_form.rb +0 -13
- data/spec/dummy/app/forms/update_user_form.rb +0 -11
- data/spec/integration/form_with_injected_commands_spec.rb +0 -37
- data/spec/integration/new_user_form_spec.rb +0 -19
- data/spec/lib/generators/form_generator_spec.rb +0 -140
- data/spec/unit/form_spec.rb +0 -366
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 15ad5132adeb785fc04f97c8090c43adb48c41d0
|
4
|
+
data.tar.gz: fe847edfa4122b433dee45eea46b2c3795b9ccfd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5348f013e4afbadb3d90b85391253d7ecd30737499b0c2a71ba3c330e643b87db80a109a0ebfe7986ec9375a09aa3e988e8b8e39ac3532099ebef5385ed67612
|
7
|
+
data.tar.gz: 70386c85f3322ddd242f5043eb3a37c8fe737b8065afbb5fcf578d4b46de90e5ef00316766533762d4e8e49f088b276eb4635737343c5a2b93dc0dc3d5047a0c
|
data/.rspec
CHANGED
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,17 @@
|
|
1
|
+
## HEAD
|
2
|
+
|
3
|
+
### Changed
|
4
|
+
|
5
|
+
* Updated to work with ROM 4.0.beta (cflipse)
|
6
|
+
|
7
|
+
### Removed
|
8
|
+
|
9
|
+
* remove ROM::Model::Form (cflipse)
|
10
|
+
* remove form generator (cflipse)
|
11
|
+
* remove deprecated `config.repositories` method (cflipse)
|
12
|
+
* No longer depends on `rom-model` gem (cflipse)
|
13
|
+
* No longer depends on `charlatan` gem (artofhuman)
|
14
|
+
|
1
15
|
## v0.9.0 2017-01-30
|
2
16
|
|
3
17
|
### Added
|
data/Gemfile
CHANGED
@@ -2,7 +2,7 @@ source 'https://rubygems.org'
|
|
2
2
|
|
3
3
|
gemspec
|
4
4
|
|
5
|
-
RAILS_VERSION = ENV.fetch("RAILS_VERSION", '5.
|
5
|
+
RAILS_VERSION = ENV.fetch("RAILS_VERSION", '5.1.0').freeze
|
6
6
|
|
7
7
|
%w(railties actionview actionpack activerecord).each do |name|
|
8
8
|
gem name, "~> #{RAILS_VERSION}"
|
@@ -10,11 +10,14 @@ end
|
|
10
10
|
|
11
11
|
gem 'sqlite3', platforms: [:mri, :rbx]
|
12
12
|
gem 'byebug', platforms: :mri
|
13
|
-
|
13
|
+
|
14
|
+
gem 'rom', git: 'https://github.com/rom-rb/rom', branch: 'master' do
|
15
|
+
gem 'rom-core'
|
16
|
+
gem 'rom-mapper'
|
17
|
+
gem 'rom-repository', group: :tools
|
18
|
+
end
|
19
|
+
|
14
20
|
gem 'rom-sql', github: 'rom-rb/rom-sql', branch: 'master'
|
15
|
-
gem 'rom-model', github: 'rom-rb/rom-model', branch: 'master'
|
16
|
-
gem 'rom-repository', github: 'rom-rb/rom-repository', branch: 'master'
|
17
|
-
gem 'rom-mapper', github: 'rom-rb/rom-mapper', branch: 'master'
|
18
21
|
|
19
22
|
platforms :jruby do
|
20
23
|
gem 'jdbc-sqlite3'
|
@@ -3,11 +3,9 @@ class Create<%= model_name %> < ROM::Commands::Create<%= "[:#{adapter}]" %>
|
|
3
3
|
register_as :create
|
4
4
|
result :one
|
5
5
|
|
6
|
-
|
7
|
-
#
|
8
|
-
|
9
|
-
#
|
10
|
-
|
11
|
-
# tuple.merge(created_at: time, updated_at: time)
|
12
|
-
# end
|
6
|
+
<% if adapter.to_sym == :sql -%>
|
7
|
+
# set Timestamp plugin
|
8
|
+
# use :timestamps
|
9
|
+
# timestamp :created_at, :updated_at
|
10
|
+
<% end -%>
|
13
11
|
end
|
@@ -3,11 +3,9 @@ class Update<%= model_name %> < ROM::Commands::Update<%= "[:#{adapter}]" %>
|
|
3
3
|
register_as :update
|
4
4
|
result :one
|
5
5
|
|
6
|
-
|
7
|
-
#
|
8
|
-
|
9
|
-
#
|
10
|
-
|
11
|
-
# tuple.merge(created_at: time)
|
12
|
-
# end
|
6
|
+
<% if adapter.to_sym == :sql -%>
|
7
|
+
# set Timestamp plugin
|
8
|
+
# use :timestamps
|
9
|
+
# timestamp :updated_at
|
10
|
+
<% end -%>
|
13
11
|
end
|
@@ -2,12 +2,14 @@ class <%= class_name %>Relation < ROM::Relation<%= "[:#{adapter}]" %>
|
|
2
2
|
<% if gateway -%>
|
3
3
|
gateway :<%= gateway %>
|
4
4
|
<% else -%>
|
5
|
-
|
5
|
+
gateway :default
|
6
6
|
<% end -%>
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
|
8
|
+
<% if register_as != dataset -%>
|
9
|
+
schema(:<%= dataset %>, as: :<%= register_as %>, infer: true)
|
10
|
+
<% else -%>
|
11
|
+
schema(:<%= dataset %>, infer: true)
|
12
|
+
<% end -%>
|
11
13
|
|
12
14
|
# define your methods here ie:
|
13
15
|
#
|
data/lib/rom-rails.rb
CHANGED
data/lib/rom/rails/version.rb
CHANGED
data/rom-rails.gemspec
CHANGED
@@ -17,12 +17,10 @@ Gem::Specification.new do |spec|
|
|
17
17
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
18
18
|
spec.require_paths = ["lib"]
|
19
19
|
|
20
|
-
spec.add_runtime_dependency 'rom', '~>
|
21
|
-
spec.add_runtime_dependency 'rom-model', '~> 0.3'
|
20
|
+
spec.add_runtime_dependency 'rom', '~> 4.0.0.beta'
|
22
21
|
spec.add_runtime_dependency 'dry-equalizer', '~> 0.2'
|
23
|
-
spec.add_runtime_dependency 'dry-core', '~> 0.
|
22
|
+
spec.add_runtime_dependency 'dry-core', '~> 0.3'
|
24
23
|
spec.add_runtime_dependency 'addressable', '~> 2.3'
|
25
|
-
spec.add_runtime_dependency 'charlatan', '~> 0.1'
|
26
24
|
spec.add_runtime_dependency 'railties', '>= 3.0', '< 6.0'
|
27
25
|
|
28
26
|
spec.add_development_dependency "rom-repository"
|
@@ -4,23 +4,24 @@ class UsersController < ApplicationController
|
|
4
4
|
end
|
5
5
|
|
6
6
|
def index
|
7
|
-
render :index, locals: { users: rom.
|
7
|
+
render :index, locals: { users: rom.relations[:users].map_with(:user) }
|
8
8
|
end
|
9
9
|
|
10
10
|
def search
|
11
11
|
render :index, locals: {
|
12
|
-
users: rom.
|
12
|
+
users: rom.relations[:users].map_with(:user).by_name(params[:name])
|
13
13
|
}
|
14
14
|
end
|
15
15
|
|
16
16
|
def new
|
17
|
-
render :new, locals: { user:
|
17
|
+
render :new, locals: { user: UserForm.new }
|
18
18
|
end
|
19
19
|
|
20
20
|
def create
|
21
|
-
user_form =
|
21
|
+
user_form = UserForm.new(params[:user].permit!)
|
22
22
|
|
23
|
-
if user_form.
|
23
|
+
if user_form.valid?
|
24
|
+
rom.commands[:users].create.call(user_form.to_h)
|
24
25
|
redirect_to :users
|
25
26
|
else
|
26
27
|
render :new, locals: { user: user_form }
|
@@ -28,15 +29,18 @@ class UsersController < ApplicationController
|
|
28
29
|
end
|
29
30
|
|
30
31
|
def edit
|
31
|
-
|
32
|
+
data = rom.relations[:users].where(id: params[:id]).one
|
33
|
+
user_form = UserForm.new(data)
|
32
34
|
|
33
35
|
render :edit, locals: { user: user_form }
|
34
36
|
end
|
35
37
|
|
36
38
|
def update
|
37
|
-
|
39
|
+
data = rom.relations[:users].where(id: params[:id]).one
|
40
|
+
user_form = UserForm.new(data).merge(params[:user].permit!)
|
38
41
|
|
39
|
-
if user_form.
|
42
|
+
if user_form.valid?
|
43
|
+
rom.commands[:users].update.by_id(params[:id]).call(user_form.to_h)
|
40
44
|
redirect_to :users
|
41
45
|
else
|
42
46
|
render :edit, locals: { user: user_form }
|
@@ -1,15 +1,35 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
require 'active_model'
|
2
|
+
class UserForm
|
3
|
+
include ActiveModel::Model
|
4
|
+
include ActiveModel::Validations
|
4
5
|
|
5
|
-
|
6
|
-
|
6
|
+
attr_accessor :name, :email, :id
|
7
|
+
|
8
|
+
validates :name, :email, presence: true
|
9
|
+
|
10
|
+
def initialize(params = {})
|
11
|
+
@id = params[:id]
|
12
|
+
@name = params[:name]
|
13
|
+
@email = params[:email]
|
7
14
|
end
|
8
15
|
|
9
|
-
|
10
|
-
|
16
|
+
def to_h
|
17
|
+
{ name: name, email: email }
|
18
|
+
end
|
11
19
|
|
12
|
-
|
13
|
-
|
20
|
+
def merge(input)
|
21
|
+
@name = input[:name]
|
22
|
+
@email = input[:email]
|
23
|
+
|
24
|
+
self
|
14
25
|
end
|
26
|
+
|
27
|
+
def persisted?
|
28
|
+
!!id
|
29
|
+
end
|
30
|
+
|
31
|
+
def self.model_name
|
32
|
+
ActiveModel::Name.new(User)
|
33
|
+
end
|
34
|
+
|
15
35
|
end
|
data/spec/features/users_spec.rb
CHANGED
@@ -1,14 +1,14 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
describe 'User commands' do
|
4
|
-
subject(:users) { rom.command(:users) }
|
1
|
+
RSpec.describe 'User commands' do
|
2
|
+
subject(:users) { rom.commands[:users] }
|
5
3
|
|
6
4
|
describe 'delete' do
|
7
5
|
it 'deletes record' do
|
8
|
-
rom.relations
|
9
|
-
|
6
|
+
relation = rom.relations[:users]
|
7
|
+
relation.insert(name: 'Piotr', email: 'piotr@test.com')
|
10
8
|
|
11
|
-
expect
|
9
|
+
expect{
|
10
|
+
users.delete.by_name('Piotr').call
|
11
|
+
}.to change(relation, :count).by(-1)
|
12
12
|
end
|
13
13
|
end
|
14
14
|
end
|
@@ -1,9 +1,7 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
describe 'User model mapping' do
|
1
|
+
RSpec.describe 'User model mapping' do
|
4
2
|
let(:rom) { ROM.env }
|
5
3
|
|
6
|
-
let(:users) { rom.
|
4
|
+
let(:users) { rom.relations[:users].map_with(:user) }
|
7
5
|
|
8
6
|
before do
|
9
7
|
rom.relations.users.insert(name: 'Piotr', email: 'piotr@test.com')
|
@@ -1,8 +1,6 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
1
|
require 'generators/rom/commands_generator'
|
4
2
|
|
5
|
-
describe ROM::Generators::CommandsGenerator do
|
3
|
+
RSpec.describe ROM::Generators::CommandsGenerator do
|
6
4
|
destination File.expand_path('../../../../tmp', __FILE__)
|
7
5
|
|
8
6
|
before(:each) do
|
@@ -24,13 +22,9 @@ describe ROM::Generators::CommandsGenerator do
|
|
24
22
|
register_as :create
|
25
23
|
result :one
|
26
24
|
|
27
|
-
#
|
28
|
-
#
|
29
|
-
|
30
|
-
# def timestamp(tuple)
|
31
|
-
# time = Time.current
|
32
|
-
# tuple.merge(created_at: time, updated_at: time)
|
33
|
-
# end
|
25
|
+
# set Timestamp plugin
|
26
|
+
# use :timestamps
|
27
|
+
# timestamp :created_at, :updated_at
|
34
28
|
end
|
35
29
|
CONTENT
|
36
30
|
end
|
@@ -42,13 +36,9 @@ describe ROM::Generators::CommandsGenerator do
|
|
42
36
|
register_as :update
|
43
37
|
result :one
|
44
38
|
|
45
|
-
#
|
46
|
-
#
|
47
|
-
|
48
|
-
# def timestamp(tuple)
|
49
|
-
# time = Time.current
|
50
|
-
# tuple.merge(created_at: time)
|
51
|
-
# end
|
39
|
+
# set Timestamp plugin
|
40
|
+
# use :timestamps
|
41
|
+
# timestamp :updated_at
|
52
42
|
end
|
53
43
|
CONTENT
|
54
44
|
end
|