limelm 0.1.0 → 0.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: 4f7bfe43b8147336288dec12ddb8cd5518ebaede
4
- data.tar.gz: ef7e67debc9162ee42338bd63979ae74fd736b6e
3
+ metadata.gz: 600c6d87ca9354de4c78dcc31776e2cc9f0afd01
4
+ data.tar.gz: fed5c40eee968bcfc110383f66fd4c97767b818c
5
5
  SHA512:
6
- metadata.gz: 2abe2f632746d8153cc5f8a26bb60204335f564bba62d77287e1aa55e63331c193f53b6dea5dd63929e3a6f8b8cfb209dab3a8d7d3181a8ace16b67a9f2f0f8a
7
- data.tar.gz: f49186894b96e139e7145231c0ed29903cca69cff37996fc1d8276306df809e1f3d454d571158f26192774f6d4d024826d21599c82b48aa00278b06411d9816c
6
+ metadata.gz: e181348de4d7f910b8de858e363384dcada7775c22e91541c4813ad5c0f900aede21215ebe1f9df6882928942e73fdd494e4af1b705b65292cffb20ff120d35e
7
+ data.tar.gz: a9e453fe128ef39c5cdc378568593a2d7227718938ead006b85e494afe93e2216d589f89bf523ae30c2701dfe711fc2343ef86cf3abf4b50242e7e7cf5b3cd5f
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # limelm
2
2
 
3
- A Ruby API wrapper for the LimeLM API. LimeLM is a powerfull Licence and Online Activation Manager. For more information, see: http://wyday.com/limelm/
3
+ A Ruby API wrapper for the LimeLM API. LimeLM is a powerfull License and Online Activation Manager. For more information, see: http://wyday.com/limelm/
4
4
 
5
5
  Documentation for the LimeLM API can be found here: https://wyday.com/limelm/help/api/
6
6
 
@@ -39,7 +39,6 @@ LimeLm::Key.find('imberdis.damien@gmail.com', version_id: '1')
39
39
  * [manual offline activation of a key](https://wyday.com/limelm/help/api/limelm.pkey.manualActivation/)
40
40
  * [manual offline deactivation of a key](https://wyday.com/limelm/help/api/limelm.pkey.manualDeactivation/)
41
41
  * [trial extension CRUD operation](https://wyday.com/limelm/help/api/)
42
- * [Gets the activity of a product version between a date range](https://wyday.com/limelm/help/api/limelm.pkey.activity/)
43
42
  * [Remove a tag from all product keys](https://wyday.com/limelm/help/api/limelm.tag.delete/)
44
43
 
45
44
  ## Contribute to limelm
@@ -58,10 +57,10 @@ All tests can be run by the command `rake spec`. By default, all the API request
58
57
 
59
58
  As LimeLM not providing yet a demo environment, you will need to use your own product version to implement new functionalities:
60
59
 
61
- * create a conf.yml file under the project root directory that will containes your personal `api_ key` and `version_id`.
62
- * nether share that file via your source control tool.
63
- * write new test (cf. other tests as examples on how to use VCR for mocking the HTTP requests), launch them with the command `rake spec MODE=live`.
64
- * Once VCR generated the fixtures, anonymize them (replace every api_key, version_id, key ids and values by fake data).
60
+ * create a conf.yml file under the project root directory that will contain your personal credentials `api_key` and `version_id`.
61
+ * never share that file via your source control tool.
62
+ * write a new test (cf. other tests as examples on how to use VCR for mocking the HTTP requests), launch them with the command `rake spec MODE=live`.
63
+ * Once VCR generated the fixtures, anonymize all credentials (replace every api_key, version_id, key ids and values by fake data).
65
64
 
66
65
 
67
66
  ## Disclaimer
data/Rakefile CHANGED
@@ -18,7 +18,7 @@ Jeweler::Tasks.new do |gem|
18
18
  gem.homepage = "http://github.com/dam/limelm"
19
19
  gem.license = "MIT"
20
20
  gem.summary = %Q{limelm is a Ruby wrapper for the LimeLM JSON API}
21
- gem.description = %Q{limelm is a Ruby wrapper for the LimeLM JSON API. LimeLM is a powerfull Licence and Online Activation Manager}
21
+ gem.description = %Q{limelm is a Ruby wrapper for the LimeLM JSON API. LimeLM is a powerfull License and Online Activation Manager}
22
22
  gem.email = "imberdis.damien@gmail.com"
23
23
  gem.authors = ["Damien Imberdis"]
24
24
  end
data/TODO.md CHANGED
@@ -3,7 +3,6 @@
3
3
  * [manual offline activation of a key](https://wyday.com/limelm/help/api/limelm.pkey.manualActivation/)
4
4
  * [manual offline deactivation of a key](https://wyday.com/limelm/help/api/limelm.pkey.manualDeactivation/)
5
5
  * [trial extension CRUD operation](https://wyday.com/limelm/help/api/)
6
- * [Gets the activity of a product version between a date range](https://wyday.com/limelm/help/api/limelm.pkey.activity/)
7
6
  * [Remove a tag from all product keys](https://wyday.com/limelm/help/api/limelm.tag.delete/)
8
7
 
9
8
  # Tests
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.2.0
@@ -1,3 +1,5 @@
1
+ require 'date'
2
+
1
3
  module LimeLm
2
4
  class Key
3
5
  attr_reader :id
@@ -32,6 +34,18 @@ module LimeLm
32
34
  response = LimeLm::Connection.post_json({ method: 'limelm.pkey.advancedSearch'}.merge!(params))
33
35
  response['pkeys']['pkey'].map { |k| new(k) }
34
36
  end
37
+
38
+ # Returns by default activity of created product keys only to speed up the query
39
+ # Pass optional activity as parameters. Asking for activity of all the products takes a long process time
40
+ def activity(params={})
41
+ version_id = params.delete(:version_id) { LimeLm.config[:version_id] }
42
+ start = params.delete(:start) { (Date.today - 7).strftime('%Y-%m-%d') }
43
+
44
+ response = LimeLm::Connection.post_json({ method: 'limelm.pkey.activity', version_id: version_id, start: start, created: true}.merge!(params))
45
+ response['pkeys']['pkey']
46
+ rescue LimeLm::ApiError => e
47
+ e.message.include?('109') ? [] : raise(e)
48
+ end
35
49
  end
36
50
 
37
51
  def id(params={})
@@ -2,17 +2,17 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: limelm 0.1.0 ruby lib
5
+ # stub: limelm 0.2.0 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "limelm"
9
- s.version = "0.1.0"
9
+ s.version = "0.2.0"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib"]
13
13
  s.authors = ["Damien Imberdis"]
14
- s.date = "2015-03-04"
15
- s.description = "limelm is a Ruby wrapper for the LimeLM JSON API. LimeLM is a powerfull Licence and Online Activation Manager"
14
+ s.date = "2015-04-14"
15
+ s.description = "limelm is a Ruby wrapper for the LimeLM JSON API. LimeLM is a powerfull License and Online Activation Manager"
16
16
  s.email = "imberdis.damien@gmail.com"
17
17
  s.extra_rdoc_files = [
18
18
  "LICENSE.txt",
@@ -41,6 +41,7 @@ Gem::Specification.new do |s|
41
41
  "spec/fixtures/dish_cassettes/create_key_new_version.yml",
42
42
  "spec/fixtures/dish_cassettes/create_keys_with_email.yml",
43
43
  "spec/fixtures/dish_cassettes/create_product_default_feature.yml",
44
+ "spec/fixtures/dish_cassettes/default_activity.yml",
44
45
  "spec/fixtures/dish_cassettes/default_search.yml",
45
46
  "spec/fixtures/dish_cassettes/default_search_pagination.yml",
46
47
  "spec/fixtures/dish_cassettes/destroy_feature.yml",
@@ -50,6 +51,7 @@ Gem::Specification.new do |s|
50
51
  "spec/fixtures/dish_cassettes/details_for_a_given_key_with_tags.yml",
51
52
  "spec/fixtures/dish_cassettes/find_keys_by_email.yml",
52
53
  "spec/fixtures/dish_cassettes/id_for_a_given_key.yml",
54
+ "spec/fixtures/dish_cassettes/no_activity.yml",
53
55
  "spec/fixtures/dish_cassettes/remove_tag_for_a_given_key.yml",
54
56
  "spec/fixtures/dish_cassettes/revoke_key.yml",
55
57
  "spec/fixtures/dish_cassettes/set_tags_for_a_given_key.yml",
@@ -0,0 +1,48 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://wyday.com/limelm/api/rest?api_key=new_key_from_yaml&created=true&format=json&method=limelm.pkey.activity&start=2015-04-07&version_id=1
6
+ body:
7
+ encoding: UTF-8
8
+ string: ''
9
+ headers:
10
+ Accept-Encoding:
11
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
+ Accept:
13
+ - "*/*"
14
+ User-Agent:
15
+ - Ruby
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Server:
22
+ - nginx
23
+ Date:
24
+ - Tue, 14 Apr 2015 20:04:58 GMT
25
+ Content-Type:
26
+ - application/json
27
+ Transfer-Encoding:
28
+ - chunked
29
+ Connection:
30
+ - keep-alive
31
+ Set-Cookie:
32
+ - PHPSESSID=6kgue1ro9k7pneoqhhgl379r57; path=/
33
+ Expires:
34
+ - Thu, 19 Nov 1981 08:52:00 GMT
35
+ Cache-Control:
36
+ - no-store, no-cache, must-revalidate, post-check=0, pre-check=0
37
+ Pragma:
38
+ - no-cache
39
+ X-Frame-Options:
40
+ - SAMEORIGIN
41
+ body:
42
+ encoding: UTF-8
43
+ string: jsonLimeLMApi({"stat":"ok","pkeys":{"pkey":[{"id":"1","key":"AAAA","acts":"5","acts_used":"0","created":"2015-04-14
44
+ 11:58:05","total_deacts":"0","deac_limit":"unlimited","for_tfs":"false","allow_vm":"no"},{"id":"2","key":"BBBB","acts":"7","acts_used":"0","created":"2015-04-14
45
+ 10:01:43","total_deacts":"0","deac_limit":"unlimited","for_tfs":"false","allow_vm":"no"}]}})
46
+ http_version:
47
+ recorded_at: Tue, 14 Apr 2015 20:04:58 GMT
48
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,47 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://wyday.com/limelm/api/rest?api_key=new_key_from_yaml&created=true&format=json&method=limelm.pkey.activity&start=2015-04-07&version_id=1
6
+ body:
7
+ encoding: UTF-8
8
+ string: ''
9
+ headers:
10
+ Accept-Encoding:
11
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
+ Accept:
13
+ - "*/*"
14
+ User-Agent:
15
+ - Ruby
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Server:
22
+ - nginx
23
+ Date:
24
+ - Tue, 14 Apr 2015 19:59:58 GMT
25
+ Content-Type:
26
+ - application/json
27
+ Transfer-Encoding:
28
+ - chunked
29
+ Connection:
30
+ - keep-alive
31
+ Set-Cookie:
32
+ - PHPSESSID=61qgs8as0t06qi3lc5o4tufm21; path=/
33
+ Expires:
34
+ - Thu, 19 Nov 1981 08:52:00 GMT
35
+ Cache-Control:
36
+ - no-store, no-cache, must-revalidate, post-check=0, pre-check=0
37
+ Pragma:
38
+ - no-cache
39
+ X-Frame-Options:
40
+ - SAMEORIGIN
41
+ body:
42
+ encoding: UTF-8
43
+ string: jsonLimeLMApi({"stat":"fail","code":109,"message":"No activity results
44
+ found for the parameters specified."})
45
+ http_version:
46
+ recorded_at: Tue, 14 Apr 2015 19:59:58 GMT
47
+ recorded_with: VCR 2.9.3
@@ -209,4 +209,24 @@ describe LimeLm::Key do
209
209
  end
210
210
  end
211
211
  end
212
+
213
+ describe '.activity' do
214
+ it 'returns the activity of a product version for the last week by default' do
215
+ VCR.use_cassette("default_activity", match_requests_on: [:path]) do
216
+ result = LimeLm::Key.activity(version_id: '1')
217
+ assert result.is_a?(Array)
218
+ key_info = result.first
219
+ assert_equal '1', key_info["id"]
220
+ assert_equal "AAAA", key_info['key']
221
+ assert_equal "5", key_info['acts']
222
+ end
223
+ end
224
+
225
+ it 'returns an empty array if no activity results found' do
226
+ VCR.use_cassette("no_activity", match_requests_on: [:path]) do
227
+ result = LimeLm::Key.activity
228
+ assert_equal [], result
229
+ end
230
+ end
231
+ end
212
232
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: limelm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Damien Imberdis
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-04 00:00:00.000000000 Z
11
+ date: 2015-04-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -67,7 +67,7 @@ dependencies:
67
67
  - !ruby/object:Gem::Version
68
68
  version: 2.0.1
69
69
  description: limelm is a Ruby wrapper for the LimeLM JSON API. LimeLM is a powerfull
70
- Licence and Online Activation Manager
70
+ License and Online Activation Manager
71
71
  email: imberdis.damien@gmail.com
72
72
  executables: []
73
73
  extensions: []
@@ -97,6 +97,7 @@ files:
97
97
  - spec/fixtures/dish_cassettes/create_key_new_version.yml
98
98
  - spec/fixtures/dish_cassettes/create_keys_with_email.yml
99
99
  - spec/fixtures/dish_cassettes/create_product_default_feature.yml
100
+ - spec/fixtures/dish_cassettes/default_activity.yml
100
101
  - spec/fixtures/dish_cassettes/default_search.yml
101
102
  - spec/fixtures/dish_cassettes/default_search_pagination.yml
102
103
  - spec/fixtures/dish_cassettes/destroy_feature.yml
@@ -106,6 +107,7 @@ files:
106
107
  - spec/fixtures/dish_cassettes/details_for_a_given_key_with_tags.yml
107
108
  - spec/fixtures/dish_cassettes/find_keys_by_email.yml
108
109
  - spec/fixtures/dish_cassettes/id_for_a_given_key.yml
110
+ - spec/fixtures/dish_cassettes/no_activity.yml
109
111
  - spec/fixtures/dish_cassettes/remove_tag_for_a_given_key.yml
110
112
  - spec/fixtures/dish_cassettes/revoke_key.yml
111
113
  - spec/fixtures/dish_cassettes/set_tags_for_a_given_key.yml