flimb_api 0.0.1.pre
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 +7 -0
- data/.gitignore +4 -0
- data/CHANGELOG.md +5 -0
- data/Gemfile +8 -0
- data/README.md +21 -0
- data/Rakefile +8 -0
- data/flimb_api.gemspec +22 -0
- data/lib/flimb.rb +5 -0
- data/lib/flimb_api.rb +19 -0
- data/lib/flimb_api/alert.rb +5 -0
- data/lib/flimb_api/base.rb +18 -0
- data/lib/flimb_api/resource/countable.rb +9 -0
- data/lib/flimb_api/resource/paginated.rb +26 -0
- data/lib/flimb_api/scan.rb +5 -0
- data/lib/flimb_api/version.rb +10 -0
- data/lib/flimb_api/website.rb +5 -0
- data/spec/lib/flimb_api/app_spec.rb +27 -0
- data/spec/spec_helper.rb +17 -0
- metadata +103 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 9f70728efdc7911f9871600b44f58c2931fd6009
|
4
|
+
data.tar.gz: 4e7d712da8019ce834ebc883f4517c0601e58968
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 3f3998925cb75c3233df61dd4a5451c5fe1e22fd3474e0920cadd6ce0f842a78baf726d1f745939d8da3ffa615f56c1c11bc4e6dbe26feed3df90be65141d94c
|
7
|
+
data.tar.gz: b46e82616f7bfc628037e004f52f660d9414b0a0b656ac910e889b7b7d559518214c21b9ee813e131ba499829604e996615e061882c9ccf975f20c12f47a46dc
|
data/.gitignore
ADDED
data/CHANGELOG.md
ADDED
data/Gemfile
ADDED
data/README.md
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
# FlimbApi gem
|
2
|
+
|
3
|
+
Flimb API client based on [ActiveResource](https://github.com/rails/activeresource).
|
4
|
+
|
5
|
+
## Install
|
6
|
+
|
7
|
+
Add to Gemfile:
|
8
|
+
|
9
|
+
```ruby
|
10
|
+
gem 'flimb_api'
|
11
|
+
```
|
12
|
+
|
13
|
+
## Use
|
14
|
+
|
15
|
+
```ruby
|
16
|
+
website = FlimbApi::Website.last
|
17
|
+
website.enable_dnsbl = false
|
18
|
+
website.save
|
19
|
+
|
20
|
+
website.alerts.last
|
21
|
+
```
|
data/Rakefile
ADDED
data/flimb_api.gemspec
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
$:.push File.expand_path('../lib', __FILE__)
|
2
|
+
require 'flimb_api/version'
|
3
|
+
|
4
|
+
Gem::Specification.new do |s|
|
5
|
+
s.name = 'flimb_api'
|
6
|
+
s.version = FlimbApi::VERSION::STRING
|
7
|
+
s.authors = 'Flimb'
|
8
|
+
s.email = 'contact@flimb.com'
|
9
|
+
s.homepage = 'https://github.com/flimb/flimb_api'
|
10
|
+
s.summary = 'Gem for accessing the Flimb REST web services'
|
11
|
+
s.description = 'Gem for accessing the Flimb REST web services'
|
12
|
+
|
13
|
+
s.rubyforge_project = 'flimb_api'
|
14
|
+
|
15
|
+
s.files = `git ls-files`.split("\n")
|
16
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
17
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
|
18
|
+
|
19
|
+
s.add_dependency('activesupport', ['>= 3.0.0'])
|
20
|
+
s.add_dependency('activeresource', ['>= 3.0.0'])
|
21
|
+
s.add_development_dependency 'rspec'
|
22
|
+
end
|
data/lib/flimb.rb
ADDED
data/lib/flimb_api.rb
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'active_support'
|
2
|
+
require 'active_support/core_ext'
|
3
|
+
require 'active_resource'
|
4
|
+
|
5
|
+
module FlimbApi
|
6
|
+
extend ActiveSupport::Autoload
|
7
|
+
|
8
|
+
Deprecator = ActiveSupport::Deprecation.new('1.0', name)
|
9
|
+
|
10
|
+
eager_autoload do
|
11
|
+
autoload :VERSION
|
12
|
+
autoload :Base
|
13
|
+
autoload :Alert
|
14
|
+
autoload :Scan
|
15
|
+
autoload :Website
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
ActiveSupport.run_load_hooks('flimb_api', FlimbApi)
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'flimb_api/resource/countable'
|
2
|
+
require 'flimb_api/resource/paginated'
|
3
|
+
|
4
|
+
module FlimbApi
|
5
|
+
class Base < ActiveResource::Base
|
6
|
+
extend Resource::Countable
|
7
|
+
extend Resource::Paginated
|
8
|
+
|
9
|
+
self.include_root_in_json = true
|
10
|
+
self.headers['User-Agent'] = %W(
|
11
|
+
FlimbApi/#{FlimbApi::VERSION::STRING}
|
12
|
+
ActiveResource/#{ActiveResource::VERSION::STRING}
|
13
|
+
Ruby/#{RUBY_VERSION}).join(' ')
|
14
|
+
self.format = :json
|
15
|
+
self.prefix = '/api/'
|
16
|
+
self.site = 'https://flimb.com'
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module FlimbApi
|
2
|
+
PER_PAGE_DEFAULT = 100
|
3
|
+
|
4
|
+
module Resource
|
5
|
+
module Paginated
|
6
|
+
def find_each(*args)
|
7
|
+
find_in_batches(*args) do |batch|
|
8
|
+
batch.each { |record| yield record }
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
def find_in_batches(options = {})
|
13
|
+
per_page = options[:per_page] || PER_PAGE_DEFAULT
|
14
|
+
params = {per_page: per_page}.merge(options[:params] || {})
|
15
|
+
page = 1
|
16
|
+
loop do
|
17
|
+
items = all(params: params.merge(page: page))
|
18
|
+
return unless items.any?
|
19
|
+
yield items
|
20
|
+
return if items.count < per_page
|
21
|
+
page += 1
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe FlimbApi do
|
4
|
+
|
5
|
+
http_options = { 'Accept' => 'application/json',
|
6
|
+
'User-Agent' => FlimbApi::Base.headers['User-Agent'] }
|
7
|
+
|
8
|
+
it 'returns websites' do
|
9
|
+
websites = [{ id: 1, name: 'example.com' }, { id: 2, name: 'example.org' }]
|
10
|
+
ActiveResource::HttpMock.respond_to do |mock|
|
11
|
+
mock.get '/api/websites.json', http_options, websites.to_json
|
12
|
+
mock.get '/api/websites/1.json', http_options, websites.first.to_json
|
13
|
+
end
|
14
|
+
FlimbApi::Website.all.size.should == 2
|
15
|
+
FlimbApi::Website.find(1).name.should == 'example.com'
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'returns alerts' do
|
19
|
+
website = { id: 1, name: 'example.com' }
|
20
|
+
alerts = [{ id: 1, source: 'Dnsbl', state: 'unresolved' }]
|
21
|
+
ActiveResource::HttpMock.respond_to do |mock|
|
22
|
+
mock.get '/api/websites/1.json', http_options, website.to_json
|
23
|
+
mock.get '/api/alerts.json?website_id=1', http_options, alerts.to_json
|
24
|
+
end
|
25
|
+
FlimbApi::Website.find(1).alerts.first.source.should == 'Dnsbl'
|
26
|
+
end
|
27
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
# This file is copied to spec/ when you run 'rails generate rspec:install'
|
2
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
3
|
+
require 'flimb_api'
|
4
|
+
|
5
|
+
FlimbApi::Base.user = nil
|
6
|
+
FlimbApi::Base.password = nil
|
7
|
+
|
8
|
+
RSpec.configure do |config|
|
9
|
+
# == Mock Framework
|
10
|
+
#
|
11
|
+
# If you prefer to use mocha, flexmock or RR, uncomment the appropriate line:
|
12
|
+
#
|
13
|
+
# config.mock_with :mocha
|
14
|
+
# config.mock_with :flexmock
|
15
|
+
# config.mock_with :rr
|
16
|
+
config.mock_with :rspec
|
17
|
+
end
|
metadata
ADDED
@@ -0,0 +1,103 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: flimb_api
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1.pre
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Flimb
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-08-02 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: activesupport
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '>='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 3.0.0
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 3.0.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: activeresource
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 3.0.0
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 3.0.0
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
description: Gem for accessing the Flimb REST web services
|
56
|
+
email: contact@flimb.com
|
57
|
+
executables: []
|
58
|
+
extensions: []
|
59
|
+
extra_rdoc_files: []
|
60
|
+
files:
|
61
|
+
- .gitignore
|
62
|
+
- CHANGELOG.md
|
63
|
+
- Gemfile
|
64
|
+
- README.md
|
65
|
+
- Rakefile
|
66
|
+
- flimb_api.gemspec
|
67
|
+
- lib/flimb.rb
|
68
|
+
- lib/flimb_api.rb
|
69
|
+
- lib/flimb_api/alert.rb
|
70
|
+
- lib/flimb_api/base.rb
|
71
|
+
- lib/flimb_api/resource/countable.rb
|
72
|
+
- lib/flimb_api/resource/paginated.rb
|
73
|
+
- lib/flimb_api/scan.rb
|
74
|
+
- lib/flimb_api/version.rb
|
75
|
+
- lib/flimb_api/website.rb
|
76
|
+
- spec/lib/flimb_api/app_spec.rb
|
77
|
+
- spec/spec_helper.rb
|
78
|
+
homepage: https://github.com/flimb/flimb_api
|
79
|
+
licenses: []
|
80
|
+
metadata: {}
|
81
|
+
post_install_message:
|
82
|
+
rdoc_options: []
|
83
|
+
require_paths:
|
84
|
+
- lib
|
85
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - '>='
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
91
|
+
requirements:
|
92
|
+
- - '>'
|
93
|
+
- !ruby/object:Gem::Version
|
94
|
+
version: 1.3.1
|
95
|
+
requirements: []
|
96
|
+
rubyforge_project: flimb_api
|
97
|
+
rubygems_version: 2.0.14
|
98
|
+
signing_key:
|
99
|
+
specification_version: 4
|
100
|
+
summary: Gem for accessing the Flimb REST web services
|
101
|
+
test_files:
|
102
|
+
- spec/lib/flimb_api/app_spec.rb
|
103
|
+
- spec/spec_helper.rb
|