fastapi 0.1.11 → 0.1.12

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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/fastapi.rb +30 -9
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f2525e75aa5c0031710eb855e7b88fbec58da54c
4
- data.tar.gz: edf91151449d92f84958abeddc80b7740d0dfebe
3
+ metadata.gz: 47b2122fceeb82a91d839618ae3bdb58b4308b71
4
+ data.tar.gz: 4882d978213c4e47f095d0cc1d32d82582eb5626
5
5
  SHA512:
6
- metadata.gz: 1db9ce7a1ed042dbac5af7c06573c0db33deae42bf23044840ee0e6b59608a6f2e813743272781357774a75b1d40b46937a4c0276e20b12e5a626ba79f145d0c
7
- data.tar.gz: 3a9bbd61b101d92836d8a5aa9718821aa38d90f7eb29ca8fd542bc3eb367d3f953ccec697b55a7daa4517dffa81dbd4dc5dca4bb2b0e359780aea834b5095452
6
+ metadata.gz: 5c631a6dbdc6f193e665712fb6ebf98fe3692a767d9c388d75397a19e733ab146731fb919f4d3ce5a67c73011bb82b3275051a485c67a1071f7a62b525415f25
7
+ data.tar.gz: f3ed523229b323df69b8d33a563d3ab6adc9d8e1018c9ec1ee3e795598fd81f93d93d864b8fa4ac97a55ac2e23e7516ffd33aaec2fb88e9811b82e573546a496
@@ -689,10 +689,26 @@ class FastAPI
689
689
  model_lookup = {}
690
690
 
691
691
  @model.fastapi_fields.each do |field|
692
+
692
693
  if @model.reflect_on_all_associations(:belongs_to).map(&:name).include? field
693
- model = field.to_s.classify.constantize
694
- model_lookup[field] = model
695
- belongs << model
694
+
695
+ class_name = @model.reflect_on_association(field).options[:class_name]
696
+
697
+ if class_name.nil?
698
+
699
+ model = field.to_s.classify.constantize
700
+ model_lookup[field] = model
701
+ belongs << {model: model, alias: field}
702
+
703
+ else
704
+
705
+ model = class_name.constantize
706
+ model_lookup[field] = model
707
+
708
+ belongs << {model: model, alias: field}
709
+
710
+ end
711
+
696
712
  elsif @model.reflect_on_all_associations(:has_many).map(&:name).include? field
697
713
  model = field.to_s.singularize.classify.constantize
698
714
  model_lookup[field] = model
@@ -700,6 +716,7 @@ class FastAPI
700
716
  elsif @model.column_names.include? field.to_s
701
717
  fields << field
702
718
  end
719
+
703
720
  end
704
721
 
705
722
  self_string = @model.to_s.tableize.singularize
@@ -725,16 +742,18 @@ class FastAPI
725
742
  end
726
743
 
727
744
  # Belongs fields (1 to 1)
728
- belongs.each do |model|
745
+ belongs.each do |model_data|
729
746
 
730
- model_string_field = model.to_s.tableize.singularize
731
- model_string_table = model.to_s.tableize
747
+ model_string_table = model_data[:model].to_s.tableize
748
+ model_string_table_alias = model_data[:alias].to_s.pluralize
749
+
750
+ model_string_field = model_data[:alias].to_s
732
751
 
733
752
  # fields
734
- model.fastapi_fields_sub.each do |field|
753
+ model_data[:model].fastapi_fields_sub.each do |field|
735
754
  field_string = field.to_s
736
755
  field_list << [
737
- model_string_table,
756
+ model_string_table_alias,
738
757
  '.',
739
758
  field_string,
740
759
  ' as ',
@@ -748,8 +767,10 @@ class FastAPI
748
767
  joins << [
749
768
  'LEFT JOIN',
750
769
  model_string_table,
770
+ 'AS',
771
+ model_string_table_alias,
751
772
  'ON',
752
- model_string_table + '.id',
773
+ model_string_table_alias + '.id',
753
774
  '=',
754
775
  self_string_table + '.' + model_string_field + '_id'
755
776
  ].join(' ')
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastapi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.11
4
+ version: 0.1.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Keith Horwood
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-27 00:00:00.000000000 Z
11
+ date: 2014-11-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: oj