monkeylearn 3.1.0 → 3.2.0

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: 2ff330b7689bdc6da28cc2bf6107c5c27bbfe935
4
- data.tar.gz: 2fce10b6d2503a8298c104a379e8a18a3dbc66dd
3
+ metadata.gz: 50b2d5b17e20cfa4c508355318a6cf08dcf2f3e0
4
+ data.tar.gz: 310360fa275dea689d86a46b8ddb1f88f4fdc9dc
5
5
  SHA512:
6
- metadata.gz: cb4645c0ea5f9b4b9941cd17e748602bbea322885b337150f4a69276db11119cd171d90279c47fdfaea21e117eb7c78f68cc67df412420a4b82f26d8be2cc6cc
7
- data.tar.gz: 0a261f78ff5283281317face0d28a905c5d5bdd7f74f51bcb828ebf253c091c41eec3a4bebcd212bea422d2083c3c6cf0aa931ac65e96d479ea5afce33672d69
6
+ metadata.gz: 4dc4c7abf0d7d07315af6586d963f65c551f2c26eb9c6e101c4dfad2f5bd004517cee94fc5761ef014f3eaa6a7ce766b6f14d26e23e778230cff561d4ce4b2fe
7
+ data.tar.gz: 6783eb1b622f2b4ad8e4f32b767519e7443d6bc69d19701a8bb045438193c700a96fe377ddb93e95c6df5441b84958fbbf989d9d60ca56b35a271854ad732f37
data/README.md CHANGED
@@ -353,7 +353,7 @@ Monkeylearn.classifiers.delete('[MODEL_ID]')
353
353
 
354
354
 
355
355
  ```ruby
356
- Monkeylearn.classifiers.list(page: 1, per_page: 20)
356
+ Monkeylearn.classifiers.list(page: 1, per_page: 20, order_by: '-created')
357
357
  ```
358
358
 
359
359
  Optional parameters:
@@ -362,11 +362,12 @@ Optional parameters:
362
362
  |--------------------|-------------------|-------------------|-------------|
363
363
  |*page* |`Integer` | `1` | Specifies which page to get.|
364
364
  |*per_page* |`Integer` | `20` | Specifies how many items per page will be returned. |
365
+ |*order_by* |`String or Array` |`'-created'` | Specifies the ordering criteria. It must be a `String` with a valid field name, if you want inverse/descending order of the field prepend a `-` (dash) character. If you want to specify more than one field send an array of such `Strings`. Some valid examples: `is_public`, `'-name'` or `['-is_public', 'name']`. |
365
366
 
366
367
  Example:
367
368
 
368
369
  ```ruby
369
- response = Monkeylearn.classifiers.list(page: 1, per_page: 5)
370
+ response = Monkeylearn.classifiers.list(page: 1, per_page: 5, order_by: '-name')
370
371
  ```
371
372
 
372
373
  <br>
@@ -626,9 +627,10 @@ Parameters:
626
627
  |--------------------|-------------------|-------------------|-------------|
627
628
  |*page* |`Integer` | `1` | Specifies which page to get.|
628
629
  |*per_page* |`Integer` | `20` | Specifies how many items per page will be returned. |
630
+ |*order_by* |`String or Array` |`'-created'` | Specifies the ordering criteria. It must be a `String` with a valid field name, if you want inverse/descending order of the field prepend a `-` (dash) character. If you want to specify more than one field send an array of such `Strings`. Some valid examples: `is_public`, `'-name'` or `['-is_public', 'name']`. |
629
631
 
630
632
  Example:
631
633
 
632
634
  ```ruby
633
- response = Monkeylearn.extractors.list(page: 1)
635
+ response = Monkeylearn.extractors.list(page: 1, order_by: '-name')
634
636
  ```
@@ -1,4 +1,5 @@
1
1
  require 'monkeylearn/requests'
2
+ require 'monkeylearn/param_validation'
2
3
 
3
4
  module Monkeylearn
4
5
  class << self
@@ -54,7 +55,15 @@ module Monkeylearn
54
55
  end
55
56
 
56
57
  def list(options = {})
57
- request(:get, build_endpoint, nil, options)
58
+ if options.key?(:order_by)
59
+ options[:order_by] = validate_order_by_param(options[:order_by])
60
+ end
61
+ query_params = {
62
+ page: options[:page],
63
+ per_page: options[:per_page],
64
+ order_by: options[:order_by]
65
+ }.delete_if { |k,v| v.nil? }
66
+ request(:get, build_endpoint, nil, query_params)
58
67
  end
59
68
 
60
69
  def create(name, options = {})
@@ -1,4 +1,5 @@
1
1
  require 'monkeylearn/requests'
2
+ require 'monkeylearn/param_validation'
2
3
 
3
4
  module Monkeylearn
4
5
  class << self
@@ -50,7 +51,15 @@ module Monkeylearn
50
51
  end
51
52
 
52
53
  def list(options = {})
53
- request(:get, build_endpoint, nil, options)
54
+ if options.key?(:order_by)
55
+ options[:order_by] = validate_order_by_param(options[:order_by])
56
+ end
57
+ query_params = {
58
+ page: options[:page],
59
+ per_page: options[:per_page],
60
+ order_by: options[:order_by]
61
+ }.delete_if { |k,v| v.nil? }
62
+ request(:get, build_endpoint, nil, query_params)
54
63
  end
55
64
 
56
65
  def detail(module_id)
@@ -0,0 +1,37 @@
1
+ def validate_order_by_param(order_by_param)
2
+ def validate_order_by_param_field(field_string)
3
+ if field_string .include? ','
4
+ raise MonkeylearnError, "Invalid ',' (comma) character found in 'order_by' fieldname '#{field_string}', try sending a list of strings if you need to specify multiple fields"
5
+ elsif field_string !~ /^-?[a-z_]+$/
6
+ raise MonkeylearnError, "Invalid characters found in 'order_by fieldname '#{field_string}'"
7
+ end
8
+ field_string
9
+ end
10
+
11
+ order_by = []
12
+ if order_by_param.is_a? String
13
+ order_by.push(validate_order_by_param_field(order_by_param))
14
+ elsif order_by_param.respond_to? 'each'
15
+ if order_by_param.length < 1
16
+ raise MonkeylearnError, "'order_by' parameter must be a non empty list of strings, an empty list was found"
17
+ end
18
+ seen_fields = {}
19
+ order_by_param.each do |order_by_field|
20
+ field_name = order_by_field
21
+ if field_name[0] == '-'
22
+ field_name = field_name[1..-1]
23
+ end
24
+ if seen_fields.key? field_name
25
+ raise MonkeylearnError, "'order_by' parameter must be a list unique field names, duplicated fields where found: '#{field_name}'."
26
+ end
27
+ seen_fields[field_name] = true
28
+
29
+ order_by.push(validate_order_by_param_field(order_by_field))
30
+ end
31
+ order_by
32
+ else
33
+ raise MonkeylearnError, "'order_by' param must be a string or a list of strings"
34
+ end
35
+
36
+ return order_by.join(',')
37
+ end
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
10
10
  spec.email = ['hello@monkeylearn.com']
11
11
  spec.homepage = 'https://github.com/monkeylearn/monkeylearn-ruby'
12
12
 
13
- spec.version = '3.1.0'
13
+ spec.version = '3.2.0'
14
14
 
15
15
  spec.add_dependency 'faraday', '>= 0.9.2', '<= 0.15.0'
16
16
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: monkeylearn
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.0
4
+ version: 3.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Monkeylearn
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-07-27 00:00:00.000000000 Z
11
+ date: 2018-07-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -44,6 +44,7 @@ files:
44
44
  - lib/monkeylearn/defaults.rb
45
45
  - lib/monkeylearn/exceptions.rb
46
46
  - lib/monkeylearn/extractors.rb
47
+ - lib/monkeylearn/param_validation.rb
47
48
  - lib/monkeylearn/requests.rb
48
49
  - lib/monkeylearn/response.rb
49
50
  - monkeylearn.gemspec