openopus-core-people 1.1.1 → 1.1.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 44368a166f11f7362f786285cb70c6ec83c75018b3ea1b81c3c81dc2e17d1a17
4
- data.tar.gz: 427ca23fabbcf709d3a16cff2a65af7ad68edbc099370320329f824eb69b54b9
3
+ metadata.gz: 0a32e45900d99949c6820082a510cdd0f5ee3204a1fc6f6afc61f780a4ed258f
4
+ data.tar.gz: 9be748d9522502f97c8974b429d51e298333661f1cb570a6ffeb1d221957e1e7
5
5
  SHA512:
6
- metadata.gz: 9c39bc6ee24bb7f41f9c9366f537d3fd809d981dffe43f831b0a6df0c67889dbd8fe5fc201ba55a5aa2e8e690099a076ce20719297f045cf3183af3e3b35eb36
7
- data.tar.gz: fdeafcfaa6b820b4b37969c512c7661ed409131dbc07b811c2e77da53ab075d6939a59ef2a778b33915a8456ff30d6e626d5c53fa7746a61b0f1cb1ab2615008
6
+ metadata.gz: 57cbc96b213c460c368b091990c521a668693c8ad5969584ee5ac64d5a724676e44f117f8c079cc598ce466b3c0493490b24a8a4dcf1453813a8573969bf09cc
7
+ data.tar.gz: a6a59f15c705d43d29635dbaa00b8795d7383b4807a506d07b7ed048f57d613d49f15167daacab5ebf654d94ba4707592e0f6a7899d8971680fdd5dc01bff485
data/README.md CHANGED
@@ -17,7 +17,7 @@ Install the gem, run migrations. This will create human structures, from Organi
17
17
  Add this line to your application's Gemfile:
18
18
 
19
19
  ```ruby
20
- gem 'openopus-core-people', git: "https://github.com/opuslogica/openopus-core-people"
20
+ gem 'openopus-core-people', git: "https://github.com/openopus/openopus-core-people"
21
21
  ```
22
22
 
23
23
  And then execute:
data/Rakefile CHANGED
@@ -15,12 +15,11 @@ RDoc::Task.new(:rdoc) do |rdoc|
15
15
  end
16
16
 
17
17
  APP_RAKEFILE = File.expand_path("test/dummy/Rakefile", __dir__)
18
- load 'rails/tasks/engine.rake'
19
-
18
+ # load 'rails/tasks/engine.rake'
20
19
  load 'rails/tasks/statistics.rake'
20
+ load 'lib/tasks/openopus/core/people/tasks.rake'
21
21
 
22
22
  require 'bundler/gem_tasks'
23
-
24
23
  require 'rake/testtask'
25
24
 
26
25
  Rake::TestTask.new(:test) do |t|
data/app/models/person.rb CHANGED
@@ -122,7 +122,7 @@ class Person < ApplicationRecord
122
122
  components = []
123
123
 
124
124
  if prefix.present?
125
- if not prefix.include?(".")
125
+ if not prefix.include?(".") and not prefix =~ /^miss$/i
126
126
  components << "#{prefix}."
127
127
  else
128
128
  components << prefix
@@ -231,8 +231,8 @@ class Person < ApplicationRecord
231
231
 
232
232
  def add_address(address_line, label="Home")
233
233
  if self != self.class.find_by_address(address_line)
234
- a = Address.parse(address_line);
235
- a.addressable_type = self.class.name;
234
+ a = Address.parse(address_line)
235
+ a.addressable_type = self.class.name
236
236
  a.label = Label.get(label)
237
237
  a.save
238
238
  addresses << a
@@ -240,5 +240,10 @@ class Person < ApplicationRecord
240
240
  a = Address.find_by_address(address_line)
241
241
  end
242
242
 
243
-
243
+ def as_api_json(options={})
244
+ candidate = self.as_json(options)
245
+ candidate[:emails] = self.emails.collect {|e| { label: e.label, address: e.address }}
246
+ candidate[:addresses] = self.addresses.collect {|a| { label: a.label, address: a.address }}
247
+ candidate
248
+ end
244
249
  end
data/app/models/user.rb CHANGED
@@ -3,17 +3,10 @@ class User < ApplicationRecord
3
3
  accepts_nested_attributes_for :person
4
4
  has_and_belongs_to_many :organizations
5
5
 
6
- delegate :name, :name=, to: :person
7
- delegate :fname, :fname=, to: :person
8
- delegate :lname, :lname, to: :person
9
- delegate :minitial, :minitial, to: :person
10
- delegate :prefix, :prefix, to: :person
11
- delegate :suffix, :suffix, to: :person
12
- delegate :emails, :emails=, :email, :email=, to: :person
13
- delegate :phones, :phones=, :phone, :phone=, to: :person
14
- delegate :addresses, :addresses=, :address, :address=, to: :person
15
- delegate :birthdate, :birthdate=, to: :person
16
- delegate :age, :age=, to: :person
6
+ NAME_DELEGATES = [:name,:fname,:lname,:minitial,:prefix,:suffix,:emails,:phones,:addresses,:birthdate,:age] +
7
+ [:name=,:fname=,:lname=,:minitial=,:prefix=,:suffix=,:emails=,:phones=,:addresses=,:birthdate=,:age=]
8
+
9
+ delegate(*NAME_DELEGATES, to: :person)
17
10
 
18
11
  def self.lookup(item)
19
12
  person = Person.lookup(item)
@@ -27,4 +20,12 @@ class User < ApplicationRecord
27
20
  def organization
28
21
  self.organizations.order(created_at: :desc).first
29
22
  end
23
+
24
+ def assign_attributes(attr)
25
+ if not attr.keys.to_set.intersection(NAME_DELEGATES).empty?
26
+ self.person = Person.new
27
+ end
28
+ super(attr)
29
+ end
30
+
30
31
  end
@@ -2,7 +2,6 @@ module Openopus
2
2
  module Core
3
3
  module People
4
4
  class Engine < ::Rails::Engine
5
- isolate_namespace People
6
5
  initializer :append_migrations do |app|
7
6
  unless app.root.to_s.match(root.to_s)
8
7
  config.paths["db/migrate"].expanded.each do |expanded_path|
@@ -1,7 +1,7 @@
1
1
  module Openopus
2
2
  module Core
3
3
  module People
4
- VERSION = '1.1.1'
4
+ VERSION = '1.1.2'
5
5
  end
6
6
  end
7
7
  end
@@ -0,0 +1,44 @@
1
+ namespace :openopus do
2
+ namespace :core do
3
+ namespace :people do
4
+ desc "Generate one or many random people in your database. Requires 'gem rest-client'. Only for testing!"
5
+ task :generate_people, [:count] => :environment do |task, args|
6
+ def generate_person
7
+ json = ActiveSupport::HashWithIndifferentAccess.new(JSON(RestClient::Request.execute(method: :get, url: 'https://randomuser.me/api?format=json&nat=US').body))
8
+ jp = json[:results][0]
9
+ l = jp[:location]
10
+ a = Address.new
11
+ a.line1 = l[:street].titleize; a.city = l[:city].titleize; a.state = l[:state].titleize;
12
+ a.postal = l[:postcode].to_s.upcase; a.country = "US"
13
+ name = jp[:name]
14
+ p = Person.create(name: "#{name[:title]} #{name[:first]} #{name[:last]}".titleize,
15
+ phone: jp[:phone], address: a, email: jp[:email],
16
+ birthdate: jp[:dob][:date], nationality: jp[:nat])
17
+ p.picture = jp[:picture][:medium] if p.respond_to?("picture=".to_sym)
18
+ p.photo = jp[:picture][:medium] if p.respond_to?("photo=".to_sym)
19
+ p
20
+ end
21
+
22
+ count = args[:count]
23
+ count ||= 1
24
+ count.to_i.times do
25
+ person = generate_person
26
+ puts("openopus made: #{person.name} of #{person.address.oneline}")
27
+ end
28
+ end
29
+
30
+ desc "Generate users from the people in your database that aren't associated with any user. Only for testing!"
31
+ task :generate_users, [:count] => :environment do |task, args|
32
+ def generate_user(person)
33
+ user = User.create(person_id: person.id, status: "generated") if not person.user and not person.email.blank?
34
+ if user and user.respond_to?(:credentials) and user.credentials.blank?
35
+ user.credentials.create(password: "password")
36
+ end
37
+ end
38
+
39
+ Rake::Task["openopus:core:people:generate_people"].invoke(args[:count]) if not args[:count].blank?
40
+ Person.all.each { |person| generate_user(person) }
41
+ end
42
+ end
43
+ end
44
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openopus-core-people
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brian J. Fox
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-07-21 00:00:00.000000000 Z
11
+ date: 2019-09-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -72,11 +72,10 @@ files:
72
72
  - db/migrate/00000000000009_create_join_table_organizations_users.rb
73
73
  - db/seeds.rb
74
74
  - lib/openopus/core/people.rb
75
- - lib/openopus/core/people/#engine.rb#
76
75
  - lib/openopus/core/people/engine.rb
77
76
  - lib/openopus/core/people/version.rb
78
- - lib/tasks/openopus/core/people_tasks.rake
79
- homepage: https://github.com/opuslogica/openopus-core-people
77
+ - lib/tasks/openopus/core/people/tasks.rake
78
+ homepage: https://github.com/openopus/openopus-core-people
80
79
  licenses:
81
80
  - MIT
82
81
  metadata:
@@ -1,16 +0,0 @@
1
- module Openopus
2
- module Core
3
- module People
4
- class Engine < ::Rails::Engine
5
- isolate_namespace People
6
- initializer :append_migrations do |app|
7
- unless app.root.to_s.match(root.to_s)
8
- config.paths["db/migrate"].expanded.each do |expanded_path|
9
- app.config.paths["db/migrate"] << expanded_path
10
- end
11
- end
12
- end
13
- end
14
- end
15
- end
16
- end
@@ -1,4 +0,0 @@
1
- # desc "Explaining what the task does"
2
- # task :openopus_core_people do
3
- # # Task goes here
4
- # end