openopus-core-people 1.1.1 → 1.1.2

Sign up to get free protection for your applications and to get access to all the features.
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