fastapi 0.1.11 → 0.1.12

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