fastapi 0.1.24 → 0.1.25
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/lib/fastapi.rb +53 -55
- metadata +104 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a6257aad18a7f5ccf31fd70bcb267a3976b83518
|
4
|
+
data.tar.gz: 81a7955417c82b41deafc611138a1fe606d20d4f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: db70059eb226331aa57f6964612d7fde14e64b47671950882c2408ec1c0730740fa7fc60540f832ec713a449547727446fc715d32662bfc98f895b3f1f09681c
|
7
|
+
data.tar.gz: d0a9bfffd1eed2b65288bcaad6eb01331e573df1932923e75d0b9d6d679c19b70ce5a065f852291c50b1fce4132259bab8e488a3aa921802ed635f54421a22d8
|
data/lib/fastapi.rb
CHANGED
@@ -492,6 +492,8 @@ class FastAPI
|
|
492
492
|
elsif c == ','
|
493
493
|
|
494
494
|
i = i + 1
|
495
|
+
cur_row[fields[entry_index]] = nil
|
496
|
+
entry_index = entry_index + 1
|
495
497
|
|
496
498
|
else
|
497
499
|
|
@@ -802,85 +804,81 @@ class FastAPI
|
|
802
804
|
|
803
805
|
end
|
804
806
|
|
805
|
-
if model.nil?
|
806
|
-
|
807
|
-
if self_obj.reflect_on_all_associations(:has_many).map(&:name).include? key
|
807
|
+
if model.nil? and (self_obj.reflect_on_all_associations(:has_many).map(&:name).include? key)
|
808
808
|
|
809
|
-
|
810
|
-
|
811
|
-
|
812
|
-
|
809
|
+
filter_result = parse_filters(value, safe, field.singularize.classify.constantize)
|
810
|
+
# puts filter_result
|
811
|
+
filter_has_many[key] = filter_result[:main]
|
812
|
+
order_has_many[key] = filter_result[:main_order]
|
813
813
|
|
814
|
-
|
815
|
-
|
814
|
+
elsif model.nil? and (self_obj.reflect_on_all_associations(:belongs_to).map(&:name).include? key or
|
815
|
+
self_obj.reflect_on_all_associations(:has_one).map(&:name).include? key)
|
816
816
|
|
817
|
-
|
818
|
-
|
819
|
-
|
820
|
-
|
817
|
+
filter_result = parse_filters(value, safe, field.singularize.classify.constantize)
|
818
|
+
# puts filter_result
|
819
|
+
filter_belongs_to[key] = filter_result[:main]
|
820
|
+
order_belongs_to[key] = filter_result[:main_order]
|
821
821
|
|
822
|
-
|
822
|
+
elsif self_obj.column_names.include? field
|
823
823
|
|
824
|
-
|
825
|
-
|
826
|
-
|
824
|
+
base_field = self_string_table + '.' + field
|
825
|
+
field_string = base_field
|
826
|
+
is_array = false
|
827
827
|
|
828
|
-
|
828
|
+
if self_obj.columns_hash[field].respond_to?('array') and self_obj.columns_hash[field].array == true
|
829
829
|
|
830
|
-
|
831
|
-
|
832
|
-
|
833
|
-
end
|
830
|
+
field_string = 'ANY(' + field_string + ')'
|
831
|
+
is_array = true
|
834
832
|
|
835
|
-
|
833
|
+
end
|
836
834
|
|
837
|
-
|
835
|
+
if self_obj.columns_hash[field].type == :boolean
|
838
836
|
|
839
|
-
|
840
|
-
't' => true,
|
841
|
-
'f' => false,
|
842
|
-
'true' => true,
|
843
|
-
'false' => false
|
844
|
-
}
|
837
|
+
if !!value != value
|
845
838
|
|
846
|
-
|
839
|
+
bool_lookup = {
|
840
|
+
't' => true,
|
841
|
+
'f' => false,
|
842
|
+
'true' => true,
|
843
|
+
'false' => false
|
844
|
+
}
|
847
845
|
|
848
|
-
|
849
|
-
value = bool_lookup[value]
|
850
|
-
else
|
851
|
-
value = true
|
852
|
-
end
|
846
|
+
value = value.to_s.downcase
|
853
847
|
|
848
|
+
if bool_lookup.has_key? value
|
849
|
+
value = bool_lookup[value]
|
850
|
+
else
|
851
|
+
value = true
|
854
852
|
end
|
855
853
|
|
856
|
-
|
857
|
-
|
858
|
-
if comparator == 'is'
|
859
|
-
filter_array << value.to_s.upcase + ' = ' + field_string
|
860
|
-
elsif comparator == 'not'
|
861
|
-
filter_array << 'NOT ' + value.to_s.upcase + ' = ' + field_string
|
862
|
-
end
|
863
|
-
|
864
|
-
end
|
854
|
+
end
|
865
855
|
|
866
|
-
|
856
|
+
if !!value == value
|
867
857
|
|
868
858
|
if comparator == 'is'
|
869
|
-
filter_array << '
|
859
|
+
filter_array << value.to_s.upcase + ' = ' + field_string
|
870
860
|
elsif comparator == 'not'
|
871
|
-
filter_array << 'NOT
|
861
|
+
filter_array << 'NOT ' + value.to_s.upcase + ' = ' + field_string
|
872
862
|
end
|
873
863
|
|
874
|
-
|
864
|
+
end
|
875
865
|
|
876
|
-
|
877
|
-
filter_array << ActiveRecord::Base.connection.quote(value.last.to_s) + ' >= ' + field_string
|
866
|
+
elsif value == nil and comparator != 'is_null' and comparator != 'not_null'
|
878
867
|
|
879
|
-
|
868
|
+
if comparator == 'is'
|
869
|
+
filter_array << 'NULL = ' + field_string
|
870
|
+
elsif comparator == 'not'
|
871
|
+
filter_array << 'NOT NULL = ' + field_string
|
872
|
+
end
|
880
873
|
|
881
|
-
|
874
|
+
elsif value.is_a? Range and comparator == 'is'
|
882
875
|
|
883
|
-
|
876
|
+
filter_array << ActiveRecord::Base.connection.quote(value.first.to_s) + ' <= ' + field_string
|
877
|
+
filter_array << ActiveRecord::Base.connection.quote(value.last.to_s) + ' >= ' + field_string
|
878
|
+
|
879
|
+
else
|
880
|
+
|
881
|
+
filter_array << api_comparison(comparator, value, base_field, self_obj.columns_hash[field].type, is_array)
|
884
882
|
|
885
883
|
end
|
886
884
|
|
@@ -1032,7 +1030,7 @@ class FastAPI
|
|
1032
1030
|
if not filters[:has_many_order][model_symbol].nil?
|
1033
1031
|
has_many_order = 'ORDER BY ' + filters[:has_many_order][model_symbol]
|
1034
1032
|
end
|
1035
|
-
|
1033
|
+
|
1036
1034
|
end
|
1037
1035
|
|
1038
1036
|
field_list << [
|
metadata
CHANGED
@@ -1,15 +1,44 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fastapi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.25
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Keith Horwood
|
8
|
+
- Trevor Strieber
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date: 2015-
|
12
|
+
date: 2015-04-02 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: activerecord
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - ">="
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: 3.2.0
|
21
|
+
type: :runtime
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - ">="
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: 3.2.0
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: activesupport
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - ">="
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: 3.2.0
|
35
|
+
type: :runtime
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - ">="
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: 3.2.0
|
13
42
|
- !ruby/object:Gem::Dependency
|
14
43
|
name: oj
|
15
44
|
requirement: !ruby/object:Gem::Requirement
|
@@ -25,19 +54,89 @@ dependencies:
|
|
25
54
|
- !ruby/object:Gem::Version
|
26
55
|
version: 2.9.9
|
27
56
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
57
|
+
name: pg
|
29
58
|
requirement: !ruby/object:Gem::Requirement
|
30
59
|
requirements:
|
31
60
|
- - ">="
|
32
61
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
62
|
+
version: 0.18.1
|
34
63
|
type: :runtime
|
35
64
|
prerelease: false
|
36
65
|
version_requirements: !ruby/object:Gem::Requirement
|
37
66
|
requirements:
|
38
67
|
- - ">="
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: 0.18.1
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: rake
|
72
|
+
requirement: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - "~>"
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '10.0'
|
77
|
+
type: :development
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - "~>"
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '10.0'
|
84
|
+
- !ruby/object:Gem::Dependency
|
85
|
+
name: bundler
|
86
|
+
requirement: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - ">="
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: '1.3'
|
91
|
+
type: :development
|
92
|
+
prerelease: false
|
93
|
+
version_requirements: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - ">="
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: '1.3'
|
98
|
+
- !ruby/object:Gem::Dependency
|
99
|
+
name: rspec
|
100
|
+
requirement: !ruby/object:Gem::Requirement
|
101
|
+
requirements:
|
102
|
+
- - "~>"
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: 3.2.0
|
105
|
+
type: :development
|
106
|
+
prerelease: false
|
107
|
+
version_requirements: !ruby/object:Gem::Requirement
|
108
|
+
requirements:
|
109
|
+
- - "~>"
|
39
110
|
- !ruby/object:Gem::Version
|
40
111
|
version: 3.2.0
|
112
|
+
- !ruby/object:Gem::Dependency
|
113
|
+
name: factory_girl
|
114
|
+
requirement: !ruby/object:Gem::Requirement
|
115
|
+
requirements:
|
116
|
+
- - "~>"
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
version: '4.0'
|
119
|
+
type: :development
|
120
|
+
prerelease: false
|
121
|
+
version_requirements: !ruby/object:Gem::Requirement
|
122
|
+
requirements:
|
123
|
+
- - "~>"
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '4.0'
|
126
|
+
- !ruby/object:Gem::Dependency
|
127
|
+
name: database_cleaner
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
129
|
+
requirements:
|
130
|
+
- - "~>"
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
version: 1.4.1
|
133
|
+
type: :development
|
134
|
+
prerelease: false
|
135
|
+
version_requirements: !ruby/object:Gem::Requirement
|
136
|
+
requirements:
|
137
|
+
- - "~>"
|
138
|
+
- !ruby/object:Gem::Version
|
139
|
+
version: 1.4.1
|
41
140
|
description: Easily create robust, standardized API endpoints using lightning-fast
|
42
141
|
database queries
|
43
142
|
email: keithwhor@gmail.com
|
@@ -67,7 +166,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
67
166
|
version: '0'
|
68
167
|
requirements: []
|
69
168
|
rubyforge_project:
|
70
|
-
rubygems_version: 2.
|
169
|
+
rubygems_version: 2.4.6
|
71
170
|
signing_key:
|
72
171
|
specification_version: 4
|
73
172
|
summary: Easily create robust, standardized API endpoints using lightning-fast database
|