arpa 0.1.0 → 0.2.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 +4 -4
- data/CHANGELOG.md +7 -0
- data/arpa.gemspec +3 -3
- data/lib/arpa/data_mappers/profile_mapper.rb +4 -2
- data/lib/arpa/entities/profile.rb +12 -9
- data/lib/arpa/repositories/profiles/finder.rb +8 -0
- data/lib/arpa/version.rb +1 -1
- data/lib/generators/arpa/templates/controllers/profiles_controller.rb +1 -1
- data/lib/generators/arpa/templates/migration.rb +3 -0
- data/lib/generators/arpa/templates/views/profiles/_form.html.erb +10 -0
- data/lib/generators/arpa/templates/views/profiles/index.html.erb +4 -0
- data/lib/generators/arpa/templates/views/profiles/show.html.erb +10 -0
- data/spec/factories/repository_profiles.rb +5 -0
- data/spec/factories/repository_test.rb +5 -0
- data/spec/lib/arpa/repositories/profiles/finder_spec.rb +37 -1
- data/spec/support/schema.rb +3 -0
- metadata +11 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e273592f37ad13daf44a6e0c412ec460ce55d7e9
|
4
|
+
data.tar.gz: eb130f2d9ccb47a7593ffabda100d1751aa479d5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ebfe4e7018c0f15bce6d177f36e9286c996fde7e5895bd5814d1cb28709fe6e79d98a786b567bb7af13a6e110e3c03681d70da4c1a7f0d4dda52221bbeb43a89
|
7
|
+
data.tar.gz: c3091d712f1b4fc02c87b81770be3f5253e79d3bed28dd14059c69876bf835c06ebb5e2a5bb628b87d6dfb6bc6b555264c517ad6b10bd7099b15e78c69484ee5
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
### 0.2.0
|
2
|
+
|
3
|
+
* additions
|
4
|
+
* Add dinamic association for Profiles throuh Entity id and class attriutes;
|
5
|
+
* Add find methods to collect all Profiles without Entity and with specific entity;
|
6
|
+
* Update all views and controllers with the new attriutes for Profile.
|
7
|
+
|
1
8
|
### 0.0.9
|
2
9
|
|
3
10
|
* removals
|
data/arpa.gemspec
CHANGED
@@ -21,10 +21,10 @@ Gem::Specification.new do |spec|
|
|
21
21
|
spec.add_development_dependency 'bundler', '~> 1.7'
|
22
22
|
spec.add_development_dependency 'rake', '~> 10.0'
|
23
23
|
spec.add_development_dependency 'rspec', '~> 3.3', '>= 3.3.0'
|
24
|
-
spec.add_development_dependency 'factory_girl'
|
24
|
+
spec.add_development_dependency 'factory_girl'
|
25
25
|
spec.add_development_dependency 'sqlite3', '~> 1.3', '>= 1.3.3'
|
26
|
-
spec.add_development_dependency 'database_cleaner'
|
27
|
-
spec.add_development_dependency 'pry'
|
26
|
+
spec.add_development_dependency 'database_cleaner'
|
27
|
+
spec.add_development_dependency 'pry'
|
28
28
|
|
29
29
|
spec.add_dependency 'activerecord', '>= 4.2.0'
|
30
30
|
spec.add_dependency 'railties', '>= 4.2.0'
|
@@ -4,10 +4,12 @@ module Arpa
|
|
4
4
|
entity_class 'Arpa::Entities::Profile'
|
5
5
|
repository_class 'Arpa::Repositories::Profiles::RepositoryProfile'
|
6
6
|
|
7
|
-
attrs_to_entity :id, :name, :description, :role_ids, :
|
7
|
+
attrs_to_entity :id, :name, :description, :role_ids, :entity_id, :entity_class,
|
8
|
+
:created_at, :updated_at, :removed,
|
8
9
|
roles: {mapper: 'Arpa::DataMappers::RoleMapper'}
|
9
10
|
|
10
|
-
attrs_to_record :id, :name, :description, :role_ids, :
|
11
|
+
attrs_to_record :id, :name, :description, :role_ids, :entity_id, :entity_class,
|
12
|
+
:created_at, :updated_at, :removed
|
11
13
|
|
12
14
|
end
|
13
15
|
end
|
@@ -2,19 +2,22 @@ module Arpa
|
|
2
2
|
module Entities
|
3
3
|
class Profile
|
4
4
|
|
5
|
-
attr_reader :id, :name, :description, :role_ids, :roles, :
|
5
|
+
attr_reader :id, :name, :description, :role_ids, :roles, :entity_id, :entity_class,
|
6
|
+
:created_at, :updated_at, :removed
|
6
7
|
|
7
8
|
def initialize(attrs = {})
|
8
9
|
attrs = attrs.with_indifferent_access
|
9
10
|
|
10
|
-
@id
|
11
|
-
@name
|
12
|
-
@description
|
13
|
-
@role_ids
|
14
|
-
@roles
|
15
|
-
@
|
16
|
-
@
|
17
|
-
@
|
11
|
+
@id = attrs[:id]
|
12
|
+
@name = attrs[:name]
|
13
|
+
@description = attrs[:description]
|
14
|
+
@role_ids = default_value_to_nil_or_empty(attrs[:role_ids], [])
|
15
|
+
@roles = default_value_to_nil_or_empty(attrs[:roles], [])
|
16
|
+
@entity_id = attrs[:entity_id]
|
17
|
+
@entity_class = attrs[:entity_class]
|
18
|
+
@created_at = attrs[:created_at]
|
19
|
+
@updated_at = attrs[:updated_at]
|
20
|
+
@removed = default_value_to_nil_or_empty(attrs[:removed], false)
|
18
21
|
end
|
19
22
|
|
20
23
|
private
|
@@ -15,6 +15,14 @@ module Arpa
|
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
18
|
+
def all_by_entity(entity_id, entity_class)
|
19
|
+
repository_class
|
20
|
+
.where("( (entity_id is null AND entity_class is null) OR (entity_id = '#{entity_id}' AND entity_class = '#{entity_class}') )" )
|
21
|
+
.collect do |record|
|
22
|
+
mapper_instance.map_to_entity(record)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
18
26
|
def mapper_instance
|
19
27
|
Arpa::DataMappers::ProfileMapper.instance
|
20
28
|
end
|
data/lib/arpa/version.rb
CHANGED
@@ -46,5 +46,8 @@ class CreateArpaTables < ActiveRecord::Migration
|
|
46
46
|
|
47
47
|
add_column <%= ":#{@associate_table}" %>, :is_arpa_admin, :boolean, default: false
|
48
48
|
|
49
|
+
add_column :repository_profiles, :entity_id, :integer, default: nil
|
50
|
+
add_column :repository_profiles, :entity_class, :string, default: nil
|
51
|
+
|
49
52
|
end
|
50
53
|
end
|
@@ -23,6 +23,16 @@
|
|
23
23
|
<%= f.text_field :description %>
|
24
24
|
</div>
|
25
25
|
|
26
|
+
<div class="field">
|
27
|
+
<%= f.label :entity_id %><br>
|
28
|
+
<%= f.text_field :entity_id %>
|
29
|
+
</div>
|
30
|
+
|
31
|
+
<div class="field">
|
32
|
+
<%= f.label :entity_class %><br>
|
33
|
+
<%= f.text_field :entity_class %>
|
34
|
+
</div>
|
35
|
+
|
26
36
|
<div class="field">
|
27
37
|
|
28
38
|
<% @roles.each do |role| %>
|
@@ -7,6 +7,8 @@
|
|
7
7
|
<tr>
|
8
8
|
<th>Name</th>
|
9
9
|
<th>Description</th>
|
10
|
+
<th>Entity ID</th>
|
11
|
+
<th>Entity Class</th>
|
10
12
|
<th colspan="3"></th>
|
11
13
|
</tr>
|
12
14
|
</thead>
|
@@ -16,6 +18,8 @@
|
|
16
18
|
<tr>
|
17
19
|
<td><%= profile.name %></td>
|
18
20
|
<td><%= profile.description %></td>
|
21
|
+
<td><%= profile.entity_id %></td>
|
22
|
+
<td><%= profile.entity_class %></td>
|
19
23
|
<td><%= link_to 'Show', profile_path(profile.id) %></td>
|
20
24
|
<td><%= link_to 'Edit', edit_profile_path(profile.id) %></td>
|
21
25
|
<td><%= link_to 'Destroy', profile_path(profile.id), method: :delete, data: { confirm: 'Are you sure?' } %></td>
|
@@ -10,6 +10,16 @@
|
|
10
10
|
<%= @profile.description %>
|
11
11
|
</p>
|
12
12
|
|
13
|
+
<p>
|
14
|
+
<strong>Entity id:</strong>
|
15
|
+
<%= @profile.entity_id %>
|
16
|
+
</p>
|
17
|
+
|
18
|
+
<p>
|
19
|
+
<strong>Entity class:</strong>
|
20
|
+
<%= @profile.entity_class %>
|
21
|
+
</p>
|
22
|
+
|
13
23
|
<table>
|
14
24
|
<div class="table-header">
|
15
25
|
<div class="text-sm">
|
@@ -7,5 +7,10 @@ FactoryGirl.define do
|
|
7
7
|
trait :with_complete_association do
|
8
8
|
roles { [FactoryGirl.create(:repository_role, :with_complete_association)] }
|
9
9
|
end
|
10
|
+
|
11
|
+
trait :with_entity do
|
12
|
+
entity_id { FactoryGirl.create(:entity) }
|
13
|
+
entity_class { FactoryGirl.create(:entity).class.to_s }
|
14
|
+
end
|
10
15
|
end
|
11
16
|
end
|
@@ -26,7 +26,7 @@ describe Arpa::Repositories::Profiles::Finder, type: :repository, slow: true do
|
|
26
26
|
describe '#all' do
|
27
27
|
let(:result) { subject.all }
|
28
28
|
|
29
|
-
it 'should return
|
29
|
+
it 'should return all' do
|
30
30
|
expect(result.size).to be == 2
|
31
31
|
end
|
32
32
|
|
@@ -40,4 +40,40 @@ describe Arpa::Repositories::Profiles::Finder, type: :repository, slow: true do
|
|
40
40
|
|
41
41
|
end
|
42
42
|
|
43
|
+
describe '#all_by_entity' do
|
44
|
+
|
45
|
+
context 'when have profiles with differents entities' do
|
46
|
+
let(:entity_001) { create :entity }
|
47
|
+
let(:record_003) { create :repository_profile, name: 'profile_03', entity_id: entity_001.id, entity_class: entity_001.class }
|
48
|
+
let(:record_004) { create :repository_profile, :with_entity, name: 'profile_04' }
|
49
|
+
let(:result) { subject.all_by_entity entity_001.id, entity_001.class.to_s }
|
50
|
+
|
51
|
+
before do
|
52
|
+
record_003
|
53
|
+
record_004
|
54
|
+
end
|
55
|
+
|
56
|
+
it 'should return all without entity and with correct entity' do
|
57
|
+
expect(result.size).to be == 3
|
58
|
+
end
|
59
|
+
|
60
|
+
it 'the result without entity should fill with nil value' do
|
61
|
+
first = result.first
|
62
|
+
expect(first.entity_id).to be_nil
|
63
|
+
expect(first.entity_class).to be_nil
|
64
|
+
|
65
|
+
second = result.second
|
66
|
+
expect(second.entity_id).to be_nil
|
67
|
+
expect(second.entity_class).to be_nil
|
68
|
+
end
|
69
|
+
|
70
|
+
it 'the result with entity should be filled correct values' do
|
71
|
+
third = result.third
|
72
|
+
expect(third.entity_id).to be == entity_001.id
|
73
|
+
expect(third.entity_class).to eql entity_001.class.to_s
|
74
|
+
end
|
75
|
+
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
43
79
|
end
|
data/spec/support/schema.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: arpa
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rachid Calazans
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-05-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -62,14 +62,14 @@ dependencies:
|
|
62
62
|
name: factory_girl
|
63
63
|
requirement: !ruby/object:Gem::Requirement
|
64
64
|
requirements:
|
65
|
-
- - "
|
65
|
+
- - ">="
|
66
66
|
- !ruby/object:Gem::Version
|
67
67
|
version: '0'
|
68
68
|
type: :development
|
69
69
|
prerelease: false
|
70
70
|
version_requirements: !ruby/object:Gem::Requirement
|
71
71
|
requirements:
|
72
|
-
- - "
|
72
|
+
- - ">="
|
73
73
|
- !ruby/object:Gem::Version
|
74
74
|
version: '0'
|
75
75
|
- !ruby/object:Gem::Dependency
|
@@ -96,28 +96,28 @@ dependencies:
|
|
96
96
|
name: database_cleaner
|
97
97
|
requirement: !ruby/object:Gem::Requirement
|
98
98
|
requirements:
|
99
|
-
- - "
|
99
|
+
- - ">="
|
100
100
|
- !ruby/object:Gem::Version
|
101
101
|
version: '0'
|
102
102
|
type: :development
|
103
103
|
prerelease: false
|
104
104
|
version_requirements: !ruby/object:Gem::Requirement
|
105
105
|
requirements:
|
106
|
-
- - "
|
106
|
+
- - ">="
|
107
107
|
- !ruby/object:Gem::Version
|
108
108
|
version: '0'
|
109
109
|
- !ruby/object:Gem::Dependency
|
110
110
|
name: pry
|
111
111
|
requirement: !ruby/object:Gem::Requirement
|
112
112
|
requirements:
|
113
|
-
- - "
|
113
|
+
- - ">="
|
114
114
|
- !ruby/object:Gem::Version
|
115
115
|
version: '0'
|
116
116
|
type: :development
|
117
117
|
prerelease: false
|
118
118
|
version_requirements: !ruby/object:Gem::Requirement
|
119
119
|
requirements:
|
120
|
-
- - "
|
120
|
+
- - ">="
|
121
121
|
- !ruby/object:Gem::Version
|
122
122
|
version: '0'
|
123
123
|
- !ruby/object:Gem::Dependency
|
@@ -244,6 +244,7 @@ files:
|
|
244
244
|
- spec/factories/repository_profiles.rb
|
245
245
|
- spec/factories/repository_resources.rb
|
246
246
|
- spec/factories/repository_roles.rb
|
247
|
+
- spec/factories/repository_test.rb
|
247
248
|
- spec/lib/arpa/additions/resource_spec.rb
|
248
249
|
- spec/lib/arpa/data_mappers/action_mapper_spec.rb
|
249
250
|
- spec/lib/arpa/data_mappers/base_spec.rb
|
@@ -314,7 +315,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
314
315
|
version: '0'
|
315
316
|
requirements: []
|
316
317
|
rubyforge_project:
|
317
|
-
rubygems_version: 2.
|
318
|
+
rubygems_version: 2.6.11
|
318
319
|
signing_key:
|
319
320
|
specification_version: 4
|
320
321
|
summary: Authorization Gem for Ruby and Ruby on Rails projects
|
@@ -323,6 +324,7 @@ test_files:
|
|
323
324
|
- spec/factories/repository_profiles.rb
|
324
325
|
- spec/factories/repository_resources.rb
|
325
326
|
- spec/factories/repository_roles.rb
|
327
|
+
- spec/factories/repository_test.rb
|
326
328
|
- spec/lib/arpa/additions/resource_spec.rb
|
327
329
|
- spec/lib/arpa/data_mappers/action_mapper_spec.rb
|
328
330
|
- spec/lib/arpa/data_mappers/base_spec.rb
|