fastapi 0.1.8 → 0.1.9

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
  SHA1:
3
- metadata.gz: 37056922d778444be79f5020161722430529e5e4
4
- data.tar.gz: 033dd3d2f7ea79de5839d6b8c9277ba008ede364
3
+ metadata.gz: 0af071723d04b7cb79104f53f4d800278380524a
4
+ data.tar.gz: 9841776f060fcdfa5f121f6f7cb162c0df45f557
5
5
  SHA512:
6
- metadata.gz: b2a4fc990c58642ea548974913ab5ff81d41f677d0a403f7e2be491d46a784410ae1e071f9a4639185165683f4542611e287667e6db69052e27e568f96a5d54a
7
- data.tar.gz: 366e4b9120db2ffc0edb029a7a7236981ab171f8d178728148a21b7cd219d3f5d64670fc4d5ba16e42d8ffd1ec5cc83a272de262f34dad4a143df42f1e5a6e7f
6
+ metadata.gz: 73a147f323c7ce14b43316cead922a31ff1bd1934c17749646201c71c94493f5ed926ce76571b628890d7d4405701add9d7957d46d7a4f0157a1e456dcfa6454
7
+ data.tar.gz: 2614da3a0b1d1537bc9d67460f42831b27fc1651d2dc25ef1a728d50e6e1c181492dc779a45709c27c81fa6f96f05fbaed7fab898b4aea96027a3225af35d84c
@@ -556,30 +556,38 @@ class FastAPI
556
556
 
557
557
  if key == :__order
558
558
 
559
- order = value.clone()
559
+ if model.nil? and (value.is_a? String or value.is_a? Symbol) and @model.fastapi_custom_order.has_key? value.to_sym
560
560
 
561
- if order.is_a? String
562
- order = order.split(',')
563
- if order.size < 2
564
- order << 'ASC'
565
- end
566
- elsif order.is_a? Array
567
- order = order.map { |v| v.to_s }
568
- while order.size < 2
569
- order << ''
570
- end
571
- else
572
- order = ['', '']
573
- end
561
+ order = @model.fastapi_custom_order[value.to_sym].gsub('self.', self_string_table + '.')
574
562
 
575
- if not self_obj.column_names.include? order[0]
576
- order = nil
577
563
  else
578
- order[0] = self_string_table + '.' + order[0]
579
- if not ['ASC', 'DESC'].include? order[1]
580
- order[1] = 'ASC'
564
+
565
+ order = value.clone()
566
+
567
+ if order.is_a? String
568
+ order = order.split(',')
569
+ if order.size < 2
570
+ order << 'ASC'
571
+ end
572
+ elsif order.is_a? Array
573
+ order = order.map { |v| v.to_s }
574
+ while order.size < 2
575
+ order << ''
576
+ end
577
+ else
578
+ order = ['', '']
581
579
  end
582
- order = order.join(' ')
580
+
581
+ if not self_obj.column_names.include? order[0]
582
+ order = nil
583
+ else
584
+ order[0] = self_string_table + '.' + order[0]
585
+ if not ['ASC', 'DESC'].include? order[1]
586
+ order[1] = 'ASC'
587
+ end
588
+ order = order.join(' ')
589
+ end
590
+
583
591
  end
584
592
 
585
593
  else
@@ -38,6 +38,18 @@ module FastAPIExtension
38
38
  @fastapi_filters = filters
39
39
  end
40
40
 
41
+ # Define custom ORDER BY strings for specific keys
42
+ #
43
+ # @param keys [Hash] a hash containing the keys: strings for order filters
44
+ # @return [Hash] the same keys hash
45
+ def fastapi_define_order(keys)
46
+ @fastapi_custom_order = keys
47
+ end
48
+
49
+ def fastapi_custom_order
50
+ @fastapi_custom_order or {}
51
+ end
52
+
41
53
  def fastapi_fields
42
54
  @fastapi_fields or [:id]
43
55
  end
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.8
4
+ version: 0.1.9
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-07-29 00:00:00.000000000 Z
11
+ date: 2014-07-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: oj