arpa 0.2.0 → 0.3.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 +5 -5
 - data/.rubocop.yml +17 -0
 - data/.ruby-version +1 -1
 - data/.travis.yml +5 -0
 - data/CHANGELOG.md +4 -0
 - data/README.md +4 -4
 - data/Rakefile +1 -2
 - data/arpa.gemspec +17 -18
 - data/lib/arpa.rb +65 -67
 - data/lib/arpa/additions/resource.rb +0 -2
 - data/lib/arpa/data_mappers/action_mapper.rb +1 -2
 - data/lib/arpa/data_mappers/base.rb +15 -16
 - data/lib/arpa/data_mappers/profile_mapper.rb +3 -4
 - data/lib/arpa/data_mappers/resource_mapper.rb +1 -1
 - data/lib/arpa/data_mappers/role_mapper.rb +2 -2
 - data/lib/arpa/entities/action.rb +0 -2
 - data/lib/arpa/entities/profile.rb +2 -3
 - data/lib/arpa/entities/resource.rb +4 -6
 - data/lib/arpa/entities/role.rb +2 -3
 - data/lib/arpa/exceptions/record_invalid.rb +0 -1
 - data/lib/arpa/repositories/actions/creator.rb +0 -1
 - data/lib/arpa/repositories/actions/finder.rb +5 -6
 - data/lib/arpa/repositories/actions/remover.rb +0 -1
 - data/lib/arpa/repositories/actions/repository_action.rb +1 -2
 - data/lib/arpa/repositories/base.rb +0 -2
 - data/lib/arpa/repositories/profiles/creator.rb +0 -1
 - data/lib/arpa/repositories/profiles/finder.rb +2 -3
 - data/lib/arpa/repositories/profiles/remover.rb +0 -1
 - data/lib/arpa/repositories/profiles/repository_profile.rb +1 -2
 - data/lib/arpa/repositories/profiles/updater.rb +0 -1
 - data/lib/arpa/repositories/registrator.rb +5 -10
 - data/lib/arpa/repositories/resources/creator.rb +0 -1
 - data/lib/arpa/repositories/resources/finder.rb +0 -1
 - data/lib/arpa/repositories/resources/remover.rb +0 -1
 - data/lib/arpa/repositories/resources/repository_resource.rb +1 -2
 - data/lib/arpa/repositories/roles/creator.rb +0 -1
 - data/lib/arpa/repositories/roles/finder.rb +0 -1
 - data/lib/arpa/repositories/roles/remover.rb +0 -1
 - data/lib/arpa/repositories/roles/repository_role.rb +1 -2
 - data/lib/arpa/repositories/roles/updater.rb +0 -1
 - data/lib/arpa/services/actions/create/action_creator.rb +1 -3
 - data/lib/arpa/services/actions/remove/action_remover.rb +0 -2
 - data/lib/arpa/services/base.rb +6 -10
 - data/lib/arpa/services/profiles/create/profile_creator.rb +0 -2
 - data/lib/arpa/services/profiles/profile_manager_creator.rb +0 -1
 - data/lib/arpa/services/profiles/profile_manager_remover.rb +0 -1
 - data/lib/arpa/services/profiles/profile_manager_updater.rb +0 -1
 - data/lib/arpa/services/profiles/remove/profile_remover.rb +0 -2
 - data/lib/arpa/services/profiles/update/profile_updater.rb +0 -2
 - data/lib/arpa/services/resources/create/resource_creator.rb +0 -2
 - data/lib/arpa/services/resources/remove/resource_remover.rb +1 -4
 - data/lib/arpa/services/resources/resource_manager_creator.rb +1 -2
 - data/lib/arpa/services/roles/create/role_creator.rb +0 -3
 - data/lib/arpa/services/roles/remove/role_remover.rb +0 -2
 - data/lib/arpa/services/roles/role_manager_creator.rb +0 -2
 - data/lib/arpa/services/roles/role_manager_remover.rb +0 -1
 - data/lib/arpa/services/roles/role_manager_updater.rb +0 -1
 - data/lib/arpa/services/roles/update/role_updater.rb +0 -2
 - data/lib/arpa/services/verifier.rb +0 -1
 - data/lib/arpa/validators/action_validator.rb +0 -1
 - data/lib/arpa/validators/profile_validator.rb +0 -1
 - data/lib/arpa/validators/resource_validator.rb +0 -1
 - data/lib/arpa/validators/role_validator.rb +0 -2
 - data/lib/arpa/version.rb +1 -1
 - data/lib/generators/arpa/controllers_generator.rb +21 -22
 - data/lib/generators/arpa/install_generator.rb +5 -6
 - data/lib/generators/arpa/templates/controllers/profiles_controller.rb +31 -37
 - data/lib/generators/arpa/templates/controllers/resources_controller.rb +20 -11
 - data/lib/generators/arpa/templates/controllers/roles_controller.rb +31 -37
 - data/lib/generators/arpa/templates/migration.rb +1 -1
 - data/spec/factories/repository_actions.rb +4 -5
 - data/spec/factories/repository_profiles.rb +4 -5
 - data/spec/factories/repository_resources.rb +1 -3
 - data/spec/factories/repository_roles.rb +2 -3
 - data/spec/factories/repository_test.rb +1 -1
 - data/spec/lib/arpa/additions/resource_spec.rb +8 -6
 - data/spec/lib/arpa/data_mappers/action_mapper_spec.rb +1 -3
 - data/spec/lib/arpa/data_mappers/base_spec.rb +0 -2
 - data/spec/lib/arpa/data_mappers/profile_mapper_spec.rb +1 -3
 - data/spec/lib/arpa/data_mappers/resource_mapper_spec.rb +1 -3
 - data/spec/lib/arpa/data_mappers/role_mapper_spec.rb +1 -3
 - data/spec/lib/arpa/entities/action_spec.rb +3 -6
 - data/spec/lib/arpa/entities/profile_spec.rb +1 -7
 - data/spec/lib/arpa/entities/resource_spec.rb +1 -9
 - data/spec/lib/arpa/entities/role_spec.rb +1 -7
 - data/spec/lib/arpa/repositories/actions/finder_spec.rb +1 -8
 - data/spec/lib/arpa/repositories/base_spec.rb +1 -9
 - data/spec/lib/arpa/repositories/profiles/finder_spec.rb +0 -6
 - data/spec/lib/arpa/repositories/profiles/remover_spec.rb +0 -4
 - data/spec/lib/arpa/repositories/resources/finder_spec.rb +0 -8
 - data/spec/lib/arpa/repositories/resources/remover_spec.rb +0 -4
 - data/spec/lib/arpa/repositories/roles/finder_spec.rb +0 -4
 - data/spec/lib/arpa/repositories/roles/remover_spec.rb +0 -4
 - data/spec/lib/arpa/requests/profiles/create_request_spec.rb +10 -12
 - data/spec/lib/arpa/requests/profiles/remove_request_spec.rb +4 -9
 - data/spec/lib/arpa/requests/resources/create_request_spec.rb +18 -21
 - data/spec/lib/arpa/requests/roles/create_request_spec.rb +7 -9
 - data/spec/lib/arpa/requests/roles/remove_request_spec.rb +3 -6
 - data/spec/lib/arpa/requests/roles/update_request_spec.rb +7 -9
 - data/spec/lib/arpa/services/actions/create/action_creator_spec.rb +5 -14
 - data/spec/lib/arpa/services/actions/remove/action_remover_spec.rb +3 -6
 - data/spec/lib/arpa/services/base_spec.rb +8 -15
 - data/spec/lib/arpa/services/profiles/create/profile_creator_spec.rb +0 -7
 - data/spec/lib/arpa/services/profiles/profile_manager_creator_spec.rb +2 -4
 - data/spec/lib/arpa/services/profiles/profile_manager_remover_spec.rb +3 -6
 - data/spec/lib/arpa/services/profiles/profile_manager_updater_spec.rb +2 -4
 - data/spec/lib/arpa/services/profiles/remove/profile_remover_spec.rb +0 -5
 - data/spec/lib/arpa/services/profiles/update/profile_updater_spec.rb +0 -7
 - data/spec/lib/arpa/services/resources/create/resource_creator_spec.rb +1 -7
 - data/spec/lib/arpa/services/resources/remove/resource_remover_spec.rb +2 -6
 - data/spec/lib/arpa/services/resources/resource_manager_creator_spec.rb +5 -7
 - data/spec/lib/arpa/services/roles/create/role_creator_spec.rb +0 -7
 - data/spec/lib/arpa/services/roles/remove/role_remover_spec.rb +1 -8
 - data/spec/lib/arpa/services/roles/role_manager_creator_spec.rb +2 -4
 - data/spec/lib/arpa/services/roles/role_manager_remover_spec.rb +2 -4
 - data/spec/lib/arpa/services/roles/role_manager_updater_spec.rb +2 -4
 - data/spec/lib/arpa/services/roles/update/role_updater_spec.rb +0 -7
 - data/spec/lib/arpa/services/verifier_spec.rb +3 -6
 - data/spec/lib/arpa/validators/action_validator_spec.rb +0 -1
 - data/spec/lib/arpa/validators/profile_validator_spec.rb +1 -2
 - data/spec/lib/arpa/validators/resource_validator_spec.rb +0 -1
 - data/spec/lib/arpa/validators/role_validator_spec.rb +1 -2
 - data/spec/spec_helper.rb +4 -6
 - data/spec/support/schema.rb +9 -10
 - metadata +40 -36
 
| 
         @@ -1,7 +1,6 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require 'spec_helper'
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            describe Arpa::Services::Resources::Create::ResourceCreator, type: :service, fast: true do
         
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
4 
     | 
    
         
             
              let(:resource_entity_class) { Arpa::Entities::Resource }
         
     | 
| 
       6 
5 
     | 
    
         
             
              let(:resource)              { double full_name: 'UsersController' }
         
     | 
| 
       7 
6 
     | 
    
         
             
              let(:resourceable)          { double }
         
     | 
| 
         @@ -11,7 +10,7 @@ describe Arpa::Services::Resources::Create::ResourceCreator, type: :service, fas 
     | 
|
| 
       11 
10 
     | 
    
         
             
              let(:validator_class)  { Arpa::Validators::ResourceValidator }
         
     | 
| 
       12 
11 
     | 
    
         
             
              let(:validator)        { instance_double validator_class }
         
     | 
| 
       13 
12 
     | 
    
         | 
| 
       14 
     | 
    
         
            -
              let(:finder_repo_class) { Arpa::Repositories::Resources::Finder}
         
     | 
| 
      
 13 
     | 
    
         
            +
              let(:finder_repo_class) { Arpa::Repositories::Resources::Finder }
         
     | 
| 
       15 
14 
     | 
    
         
             
              let(:finder_repo)       { instance_double finder_repo_class }
         
     | 
| 
       16 
15 
     | 
    
         | 
| 
       17 
16 
     | 
    
         
             
              before do
         
     | 
| 
         @@ -24,7 +23,6 @@ describe Arpa::Services::Resources::Create::ResourceCreator, type: :service, fas 
     | 
|
| 
       24 
23 
     | 
    
         
             
              end
         
     | 
| 
       25 
24 
     | 
    
         | 
| 
       26 
25 
     | 
    
         
             
              describe 'creating a new resource' do
         
     | 
| 
       27 
     | 
    
         
            -
             
     | 
| 
       28 
26 
     | 
    
         
             
                context 'when resource is invalid' do
         
     | 
| 
       29 
27 
     | 
    
         
             
                  let(:errors) { instance_double('ActiveModel::Errors') }
         
     | 
| 
       30 
28 
     | 
    
         | 
| 
         @@ -40,7 +38,6 @@ describe Arpa::Services::Resources::Create::ResourceCreator, type: :service, fas 
     | 
|
| 
       40 
38 
     | 
    
         
             
                      expect(error.errors).not_to be_nil
         
     | 
| 
       41 
39 
     | 
    
         
             
                    }
         
     | 
| 
       42 
40 
     | 
    
         
             
                  end
         
     | 
| 
       43 
     | 
    
         
            -
             
     | 
| 
       44 
41 
     | 
    
         
             
                end
         
     | 
| 
       45 
42 
     | 
    
         | 
| 
       46 
43 
     | 
    
         
             
                context 'when resouce already exists' do
         
     | 
| 
         @@ -71,7 +68,6 @@ describe Arpa::Services::Resources::Create::ResourceCreator, type: :service, fas 
     | 
|
| 
       71 
68 
     | 
    
         
             
                  end
         
     | 
| 
       72 
69 
     | 
    
         | 
| 
       73 
70 
     | 
    
         
             
                  context 'when build the resource with resourceable' do
         
     | 
| 
       74 
     | 
    
         
            -
             
     | 
| 
       75 
71 
     | 
    
         
             
                    it 'entity resource should call new method' do
         
     | 
| 
       76 
72 
     | 
    
         
             
                      expect(resource_entity_class).to have_received(:new).once
         
     | 
| 
       77 
73 
     | 
    
         
             
                    end
         
     | 
| 
         @@ -80,8 +76,6 @@ describe Arpa::Services::Resources::Create::ResourceCreator, type: :service, fas 
     | 
|
| 
       80 
76 
     | 
    
         
             
                      expect(resource).to have_received(:build_correct_name).once
         
     | 
| 
       81 
77 
     | 
    
         
             
                    end
         
     | 
| 
       82 
78 
     | 
    
         
             
                  end
         
     | 
| 
       83 
     | 
    
         
            -
             
     | 
| 
       84 
79 
     | 
    
         
             
                end
         
     | 
| 
       85 
     | 
    
         
            -
             
     | 
| 
       86 
80 
     | 
    
         
             
              end
         
     | 
| 
       87 
81 
     | 
    
         
             
            end
         
     | 
| 
         @@ -1,17 +1,15 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require 'spec_helper'
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            describe Arpa::Services::Resources::Remove::ResourceRemover, type: :service, fast: true do
         
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
4 
     | 
    
         
             
              let(:resource_001) { double full_name: 'UsersController' }
         
     | 
| 
       6 
5 
     | 
    
         
             
              let(:resource_002) { double full_name: 'OldContactsController' }
         
     | 
| 
       7 
     | 
    
         
            -
              let(:resources)    { [resource_001, resource_002]}
         
     | 
| 
      
 6 
     | 
    
         
            +
              let(:resources)    { [resource_001, resource_002] }
         
     | 
| 
       8 
7 
     | 
    
         | 
| 
       9 
8 
     | 
    
         
             
              let(:resourceable_001) { double to_s: 'UsersController' }
         
     | 
| 
       10 
9 
     | 
    
         
             
              let(:resourceable_002) { double to_s: 'ContactsController' }
         
     | 
| 
       11 
     | 
    
         
            -
              let(:resourceables)    { [resourceable_001, resourceable_002]}
         
     | 
| 
      
 10 
     | 
    
         
            +
              let(:resourceables)    { [resourceable_001, resourceable_002] }
         
     | 
| 
       12 
11 
     | 
    
         | 
| 
       13 
12 
     | 
    
         
             
              describe 'removing nonexistent resources' do
         
     | 
| 
       14 
     | 
    
         
            -
             
     | 
| 
       15 
13 
     | 
    
         
             
                let(:finder_repo_class) { Arpa::Repositories::Resources::Finder }
         
     | 
| 
       16 
14 
     | 
    
         
             
                let(:finder_repo)       { instance_double finder_repo_class }
         
     | 
| 
       17 
15 
     | 
    
         | 
| 
         @@ -44,7 +42,5 @@ describe Arpa::Services::Resources::Remove::ResourceRemover, type: :service, fas 
     | 
|
| 
       44 
42 
     | 
    
         
             
                  expect(remover_repo).to have_received(:destroy).once
         
     | 
| 
       45 
43 
     | 
    
         
             
                  expect(remover_repo).to have_received(:destroy).with(resource_002).once
         
     | 
| 
       46 
44 
     | 
    
         
             
                end
         
     | 
| 
       47 
     | 
    
         
            -
             
     | 
| 
       48 
45 
     | 
    
         
             
              end
         
     | 
| 
       49 
     | 
    
         
            -
             
     | 
| 
       50 
46 
     | 
    
         
             
            end
         
     | 
| 
         @@ -1,19 +1,18 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require 'spec_helper'
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            describe Arpa::Services::Resources::ResourceManagerCreator, type: :service, fast: true do
         
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
4 
     | 
    
         
             
              let(:action_remover)   { double }
         
     | 
| 
       6 
5 
     | 
    
         
             
              let(:resource_remover) { double }
         
     | 
| 
       7 
6 
     | 
    
         
             
              let(:resource_creator) { double }
         
     | 
| 
       8 
7 
     | 
    
         
             
              let(:action_creator)   { double }
         
     | 
| 
       9 
8 
     | 
    
         
             
              let(:element)          { double }
         
     | 
| 
       10 
9 
     | 
    
         
             
              let(:resourceables)    { [resourceable_001, resourceable_002] }
         
     | 
| 
       11 
     | 
    
         
            -
              let(:params)           { {resourceables: resourceables, except_action_methods: ['some_method']} }
         
     | 
| 
      
 10 
     | 
    
         
            +
              let(:params)           { { resourceables: resourceables, except_action_methods: ['some_method'] } }
         
     | 
| 
       12 
11 
     | 
    
         
             
              let(:success_proc)     { ->(r) {} }
         
     | 
| 
       13 
     | 
    
         
            -
              let(:callback)         { {success: success_proc, fail: ->(e) {raise e} } }
         
     | 
| 
      
 12 
     | 
    
         
            +
              let(:callback)         { { success: success_proc, fail: ->(e) { raise e } } }
         
     | 
| 
       14 
13 
     | 
    
         | 
| 
       15 
14 
     | 
    
         
             
              let(:resourceable_001) { double action_methods: [] }
         
     | 
| 
       16 
     | 
    
         
            -
              let(:resourceable_002) { double action_methods: []}
         
     | 
| 
      
 15 
     | 
    
         
            +
              let(:resourceable_002) { double action_methods: [] }
         
     | 
| 
       17 
16 
     | 
    
         
             
              let(:resource_created) { double }
         
     | 
| 
       18 
17 
     | 
    
         | 
| 
       19 
18 
     | 
    
         
             
              let(:setup_creators) do
         
     | 
| 
         @@ -52,7 +51,7 @@ describe Arpa::Services::Resources::ResourceManagerCreator, type: :service, fast 
     | 
|
| 
       52 
51 
     | 
    
         
             
              end
         
     | 
| 
       53 
52 
     | 
    
         | 
| 
       54 
53 
     | 
    
         
             
              it 'action_remover should call :remove_nonexistent_actions with :action_params as parameter' do
         
     | 
| 
       55 
     | 
    
         
            -
                expect(action_remover).to have_received(:remove_nonexistent_actions).with( 
     | 
| 
      
 54 
     | 
    
         
            +
                expect(action_remover).to have_received(:remove_nonexistent_actions).with(resource: resource_created, actions_names: []).twice
         
     | 
| 
       56 
55 
     | 
    
         
             
              end
         
     | 
| 
       57 
56 
     | 
    
         | 
| 
       58 
57 
     | 
    
         
             
              it 'resource_creator should call :create with :resourceable as parameter' do
         
     | 
| 
         @@ -61,11 +60,10 @@ describe Arpa::Services::Resources::ResourceManagerCreator, type: :service, fast 
     | 
|
| 
       61 
60 
     | 
    
         
             
              end
         
     | 
| 
       62 
61 
     | 
    
         | 
| 
       63 
62 
     | 
    
         
             
              it 'action_creator should call :create_many with :action_params as parameter' do
         
     | 
| 
       64 
     | 
    
         
            -
                expect(action_creator).to have_received(:create_many).with( 
     | 
| 
      
 63 
     | 
    
         
            +
                expect(action_creator).to have_received(:create_many).with(resource: resource_created, actions_names: []).twice
         
     | 
| 
       65 
64 
     | 
    
         
             
              end
         
     | 
| 
       66 
65 
     | 
    
         | 
| 
       67 
66 
     | 
    
         
             
              it 'success callback should be called with Array of resources as parameter' do
         
     | 
| 
       68 
67 
     | 
    
         
             
                expect(success_proc).to have_received(:call).with([resource_created, resource_created])
         
     | 
| 
       69 
68 
     | 
    
         
             
              end
         
     | 
| 
       70 
     | 
    
         
            -
             
     | 
| 
       71 
69 
     | 
    
         
             
            end
         
     | 
| 
         @@ -1,7 +1,6 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require 'spec_helper'
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            describe Arpa::Services::Roles::Create::RoleCreator, type: :service, fast: true do
         
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
4 
     | 
    
         
             
              let(:role_entity_class) { Arpa::Entities::Role }
         
     | 
| 
       6 
5 
     | 
    
         
             
              let(:role)              { double }
         
     | 
| 
       7 
6 
     | 
    
         
             
              let(:params)            { double }
         
     | 
| 
         @@ -16,7 +15,6 @@ describe Arpa::Services::Roles::Create::RoleCreator, type: :service, fast: true 
     | 
|
| 
       16 
15 
     | 
    
         
             
              end
         
     | 
| 
       17 
16 
     | 
    
         | 
| 
       18 
17 
     | 
    
         
             
              describe 'creating a new role' do
         
     | 
| 
       19 
     | 
    
         
            -
             
     | 
| 
       20 
18 
     | 
    
         
             
                context 'when role is invalid' do
         
     | 
| 
       21 
19 
     | 
    
         
             
                  let(:errors) { instance_double('ActiveModel::Errors') }
         
     | 
| 
       22 
20 
     | 
    
         | 
| 
         @@ -32,7 +30,6 @@ describe Arpa::Services::Roles::Create::RoleCreator, type: :service, fast: true 
     | 
|
| 
       32 
30 
     | 
    
         
             
                      expect(error.errors).not_to be_nil
         
     | 
| 
       33 
31 
     | 
    
         
             
                    }
         
     | 
| 
       34 
32 
     | 
    
         
             
                  end
         
     | 
| 
       35 
     | 
    
         
            -
             
     | 
| 
       36 
33 
     | 
    
         
             
                end
         
     | 
| 
       37 
34 
     | 
    
         | 
| 
       38 
35 
     | 
    
         
             
                context 'when role is valid' do
         
     | 
| 
         @@ -55,14 +52,10 @@ describe Arpa::Services::Roles::Create::RoleCreator, type: :service, fast: true 
     | 
|
| 
       55 
52 
     | 
    
         
             
                  end
         
     | 
| 
       56 
53 
     | 
    
         | 
| 
       57 
54 
     | 
    
         
             
                  context 'when build the role' do
         
     | 
| 
       58 
     | 
    
         
            -
             
     | 
| 
       59 
55 
     | 
    
         
             
                    it 'entity role should call new method' do
         
     | 
| 
       60 
56 
     | 
    
         
             
                      expect(role_entity_class).to have_received(:new).once
         
     | 
| 
       61 
57 
     | 
    
         
             
                    end
         
     | 
| 
       62 
     | 
    
         
            -
             
     | 
| 
       63 
58 
     | 
    
         
             
                  end
         
     | 
| 
       64 
     | 
    
         
            -
             
     | 
| 
       65 
59 
     | 
    
         
             
                end
         
     | 
| 
       66 
     | 
    
         
            -
             
     | 
| 
       67 
60 
     | 
    
         
             
              end
         
     | 
| 
       68 
61 
     | 
    
         
             
            end
         
     | 
| 
         @@ -1,13 +1,12 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require 'spec_helper'
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            describe Arpa::Services::Roles::Remove::RoleRemover, type: :service, fast: true do
         
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
4 
     | 
    
         
             
              let(:role) { double }
         
     | 
| 
       6 
5 
     | 
    
         | 
| 
       7 
6 
     | 
    
         
             
              describe 'removing role' do
         
     | 
| 
       8 
7 
     | 
    
         
             
                let(:remover_repo_class) { Arpa::Repositories::Roles::Remover }
         
     | 
| 
       9 
8 
     | 
    
         
             
                let(:remover_repo)       { instance_double remover_repo_class }
         
     | 
| 
       10 
     | 
    
         
            -
                let(:setup)              { 
     | 
| 
      
 9 
     | 
    
         
            +
                let(:setup)              {}
         
     | 
| 
       11 
10 
     | 
    
         | 
| 
       12 
11 
     | 
    
         
             
                before do
         
     | 
| 
       13 
12 
     | 
    
         
             
                  allow(remover_repo_class).to receive(:new).and_return(remover_repo)
         
     | 
| 
         @@ -16,7 +15,6 @@ describe Arpa::Services::Roles::Remove::RoleRemover, type: :service, fast: true 
     | 
|
| 
       16 
15 
     | 
    
         
             
                end
         
     | 
| 
       17 
16 
     | 
    
         | 
| 
       18 
17 
     | 
    
         
             
                context 'when role has no profiles' do
         
     | 
| 
       19 
     | 
    
         
            -
             
     | 
| 
       20 
18 
     | 
    
         
             
                  let(:setup) do
         
     | 
| 
       21 
19 
     | 
    
         
             
                    allow(role).to receive(:has_profile?).and_return(false)
         
     | 
| 
       22 
20 
     | 
    
         
             
                    allow(remover_repo).to receive(:destroy)
         
     | 
| 
         @@ -29,11 +27,9 @@ describe Arpa::Services::Roles::Remove::RoleRemover, type: :service, fast: true 
     | 
|
| 
       29 
27 
     | 
    
         
             
                  it 'remover repository should call :new once' do
         
     | 
| 
       30 
28 
     | 
    
         
             
                    expect(remover_repo_class).to have_received(:new).once
         
     | 
| 
       31 
29 
     | 
    
         
             
                  end
         
     | 
| 
       32 
     | 
    
         
            -
             
     | 
| 
       33 
30 
     | 
    
         
             
                end
         
     | 
| 
       34 
31 
     | 
    
         | 
| 
       35 
32 
     | 
    
         
             
                context 'when role has profiles' do
         
     | 
| 
       36 
     | 
    
         
            -
             
     | 
| 
       37 
33 
     | 
    
         
             
                  let(:setup) do
         
     | 
| 
       38 
34 
     | 
    
         
             
                    allow(role).to receive(:has_profile?).and_return(true)
         
     | 
| 
       39 
35 
     | 
    
         
             
                    allow(remover_repo).to receive(:disable)
         
     | 
| 
         @@ -42,9 +38,6 @@ describe Arpa::Services::Roles::Remove::RoleRemover, type: :service, fast: true 
     | 
|
| 
       42 
38 
     | 
    
         
             
                  it 'remover repository should call :disable once' do
         
     | 
| 
       43 
39 
     | 
    
         
             
                    expect(remover_repo).to have_received(:disable).once
         
     | 
| 
       44 
40 
     | 
    
         
             
                  end
         
     | 
| 
       45 
     | 
    
         
            -
             
     | 
| 
       46 
41 
     | 
    
         
             
                end
         
     | 
| 
       47 
     | 
    
         
            -
             
     | 
| 
       48 
42 
     | 
    
         
             
              end
         
     | 
| 
       49 
     | 
    
         
            -
             
     | 
| 
       50 
43 
     | 
    
         
             
            end
         
     | 
| 
         @@ -1,11 +1,10 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require 'spec_helper'
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            describe Arpa::Services::Roles::RoleManagerCreator, type: :service, fast: true do
         
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
4 
     | 
    
         
             
              let(:role_creator) { double }
         
     | 
| 
       6 
     | 
    
         
            -
              let(:params)           { {role: {name: 'role_name', description: 'role_description', action_ids: [1, 2]}} }
         
     | 
| 
      
 5 
     | 
    
         
            +
              let(:params)           { { role: { name: 'role_name', description: 'role_description', action_ids: [1, 2] } } }
         
     | 
| 
       7 
6 
     | 
    
         
             
              let(:success_proc)     { ->(r) {} }
         
     | 
| 
       8 
     | 
    
         
            -
              let(:callback)         { {success: success_proc, fail: ->(e) {raise e} } }
         
     | 
| 
      
 7 
     | 
    
         
            +
              let(:callback)         { { success: success_proc, fail: ->(e) { raise e } } }
         
     | 
| 
       9 
8 
     | 
    
         | 
| 
       10 
9 
     | 
    
         
             
              let(:setup_creators) do
         
     | 
| 
       11 
10 
     | 
    
         
             
                allow(Arpa::Services::Roles::Create::RoleCreator).to receive(:new).and_return(role_creator)
         
     | 
| 
         @@ -27,5 +26,4 @@ describe Arpa::Services::Roles::RoleManagerCreator, type: :service, fast: true d 
     | 
|
| 
       27 
26 
     | 
    
         
             
              it 'role_creator should call :create with parameters' do
         
     | 
| 
       28 
27 
     | 
    
         
             
                expect(role_creator).to have_received(:create).with(params[:role]).once
         
     | 
| 
       29 
28 
     | 
    
         
             
              end
         
     | 
| 
       30 
     | 
    
         
            -
             
     | 
| 
       31 
29 
     | 
    
         
             
            end
         
     | 
| 
         @@ -1,12 +1,11 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require 'spec_helper'
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            describe Arpa::Services::Roles::RoleManagerRemover, type: :service, fast: true do
         
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
4 
     | 
    
         
             
              let(:role_remover) { double }
         
     | 
| 
       6 
5 
     | 
    
         
             
              let(:role)         { double }
         
     | 
| 
       7 
     | 
    
         
            -
              let(:params)       { {role: role} }
         
     | 
| 
      
 6 
     | 
    
         
            +
              let(:params)       { { role: role } }
         
     | 
| 
       8 
7 
     | 
    
         
             
              let(:success_proc) { ->(r) {} }
         
     | 
| 
       9 
     | 
    
         
            -
              let(:callback)     { {success: success_proc, fail: ->(e) {raise e} } }
         
     | 
| 
      
 8 
     | 
    
         
            +
              let(:callback)     { { success: success_proc, fail: ->(e) { raise e } } }
         
     | 
| 
       10 
9 
     | 
    
         | 
| 
       11 
10 
     | 
    
         
             
              let(:setup_updaters) do
         
     | 
| 
       12 
11 
     | 
    
         
             
                allow(Arpa::Services::Roles::Remove::RoleRemover).to receive(:new).and_return(role_remover)
         
     | 
| 
         @@ -28,5 +27,4 @@ describe Arpa::Services::Roles::RoleManagerRemover, type: :service, fast: true d 
     | 
|
| 
       28 
27 
     | 
    
         
             
              it 'role_remover should call :remove with role as parameter' do
         
     | 
| 
       29 
28 
     | 
    
         
             
                expect(role_remover).to have_received(:remove).with(role).once
         
     | 
| 
       30 
29 
     | 
    
         
             
              end
         
     | 
| 
       31 
     | 
    
         
            -
             
     | 
| 
       32 
30 
     | 
    
         
             
            end
         
     | 
| 
         @@ -1,11 +1,10 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require 'spec_helper'
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            describe Arpa::Services::Roles::RoleManagerUpdater, type: :service, fast: true do
         
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
4 
     | 
    
         
             
              let(:role_updater) { double }
         
     | 
| 
       6 
     | 
    
         
            -
              let(:params)       { {role: {name: 'role_name', description: 'role_description', action_ids: [1, 2]}} }
         
     | 
| 
      
 5 
     | 
    
         
            +
              let(:params)       { { role: { name: 'role_name', description: 'role_description', action_ids: [1, 2] } } }
         
     | 
| 
       7 
6 
     | 
    
         
             
              let(:success_proc) { ->(r) {} }
         
     | 
| 
       8 
     | 
    
         
            -
              let(:callback)     { {success: success_proc, fail: ->(e) {raise e} } }
         
     | 
| 
      
 7 
     | 
    
         
            +
              let(:callback)     { { success: success_proc, fail: ->(e) { raise e } } }
         
     | 
| 
       9 
8 
     | 
    
         | 
| 
       10 
9 
     | 
    
         
             
              let(:setup_updaters) do
         
     | 
| 
       11 
10 
     | 
    
         
             
                allow(Arpa::Services::Roles::Update::RoleUpdater).to receive(:new).and_return(role_updater)
         
     | 
| 
         @@ -27,5 +26,4 @@ describe Arpa::Services::Roles::RoleManagerUpdater, type: :service, fast: true d 
     | 
|
| 
       27 
26 
     | 
    
         
             
              it 'role_updater should call :update with parameters' do
         
     | 
| 
       28 
27 
     | 
    
         
             
                expect(role_updater).to have_received(:update).with(params[:role]).once
         
     | 
| 
       29 
28 
     | 
    
         
             
              end
         
     | 
| 
       30 
     | 
    
         
            -
             
     | 
| 
       31 
29 
     | 
    
         
             
            end
         
     | 
| 
         @@ -1,7 +1,6 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require 'spec_helper'
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            describe Arpa::Services::Roles::Update::RoleUpdater, type: :service, fast: true do
         
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
4 
     | 
    
         
             
              let(:role_entity_class) { Arpa::Entities::Role }
         
     | 
| 
       6 
5 
     | 
    
         
             
              let(:role)              { double }
         
     | 
| 
       7 
6 
     | 
    
         
             
              let(:params)            { double }
         
     | 
| 
         @@ -16,7 +15,6 @@ describe Arpa::Services::Roles::Update::RoleUpdater, type: :service, fast: true 
     | 
|
| 
       16 
15 
     | 
    
         
             
              end
         
     | 
| 
       17 
16 
     | 
    
         | 
| 
       18 
17 
     | 
    
         
             
              describe 'updating a role' do
         
     | 
| 
       19 
     | 
    
         
            -
             
     | 
| 
       20 
18 
     | 
    
         
             
                context 'when role is invalid' do
         
     | 
| 
       21 
19 
     | 
    
         
             
                  let(:errors) { instance_double('ActiveModel::Errors') }
         
     | 
| 
       22 
20 
     | 
    
         | 
| 
         @@ -32,7 +30,6 @@ describe Arpa::Services::Roles::Update::RoleUpdater, type: :service, fast: true 
     | 
|
| 
       32 
30 
     | 
    
         
             
                      expect(error.errors).not_to be_nil
         
     | 
| 
       33 
31 
     | 
    
         
             
                    }
         
     | 
| 
       34 
32 
     | 
    
         
             
                  end
         
     | 
| 
       35 
     | 
    
         
            -
             
     | 
| 
       36 
33 
     | 
    
         
             
                end
         
     | 
| 
       37 
34 
     | 
    
         | 
| 
       38 
35 
     | 
    
         
             
                context 'when role is valid' do
         
     | 
| 
         @@ -55,14 +52,10 @@ describe Arpa::Services::Roles::Update::RoleUpdater, type: :service, fast: true 
     | 
|
| 
       55 
52 
     | 
    
         
             
                  end
         
     | 
| 
       56 
53 
     | 
    
         | 
| 
       57 
54 
     | 
    
         
             
                  context 'when build the role' do
         
     | 
| 
       58 
     | 
    
         
            -
             
     | 
| 
       59 
55 
     | 
    
         
             
                    it 'entity role should call new method' do
         
     | 
| 
       60 
56 
     | 
    
         
             
                      expect(role_entity_class).to have_received(:new).once
         
     | 
| 
       61 
57 
     | 
    
         
             
                    end
         
     | 
| 
       62 
     | 
    
         
            -
             
     | 
| 
       63 
58 
     | 
    
         
             
                  end
         
     | 
| 
       64 
     | 
    
         
            -
             
     | 
| 
       65 
59 
     | 
    
         
             
                end
         
     | 
| 
       66 
     | 
    
         
            -
             
     | 
| 
       67 
60 
     | 
    
         
             
              end
         
     | 
| 
       68 
61 
     | 
    
         
             
            end
         
     | 
| 
         @@ -1,14 +1,13 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require 'spec_helper'
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            describe Arpa::Services::Verifier do
         
     | 
| 
       4 
     | 
    
         
            -
              let(:current_user) { double is_arpa_admin?: false, profile_ids: [1,2,3] }
         
     | 
| 
      
 4 
     | 
    
         
            +
              let(:current_user) { double is_arpa_admin?: false, profile_ids: [1, 2, 3] }
         
     | 
| 
       5 
5 
     | 
    
         | 
| 
       6 
6 
     | 
    
         
             
              subject(:verifier) { Arpa::Services::Verifier.new(current_user) }
         
     | 
| 
       7 
7 
     | 
    
         | 
| 
       8 
8 
     | 
    
         
             
              describe '#has_access?' do
         
     | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
       10 
9 
     | 
    
         
             
                context 'when current_user is a arpa admin' do
         
     | 
| 
       11 
     | 
    
         
            -
                  let(:current_user) { double is_arpa_admin?: true, profile_ids: [1,2,3] }
         
     | 
| 
      
 10 
     | 
    
         
            +
                  let(:current_user) { double is_arpa_admin?: true, profile_ids: [1, 2, 3] }
         
     | 
| 
       12 
11 
     | 
    
         | 
| 
       13 
12 
     | 
    
         
             
                  it 'should has access' do
         
     | 
| 
       14 
13 
     | 
    
         
             
                    expect(subject.has_access?('home', 'some_action')).to be_truthy
         
     | 
| 
         @@ -38,10 +37,8 @@ describe Arpa::Services::Verifier do 
     | 
|
| 
       38 
37 
     | 
    
         
             
                  end
         
     | 
| 
       39 
38 
     | 
    
         | 
| 
       40 
39 
     | 
    
         
             
                  it 'should be called :permissions from Arpa::Repositories::Actions::Finder' do
         
     | 
| 
       41 
     | 
    
         
            -
                    expect(action_finder).to have_received(:permission).with('users', 'index', [1,2,3]).once
         
     | 
| 
      
 40 
     | 
    
         
            +
                    expect(action_finder).to have_received(:permission).with('users', 'index', [1, 2, 3]).once
         
     | 
| 
       42 
41 
     | 
    
         
             
                  end
         
     | 
| 
       43 
     | 
    
         
            -
             
     | 
| 
       44 
42 
     | 
    
         
             
                end
         
     | 
| 
       45 
     | 
    
         
            -
             
     | 
| 
       46 
43 
     | 
    
         
             
              end
         
     | 
| 
       47 
44 
     | 
    
         
             
            end
         
     | 
| 
         @@ -10,7 +10,6 @@ describe Arpa::Validators::ProfileValidator, type: :validator, fast: true do 
     | 
|
| 
       10 
10 
     | 
    
         
             
              context 'when require' do
         
     | 
| 
       11 
11 
     | 
    
         
             
                it { expect(subject.errors).to be_added(:name, :blank) }
         
     | 
| 
       12 
12 
     | 
    
         
             
                it { expect(subject.errors).to be_added(:description, :blank) }
         
     | 
| 
       13 
     | 
    
         
            -
                it { expect(subject.errors).to be_added(:role_ids, : 
     | 
| 
      
 13 
     | 
    
         
            +
                it { expect(subject.errors).to be_added(:role_ids, :blank) }
         
     | 
| 
       14 
14 
     | 
    
         
             
              end
         
     | 
| 
       15 
     | 
    
         
            -
             
     | 
| 
       16 
15 
     | 
    
         
             
            end
         
     | 
| 
         @@ -10,7 +10,6 @@ describe Arpa::Validators::RoleValidator, type: :validator, fast: true do 
     | 
|
| 
       10 
10 
     | 
    
         
             
              context 'when require' do
         
     | 
| 
       11 
11 
     | 
    
         
             
                it { expect(subject.errors).to be_added(:name, :blank) }
         
     | 
| 
       12 
12 
     | 
    
         
             
                it { expect(subject.errors).to be_added(:description, :blank) }
         
     | 
| 
       13 
     | 
    
         
            -
                it { expect(subject.errors).to be_added(:action_ids, : 
     | 
| 
      
 13 
     | 
    
         
            +
                it { expect(subject.errors).to be_added(:action_ids, :blank) }
         
     | 
| 
       14 
14 
     | 
    
         
             
              end
         
     | 
| 
       15 
     | 
    
         
            -
             
     | 
| 
       16 
15 
     | 
    
         
             
            end
         
     | 
    
        data/spec/spec_helper.rb
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require 'active_record'
         
     | 
| 
       2 
2 
     | 
    
         
             
            require 'arpa'
         
     | 
| 
       3 
3 
     | 
    
         
             
            require 'database_cleaner'
         
     | 
| 
       4 
     | 
    
         
            -
            require ' 
     | 
| 
      
 4 
     | 
    
         
            +
            require 'factory_bot'
         
     | 
| 
       5 
5 
     | 
    
         
             
            require 'support/repositories/test_repository'
         
     | 
| 
       6 
6 
     | 
    
         
             
            require 'i18n'
         
     | 
| 
       7 
7 
     | 
    
         | 
| 
         @@ -11,13 +11,12 @@ ActiveRecord::Base.establish_connection(adapter:  'sqlite3', 
     | 
|
| 
       11 
11 
     | 
    
         
             
            load File.dirname(__FILE__) + '/support/schema.rb'
         
     | 
| 
       12 
12 
     | 
    
         | 
| 
       13 
13 
     | 
    
         
             
            I18n.config.enforce_available_locales = true
         
     | 
| 
       14 
     | 
    
         
            -
            I18n.load_path << File.expand_path(' 
     | 
| 
      
 14 
     | 
    
         
            +
            I18n.load_path << File.expand_path('../lib/config/locales/arpa.en.yml', __dir__)
         
     | 
| 
       15 
15 
     | 
    
         
             
            I18n.reload!
         
     | 
| 
       16 
16 
     | 
    
         | 
| 
       17 
17 
     | 
    
         
             
            RSpec.configure do |config|
         
     | 
| 
       18 
     | 
    
         
            -
             
     | 
| 
       19 
     | 
    
         
            -
               
     | 
| 
       20 
     | 
    
         
            -
              FactoryGirl.find_definitions
         
     | 
| 
      
 18 
     | 
    
         
            +
              config.include FactoryBot::Syntax::Methods
         
     | 
| 
      
 19 
     | 
    
         
            +
              FactoryBot.find_definitions
         
     | 
| 
       21 
20 
     | 
    
         | 
| 
       22 
21 
     | 
    
         
             
              config.before(:suite) do
         
     | 
| 
       23 
22 
     | 
    
         
             
                DatabaseCleaner.strategy = :transaction
         
     | 
| 
         @@ -29,5 +28,4 @@ RSpec.configure do |config| 
     | 
|
| 
       29 
28 
     | 
    
         
             
                  example.run
         
     | 
| 
       30 
29 
     | 
    
         
             
                end
         
     | 
| 
       31 
30 
     | 
    
         
             
              end
         
     | 
| 
       32 
     | 
    
         
            -
             
     | 
| 
       33 
31 
     | 
    
         
             
            end
         
     | 
    
        data/spec/support/schema.rb
    CHANGED
    
    | 
         @@ -1,18 +1,18 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ActiveRecord::Schema.define do
         
     | 
| 
       2 
2 
     | 
    
         
             
              self.verbose = false
         
     | 
| 
       3 
3 
     | 
    
         | 
| 
       4 
     | 
    
         
            -
              create_table :test_repositories, : 
     | 
| 
      
 4 
     | 
    
         
            +
              create_table :test_repositories, force: true do |t|
         
     | 
| 
       5 
5 
     | 
    
         
             
                t.string :name
         
     | 
| 
       6 
6 
     | 
    
         
             
                t.timestamps null: false
         
     | 
| 
       7 
7 
     | 
    
         
             
              end
         
     | 
| 
       8 
8 
     | 
    
         | 
| 
       9 
     | 
    
         
            -
              create_table :repository_resources, : 
     | 
| 
      
 9 
     | 
    
         
            +
              create_table :repository_resources, force: true do |t|
         
     | 
| 
       10 
10 
     | 
    
         
             
                t.string :name
         
     | 
| 
       11 
11 
     | 
    
         
             
                t.string :full_name
         
     | 
| 
       12 
12 
     | 
    
         
             
                t.timestamps null: false
         
     | 
| 
       13 
13 
     | 
    
         
             
              end
         
     | 
| 
       14 
14 
     | 
    
         | 
| 
       15 
     | 
    
         
            -
              create_table :repository_actions, : 
     | 
| 
      
 15 
     | 
    
         
            +
              create_table :repository_actions, force: true do |t|
         
     | 
| 
       16 
16 
     | 
    
         
             
                t.string :name
         
     | 
| 
       17 
17 
     | 
    
         
             
                t.references :repository_resource, index: true
         
     | 
| 
       18 
18 
     | 
    
         
             
                t.timestamps null: false
         
     | 
| 
         @@ -20,42 +20,41 @@ ActiveRecord::Schema.define do 
     | 
|
| 
       20 
20 
     | 
    
         | 
| 
       21 
21 
     | 
    
         
             
              add_foreign_key :repository_actions, :repository_resources
         
     | 
| 
       22 
22 
     | 
    
         | 
| 
       23 
     | 
    
         
            -
              create_table :repository_roles, : 
     | 
| 
      
 23 
     | 
    
         
            +
              create_table :repository_roles, force: true do |t|
         
     | 
| 
       24 
24 
     | 
    
         
             
                t.string :name
         
     | 
| 
       25 
25 
     | 
    
         
             
                t.string :description
         
     | 
| 
       26 
26 
     | 
    
         
             
                t.boolean :removed, default: false
         
     | 
| 
       27 
27 
     | 
    
         
             
                t.timestamps null: false
         
     | 
| 
       28 
28 
     | 
    
         
             
              end
         
     | 
| 
       29 
29 
     | 
    
         | 
| 
       30 
     | 
    
         
            -
              create_join_table :repository_actions, :repository_roles, : 
     | 
| 
      
 30 
     | 
    
         
            +
              create_join_table :repository_actions, :repository_roles, force: true do |t|
         
     | 
| 
       31 
31 
     | 
    
         
             
                t.index :repository_action_id, name: 'action_role_id'
         
     | 
| 
       32 
32 
     | 
    
         
             
                t.index :repository_role_id, name: 'role_action_id'
         
     | 
| 
       33 
33 
     | 
    
         
             
              end
         
     | 
| 
       34 
34 
     | 
    
         | 
| 
       35 
     | 
    
         
            -
              create_table :repository_profiles, : 
     | 
| 
      
 35 
     | 
    
         
            +
              create_table :repository_profiles, force: true do |t|
         
     | 
| 
       36 
36 
     | 
    
         
             
                t.string :name
         
     | 
| 
       37 
37 
     | 
    
         
             
                t.string :description
         
     | 
| 
       38 
38 
     | 
    
         
             
                t.boolean :removed, default: false
         
     | 
| 
       39 
39 
     | 
    
         
             
                t.timestamps null: false
         
     | 
| 
       40 
40 
     | 
    
         
             
              end
         
     | 
| 
       41 
41 
     | 
    
         | 
| 
       42 
     | 
    
         
            -
              create_join_table :repository_roles, :repository_profiles, : 
     | 
| 
      
 42 
     | 
    
         
            +
              create_join_table :repository_roles, :repository_profiles, force: true do |t|
         
     | 
| 
       43 
43 
     | 
    
         
             
                t.index :repository_role_id, name: 'role_profile_id'
         
     | 
| 
       44 
44 
     | 
    
         
             
                t.index :repository_profile_id, name: 'profile_role_ids'
         
     | 
| 
       45 
45 
     | 
    
         
             
              end
         
     | 
| 
       46 
46 
     | 
    
         | 
| 
       47 
     | 
    
         
            -
              create_table :users, : 
     | 
| 
      
 47 
     | 
    
         
            +
              create_table :users, force: true do |t|
         
     | 
| 
       48 
48 
     | 
    
         
             
                t.string :name
         
     | 
| 
       49 
49 
     | 
    
         
             
                t.string :email
         
     | 
| 
       50 
50 
     | 
    
         
             
                t.timestamps null: false
         
     | 
| 
       51 
51 
     | 
    
         
             
              end
         
     | 
| 
       52 
52 
     | 
    
         | 
| 
       53 
     | 
    
         
            -
              create_join_table :repository_profiles, :users, : 
     | 
| 
      
 53 
     | 
    
         
            +
              create_join_table :repository_profiles, :users, force: true do |t|
         
     | 
| 
       54 
54 
     | 
    
         
             
                t.index :repository_profile_id, name: 'profile_user_id'
         
     | 
| 
       55 
55 
     | 
    
         
             
                t.index :user_id, name: 'user_profile_id'
         
     | 
| 
       56 
56 
     | 
    
         
             
              end
         
     | 
| 
       57 
57 
     | 
    
         | 
| 
       58 
58 
     | 
    
         
             
              add_column :repository_profiles, :entity_id, :integer, default: nil
         
     | 
| 
       59 
59 
     | 
    
         
             
              add_column :repository_profiles, :entity_class, :string, default: nil
         
     | 
| 
       60 
     | 
    
         
            -
             
     | 
| 
       61 
60 
     | 
    
         
             
            end
         
     |