limelm 0.1.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.
Files changed (42) hide show
  1. checksums.yaml +7 -0
  2. data/.document +5 -0
  3. data/Gemfile +15 -0
  4. data/Gemfile.lock +75 -0
  5. data/LICENSE.txt +20 -0
  6. data/README.md +75 -0
  7. data/Rakefile +50 -0
  8. data/TODO.md +10 -0
  9. data/VERSION +1 -0
  10. data/lib/lime_lm/connection.rb +23 -0
  11. data/lib/lime_lm/exceptions.rb +6 -0
  12. data/lib/lime_lm/feature.rb +62 -0
  13. data/lib/lime_lm/key.rb +83 -0
  14. data/lib/lime_lm/utils.rb +7 -0
  15. data/lib/limelm.rb +30 -0
  16. data/limelm.gemspec +89 -0
  17. data/spec/fixtures/dish_cassettes/all_features.yml +47 -0
  18. data/spec/fixtures/dish_cassettes/create_custom_feature.yml +46 -0
  19. data/spec/fixtures/dish_cassettes/create_detailed_key.yml +46 -0
  20. data/spec/fixtures/dish_cassettes/create_key_default_configuration.yml +46 -0
  21. data/spec/fixtures/dish_cassettes/create_key_new_version.yml +46 -0
  22. data/spec/fixtures/dish_cassettes/create_keys_with_email.yml +46 -0
  23. data/spec/fixtures/dish_cassettes/create_product_default_feature.yml +46 -0
  24. data/spec/fixtures/dish_cassettes/default_search.yml +46 -0
  25. data/spec/fixtures/dish_cassettes/default_search_pagination.yml +46 -0
  26. data/spec/fixtures/dish_cassettes/destroy_feature.yml +46 -0
  27. data/spec/fixtures/dish_cassettes/destroy_key.yml +46 -0
  28. data/spec/fixtures/dish_cassettes/destroy_random_key.yml +47 -0
  29. data/spec/fixtures/dish_cassettes/details_for_a_given_key.yml +46 -0
  30. data/spec/fixtures/dish_cassettes/details_for_a_given_key_with_tags.yml +46 -0
  31. data/spec/fixtures/dish_cassettes/find_keys_by_email.yml +46 -0
  32. data/spec/fixtures/dish_cassettes/id_for_a_given_key.yml +46 -0
  33. data/spec/fixtures/dish_cassettes/remove_tag_for_a_given_key.yml +46 -0
  34. data/spec/fixtures/dish_cassettes/revoke_key.yml +46 -0
  35. data/spec/fixtures/dish_cassettes/set_tags_for_a_given_key.yml +46 -0
  36. data/spec/fixtures/dish_cassettes/unrevoke_key.yml +46 -0
  37. data/spec/fixtures/dish_cassettes/update_custom_feature.yml +46 -0
  38. data/spec/lib/lime_lm/feature_spec.rb +86 -0
  39. data/spec/lib/lime_lm/key_spec.rb +212 -0
  40. data/spec/lib/limelm_spec.rb +37 -0
  41. data/spec/spec_helper.rb +70 -0
  42. metadata +142 -0
@@ -0,0 +1,37 @@
1
+ require 'spec_helper'
2
+ SUPPORT_ROOT = File.expand_path("../support", File.dirname(__FILE__))
3
+
4
+ describe LimeLm do
5
+ before do
6
+ @conf = { api_key: '123', version_id: '100' }
7
+ end
8
+
9
+ describe '.config' do
10
+ it 'returns a default configuration to a LimeLM demo environment' do
11
+ config = LimeLm.config
12
+ assert !config.empty?
13
+ assert_equal LimeLm.class_variable_get(:@@valid_config_keys), config.keys
14
+ end
15
+ end
16
+
17
+ describe '.configure' do
18
+ it 'configures the module passing a hash' do
19
+ LimeLm.configure(@conf)
20
+ assert_equal @conf, LimeLm.config
21
+ end
22
+
23
+ it 'rejects unexpected keys' do
24
+ LimeLm.configure(@conf.merge({ unexpected: '234' }))
25
+ assert_equal @conf, LimeLm.config
26
+ end
27
+ end
28
+
29
+ describe '.configure_with' do
30
+ it 'configures the module through a yaml file' do
31
+ LimeLm.configure_with("#{SUPPORT_ROOT}/conf.yml")
32
+ config = LimeLm.config
33
+ assert_equal 'new_key_from_yaml', config[:api_key]
34
+ assert_equal '1', config[:version_id]
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,70 @@
1
+ SPEC_ROOT = File.dirname(__FILE__)
2
+ GEM_ROOT = File.expand_path("..", SPEC_ROOT)
3
+
4
+ require 'simplecov'
5
+
6
+ module SimpleCov::Configuration
7
+ def clean_filters
8
+ @filters = []
9
+ end
10
+ end
11
+
12
+ SimpleCov.configure do
13
+ clean_filters
14
+ load_profile 'test_frameworks'
15
+ end
16
+
17
+ ENV["COVERAGE"] && SimpleCov.start do
18
+ add_filter "/.rvm/"
19
+ add_filter "/.rbenv/"
20
+ add_filter "/.bundle/"
21
+ end
22
+ require 'rubygems'
23
+ require 'bundler'
24
+ begin
25
+ Bundler.setup(:default, :development)
26
+ rescue Bundler::BundlerError => e
27
+ $stderr.puts e.message
28
+ $stderr.puts "Run `bundle install` to install missing gems"
29
+ exit e.status_code
30
+ end
31
+ require 'minitest/autorun'
32
+ require 'webmock/minitest'
33
+ require 'vcr'
34
+
35
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
36
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
37
+ require 'limelm'
38
+
39
+ # Support methods
40
+ Dir["#{SPEC_ROOT}/support/**/*.rb"].each { |f| require f }
41
+
42
+ # VCR configuration
43
+ VCR.configure do |c|
44
+ c.cassette_library_dir = "#{SPEC_ROOT}/fixtures/dish_cassettes"
45
+ c.hook_into :webmock
46
+ end
47
+
48
+ module LimeLmConfigurationSetup
49
+ def before_setup
50
+ super
51
+
52
+ # NOTE: As LimeLM doesn't provide a demo environment, we have to make the following tricks:
53
+ # 1) Add personal credentials configuration to the file conf.yml, verify that this file is not version controlled
54
+ # 2) Run your tests with the environment variable MODE sets to 'live': bundle exec rake spec MODE=live
55
+ # 3) The HTTP request succeed and are regitered by VCR as fixtures
56
+ # 4) Anonymize each new created VCR fixtures with the credentials available under spec/support/config.yml
57
+ # + don't forget to anonymize each creadentials presents in the API response
58
+ # 5) Add the option match_requests_on: [:path] to the VCR#use_cassette method to lock the fixture on next live MODE
59
+ # 6) Run the testing without the MODE environment variable, the fixtures should works
60
+ if ENV['MODE'] == 'live' && File.exist?("#{GEM_ROOT}/conf.yml")
61
+ LimeLm.configure_with("#{GEM_ROOT}/conf.yml")
62
+ else
63
+ LimeLm.configure_with("#{SPEC_ROOT}/support/conf.yml")
64
+ end
65
+ end
66
+ end
67
+
68
+ class MiniTest::Unit::TestCase
69
+ include LimeLmConfigurationSetup
70
+ end
metadata ADDED
@@ -0,0 +1,142 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: limelm
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Damien Imberdis
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-03-04 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: httparty
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rdoc
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: bundler
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: jeweler
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 2.0.1
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 2.0.1
69
+ description: limelm is a Ruby wrapper for the LimeLM JSON API. LimeLM is a powerfull
70
+ Licence and Online Activation Manager
71
+ email: imberdis.damien@gmail.com
72
+ executables: []
73
+ extensions: []
74
+ extra_rdoc_files:
75
+ - LICENSE.txt
76
+ - README.md
77
+ files:
78
+ - ".document"
79
+ - Gemfile
80
+ - Gemfile.lock
81
+ - LICENSE.txt
82
+ - README.md
83
+ - Rakefile
84
+ - TODO.md
85
+ - VERSION
86
+ - lib/lime_lm/connection.rb
87
+ - lib/lime_lm/exceptions.rb
88
+ - lib/lime_lm/feature.rb
89
+ - lib/lime_lm/key.rb
90
+ - lib/lime_lm/utils.rb
91
+ - lib/limelm.rb
92
+ - limelm.gemspec
93
+ - spec/fixtures/dish_cassettes/all_features.yml
94
+ - spec/fixtures/dish_cassettes/create_custom_feature.yml
95
+ - spec/fixtures/dish_cassettes/create_detailed_key.yml
96
+ - spec/fixtures/dish_cassettes/create_key_default_configuration.yml
97
+ - spec/fixtures/dish_cassettes/create_key_new_version.yml
98
+ - spec/fixtures/dish_cassettes/create_keys_with_email.yml
99
+ - spec/fixtures/dish_cassettes/create_product_default_feature.yml
100
+ - spec/fixtures/dish_cassettes/default_search.yml
101
+ - spec/fixtures/dish_cassettes/default_search_pagination.yml
102
+ - spec/fixtures/dish_cassettes/destroy_feature.yml
103
+ - spec/fixtures/dish_cassettes/destroy_key.yml
104
+ - spec/fixtures/dish_cassettes/destroy_random_key.yml
105
+ - spec/fixtures/dish_cassettes/details_for_a_given_key.yml
106
+ - spec/fixtures/dish_cassettes/details_for_a_given_key_with_tags.yml
107
+ - spec/fixtures/dish_cassettes/find_keys_by_email.yml
108
+ - spec/fixtures/dish_cassettes/id_for_a_given_key.yml
109
+ - spec/fixtures/dish_cassettes/remove_tag_for_a_given_key.yml
110
+ - spec/fixtures/dish_cassettes/revoke_key.yml
111
+ - spec/fixtures/dish_cassettes/set_tags_for_a_given_key.yml
112
+ - spec/fixtures/dish_cassettes/unrevoke_key.yml
113
+ - spec/fixtures/dish_cassettes/update_custom_feature.yml
114
+ - spec/lib/lime_lm/feature_spec.rb
115
+ - spec/lib/lime_lm/key_spec.rb
116
+ - spec/lib/limelm_spec.rb
117
+ - spec/spec_helper.rb
118
+ homepage: http://github.com/dam/limelm
119
+ licenses:
120
+ - MIT
121
+ metadata: {}
122
+ post_install_message:
123
+ rdoc_options: []
124
+ require_paths:
125
+ - lib
126
+ required_ruby_version: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - ">="
129
+ - !ruby/object:Gem::Version
130
+ version: '0'
131
+ required_rubygems_version: !ruby/object:Gem::Requirement
132
+ requirements:
133
+ - - ">="
134
+ - !ruby/object:Gem::Version
135
+ version: '0'
136
+ requirements: []
137
+ rubyforge_project:
138
+ rubygems_version: 2.2.2
139
+ signing_key:
140
+ specification_version: 4
141
+ summary: limelm is a Ruby wrapper for the LimeLM JSON API
142
+ test_files: []