limelm 0.1.0 → 0.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: 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