Module: Veye::API::Package
- Defined in:
- lib/veye/api/package.rb
Overview
Package API wrappers
Constant Summary collapse
- RESOURCE_PATH =
'/products'
Class Method Summary collapse
- .encode_language(lang) ⇒ Object
- .encode_prod_key(prod_key) ⇒ Object
- .follow(api_key, prod_key, language) ⇒ Object
- .get_follow_status(api_key, prod_key, language) ⇒ Object
-
.get_package(api_key, prod_key, language, version = nil) ⇒ Object
returns package information.
- .get_references(api_key, prod_key, language, page = nil) ⇒ Object
- .get_version_list(api_key, prod_key, language) ⇒ Object
- .search(api_key, search_term, language = nil, group_id = nil, page = '1') ⇒ Object
- .unfollow(api_key, prod_key, language) ⇒ Object
Instance Method Summary collapse
Class Method Details
.encode_language(lang) ⇒ Object
15 16 17 |
# File 'lib/veye/api/package.rb', line 15 def self.encode_language(lang) lang.to_s.gsub(/\./, '').downcase end |
.encode_prod_key(prod_key) ⇒ Object
11 12 13 |
# File 'lib/veye/api/package.rb', line 11 def self.encode_prod_key(prod_key) prod_key.to_s.gsub(/\//, ':').gsub(/\./, '~') end |
.follow(api_key, prod_key, language) ⇒ Object
74 75 76 77 78 79 80 81 82 83 |
# File 'lib/veye/api/package.rb', line 74 def self.follow(api_key, prod_key, language) api = Resource.new(RESOURCE_PATH) lang = encode_language(language) safe_prod_key = encode_prod_key(prod_key) path = "/#{lang}/#{safe_prod_key}/follow.json?api_key=#{api_key}" api.resource[path].post({}) do |response, request, result| JSONResponse.new(request, result, response) end end |
.get_follow_status(api_key, prod_key, language) ⇒ Object
63 64 65 66 67 68 69 70 71 72 |
# File 'lib/veye/api/package.rb', line 63 def self.get_follow_status(api_key, prod_key, language) product_api = Resource.new(RESOURCE_PATH) qparams = {api_key: api_key} lang = encode_language(language) safe_prod_key = encode_prod_key(prod_key) path = "#{lang}/#{safe_prod_key}/follow.json" product_api.resource[path].get({params: qparams}) do |response, request, result| JSONResponse.new(request, result, response) end end |
.get_package(api_key, prod_key, language, version = nil) ⇒ Object
returns package information
20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/veye/api/package.rb', line 20 def self.get_package(api_key, prod_key, language, version = nil) lang = encode_language(language) safe_prod_key = encode_prod_key(prod_key) qparams = {} qparams[:api_key] = api_key if api_key.to_s.size > 0 qparams[:prod_version] = version.to_s.strip unless version.to_s.empty? product_api = Resource.new "#{RESOURCE_PATH}/#{lang}/#{safe_prod_key}" product_api.resource.get({params: qparams}) do |response, request, result| JSONResponse.new(request, result, response) end end |
.get_references(api_key, prod_key, language, page = nil) ⇒ Object
97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 |
# File 'lib/veye/api/package.rb', line 97 def self.get_references(api_key, prod_key, language, page = nil) api = Resource.new(RESOURCE_PATH) lang = encode_language(language).capitalize # endpoint bug safe_prod_key = encode_prod_key(prod_key) api_path = "/#{lang}/#{safe_prod_key}/references" page_nr = page.to_s unless page.nil? page_nr ||= 1 qparams = {page: page_nr} qparams[:api_key] = api_key if api_key.to_s.size > 0 api.resource[api_path].get({params: qparams}) do |response, request, result| JSONResponse.new(request, result, response) end end |
.get_version_list(api_key, prod_key, language) ⇒ Object
52 53 54 55 56 57 58 59 60 61 |
# File 'lib/veye/api/package.rb', line 52 def self.get_version_list(api_key, prod_key, language) lang = encode_language(language) safe_prod_key = encode_prod_key(prod_key) qparams = {api_key: api_key} product_api = Resource.new "#{RESOURCE_PATH}/#{lang}/#{safe_prod_key}/versions" product_api.resource.get({params: qparams}) do |response, request, result| JSONResponse.new(request, result, response) end end |
.search(api_key, search_term, language = nil, group_id = nil, page = '1') ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/veye/api/package.rb', line 34 def self.search(api_key, search_term, language = nil, group_id = nil, page = '1') search_api = Resource.new "#{RESOURCE_PATH}/search/#{search_term}" qparams = { q: search_term.to_s } qparams[:lang] = encode_language(language) unless language.nil? qparams[:g] = group_id unless group_id.nil? if page.nil? qparams[:page] = '1' else qparams[:page] = page.to_s end qparams[:api_key] = api_key if api_key.to_s.size > 0 search_api.resource.get({params: qparams}) do |response, request, result| JSONResponse.new(request, result, response) end end |
.unfollow(api_key, prod_key, language) ⇒ Object
85 86 87 88 89 90 91 92 93 94 95 |
# File 'lib/veye/api/package.rb', line 85 def self.unfollow(api_key, prod_key, language) api = Resource.new(RESOURCE_PATH) qparams = {api_key: api_key} lang = encode_language(language) safe_prod_key = encode_prod_key(prod_key) path = "/#{lang}/#{safe_prod_key}/follow.json" api.resource[path].delete({params: qparams}) do |response, request, result| JSONResponse.new(request, result, response) end end |
Instance Method Details
#supported_languages ⇒ Object
7 8 9 |
# File 'lib/veye/api/package.rb', line 7 def supported_languages Set.new %w( Clojure Java Javascript Node.JS PHP Python Ruby R ) end |