monkeylearn 3.1.0 → 3.2.0

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 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