nearmiss-ruby 1.0.3 → 1.0.4

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: 2c45361a4ff97189c6376c0978c7ae94d72ce178
4
- data.tar.gz: 5d875ea9652f3427a8e6792e17972f5e54386aa5
3
+ metadata.gz: 02345c1b1ede0a30870db477c456afacb9e3efeb
4
+ data.tar.gz: 687b821cce247887aa3844a44e2a43de66e9822d
5
5
  SHA512:
6
- metadata.gz: 22e1ade7eb04c1841f7c6998c0da23cf676564857bdda5f9b05e7e32b4d3ec2a26aa57cf15b8e831ac21c36c399653d58757d6102007400eaacd6a44fc365395
7
- data.tar.gz: 834b68d3d250b6a169f3df81d7f8f5895ba0308ac6c618e5db1a5661af0ddbe0539f3c0a48d03322903baa913e2bc4963686f1ed2692079539cddd04c57f6264
6
+ metadata.gz: ca6c040381a5176edfe8c3a46f234260d05b6920485c6bb5ef13f1631e689c65b7a39fb7b4f53d8e63e5d888df7f0da1f55e8b00e9d6e492b6e3509c6ce90ecd
7
+ data.tar.gz: f02804f0c4a88fd0d7c706e4e0e70dd6e30a65a315eb2543ce7fa9498ee960bc604ac8bbecddfe996851f23c83fe713ae83ee251b4eca8a96bbc8cf2f318ecfb
data/Makefile ADDED
@@ -0,0 +1,15 @@
1
+ install:
2
+ bundle exec rake install
3
+
4
+ test-install:
5
+ bundle install
6
+
7
+ test:
8
+ bundle exec rake spec
9
+
10
+ authors:
11
+ echo "Authors\n=======\n\nA huge thanks to all of our contributors:\n\n" > AUTHORS.md
12
+ git log --raw | grep "^Author: " | cut -d ' ' -f2- | cut -d '<' -f1 | sed 's/^/- /' | sort | uniq >> AUTHORS.md
13
+
14
+ deploy:
15
+ bundle exec rake build | sed -e 's/.*pkg/pkg/g' | sed -e "s/\.$$//g" | xargs gem push
@@ -0,0 +1,88 @@
1
+ module Nearmiss
2
+ class Client
3
+
4
+ # Methods for the Attachments API
5
+ #
6
+ module Attachments
7
+
8
+ # List nearmiss attachments
9
+ #
10
+ # @return [Array<Sawyer::Resource>] List of attachments
11
+ #
12
+ def attachments(options = {})
13
+ since = options[:since] || options["since"]
14
+
15
+ options.merge!(since: iso8601(parse_date(since))) if since
16
+
17
+ paginate "attachments", options
18
+ end
19
+ alias :list_attachments :attachments
20
+
21
+ # Get a single attachment
22
+ #
23
+ # @param attachment [String] ID of attachment to fetch
24
+ # @return [Sawyer::Resource] Incident information
25
+ #
26
+ def attachment(attachment, options = {})
27
+ get "attachments/#{attachment}", options
28
+ end
29
+
30
+ # Project attachments
31
+ #
32
+ # @param project [String, Hash, Incident] Incident
33
+ # @return [Sawyer::Resource] Incident information
34
+ #
35
+ def incident_attachments(incident, options = {})
36
+
37
+ paginate "#{Incident.new(incident).path}/attachments", options
38
+
39
+ end
40
+ alias :nearmiss_attachments :incident_attachments
41
+
42
+
43
+ # Create an attachment
44
+ #
45
+ # @param options [Hash] Attachment information.
46
+ # @option options [String] :created_by_id Id of person who created this attachment
47
+ # @option options [String] :original_filename title of file
48
+ # @option options [String] :content_type e.g. `image/jpeg`
49
+ # @option options [String] :attachable_id associated ID of resource this attachment belongs to
50
+ # @option options [String] :attachable_type e.g. Incident
51
+
52
+ #
53
+ # @return [Sawyer::Resource] Newly created attachment info
54
+ def create_attachment(options = {})
55
+ post 'attachments', options
56
+ end
57
+
58
+
59
+ def update_attachment(attachment, options = {})
60
+ patch "attachments/#{attachment}", options
61
+ end
62
+ alias :edit_attachment :update_attachment
63
+
64
+
65
+ protected
66
+
67
+ def iso8601(date)
68
+ if date.respond_to?(:iso8601)
69
+ date.iso8601
70
+ else
71
+ date.strftime("%Y-%m-%dT%H:%M:%S%Z")
72
+ end
73
+ end
74
+ # Parses the given string representation of a date, throwing a meaningful exception
75
+ # (containing the date that failed to parse) in case of failure.
76
+ #
77
+ # @param date [String] String representation of a date
78
+ # @return [DateTime]
79
+ def parse_date(date)
80
+ date = DateTime.parse(date.to_s)
81
+ rescue ArgumentError
82
+ raise ArgumentError, "#{date} is not a valid date"
83
+ end
84
+
85
+
86
+ end
87
+ end
88
+ end
File without changes
@@ -0,0 +1,76 @@
1
+ module Nearmiss
2
+ class Client
3
+
4
+ # Methods for the Companies API
5
+ #
6
+ module Companies
7
+
8
+ # List companies
9
+ #
10
+ # @note Shows a list of companies for the users organization aka account
11
+ #
12
+ # @return [Array<Sawyer::Resource>] List of companys
13
+ def companies(options = {})
14
+ paginate "companies", options
15
+ end
16
+ alias :list_companies :companies
17
+
18
+ # Get a single company
19
+ #
20
+ # @param company [String] UUID of company to fetch
21
+ # @return [Sawyer::Resource] Project information
22
+ #
23
+ def company(company, options = {})
24
+ get "#{company_path(company)}", options
25
+ end
26
+
27
+ # Create a company
28
+ #
29
+ # @param options [Hash] Project information.
30
+ # @option options [String] :name e.g. Berkeley Art Museum
31
+ # @option options [String] :company_id e.g. 10611.70
32
+ # @return [Sawyer::Resource] Newly created company info
33
+ def create_company(options = {})
34
+ post 'companies', options
35
+ end
36
+
37
+ # Edit a company
38
+ #
39
+ # @param options [Hash] Project information.
40
+ # @option options [String] :name e.g. Berkeley Art Museum
41
+ # @option options [String] :company_id e.g. 10611.70
42
+ #
43
+ # @return
44
+ # [Sawyer::Resource] Newly created company info
45
+ # @example Update a company
46
+ # @client.edit_company('some_id', {
47
+ # name: "New name of company",
48
+ # company_id: "1043.32"
49
+ # })
50
+ #
51
+ def edit_company(company, options = {})
52
+ patch "#{company_path(company)}", options
53
+ end
54
+
55
+ # Delete a company
56
+ #
57
+ # @param company [String] Project ID
58
+ # @return [Boolean] Indicating success of deletion
59
+ #
60
+ def delete_company(company, options = {})
61
+ boolean_from_response :delete, "companies/#{company}", options
62
+ end
63
+ alias :remove_company :delete_company
64
+
65
+ private
66
+
67
+ def company_path(id)
68
+ if uuid?(id)
69
+ "companies/#{id}"
70
+ else
71
+ "company/#{id}"
72
+ end
73
+ end
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,75 @@
1
+ module Nearmiss
2
+
3
+ # Class to parse incident owner and name from
4
+ # URLs and to generate URLs
5
+ class Incident
6
+ attr_accessor :id
7
+
8
+ # Instantiate from a incident URL
9
+ #
10
+ # @return [Incident]
11
+ def self.from_url(url)
12
+ Incident.new(URI.parse(url).path[1..-1])
13
+ end
14
+
15
+
16
+ def initialize(incident)
17
+ case incident
18
+ # when Integer
19
+ # @id = incident
20
+ when String
21
+ @id = incident
22
+ # @owner, @name = repo.split('/')
23
+ # unless @owner && @name
24
+ # raise ArgumentError, "Invalid Incident. Use user/repo format."
25
+ # end
26
+ when Incident
27
+ @id = incident.id
28
+ # @name = repo.name
29
+ when Hash
30
+ @id = incident[:incident] ||= incident[:id]
31
+ # @owner = repo[:owner] ||= repo[:user] ||= repo[:username]
32
+ end
33
+ end
34
+
35
+ # Incident owner/name
36
+ # @return [String]
37
+ def slug
38
+ # "#{@owner}/#{@name}"
39
+ end
40
+ alias :to_s :slug
41
+
42
+ # @return [String] Incident API path
43
+ def path
44
+ # return named_api_path if @owner && @name
45
+ return id_api_path if @id
46
+ end
47
+
48
+ # Get the api path for a repo
49
+ # @param incident [Integer, String, Hash, Incident] A incident.
50
+ # @return [String] Api path.
51
+ def self.path(incident)
52
+ new(incident).path
53
+ end
54
+
55
+ # @return [String] Api path for owner/name identified repos
56
+ # def named_api_path
57
+ # "repos/#{slug}"
58
+ # end
59
+
60
+ # @return [String] Api path for id identified incidents
61
+ def id_api_path
62
+ "incidents/#{@id}"
63
+ end
64
+
65
+ # Incident URL based on {Nearmiss::Client#web_endpoint}
66
+ # @return [String]
67
+ # def url
68
+ # "#{Octokit.web_endpoint}#{slug}"
69
+ # end
70
+
71
+ # alias :user :owner
72
+ # alias :username :owner
73
+ # alias :repo :name
74
+ end
75
+ end
@@ -0,0 +1,75 @@
1
+ module Nearmiss
2
+
3
+ # Class to parse GitHub repository owner and name from
4
+ # URLs and to generate URLs
5
+ class Project
6
+ attr_accessor :owner, :name, :id
7
+
8
+ # Instantiate from a GitHub repository URL
9
+ #
10
+ # @return [Repository]
11
+ def self.from_url(url)
12
+ Project.new(URI.parse(url).path[1..-1])
13
+ end
14
+
15
+
16
+ def initialize(project)
17
+ case project
18
+ # when Integer
19
+ # @id = project
20
+ when String
21
+ @id = project
22
+ # @owner, @name = repo.split('/')
23
+ # unless @owner && @name
24
+ # raise ArgumentError, "Invalid Repository. Use user/repo format."
25
+ # end
26
+ when Project
27
+ @id = project.id
28
+ # @name = repo.name
29
+ when Hash
30
+ @id = project[:project] ||= project[:id]
31
+ # @owner = repo[:owner] ||= repo[:user] ||= repo[:username]
32
+ end
33
+ end
34
+
35
+ # Project owner/name
36
+ # @return [String]
37
+ def slug
38
+ # "#{@owner}/#{@name}"
39
+ end
40
+ alias :to_s :slug
41
+
42
+ # @return [String] Project API path
43
+ def path
44
+ # return named_api_path if @owner && @name
45
+ return id_api_path if @id
46
+ end
47
+
48
+ # Get the api path for a repo
49
+ # @param project [Integer, String, Hash, Project] A project.
50
+ # @return [String] Api path.
51
+ def self.path(project)
52
+ new(project).path
53
+ end
54
+
55
+ # @return [String] Api path for owner/name identified repos
56
+ # def named_api_path
57
+ # "repos/#{slug}"
58
+ # end
59
+
60
+ # @return [String] Api path for id identified repos
61
+ def id_api_path
62
+ "projects/#{@id}"
63
+ end
64
+
65
+ # Project URL based on {Nearmiss::Client#web_endpoint}
66
+ # @return [String]
67
+ def url
68
+ # "#{Octokit.web_endpoint}#{slug}"
69
+ end
70
+
71
+ # alias :user :owner
72
+ # alias :username :owner
73
+ # alias :repo :name
74
+ end
75
+ end
@@ -1,3 +1,3 @@
1
1
  module Nearmiss
2
- VERSION = "1.0.3"
2
+ VERSION = "1.0.4"
3
3
  end
data/script/bootstrap ADDED
@@ -0,0 +1,5 @@
1
+ #!/bin/sh
2
+
3
+ set -e
4
+
5
+ bundle install --quiet "$@"
data/script/cibuild ADDED
@@ -0,0 +1,5 @@
1
+ #!/bin/sh
2
+
3
+ set -e
4
+
5
+ script/test
data/script/console ADDED
@@ -0,0 +1,11 @@
1
+ #!/bin/sh
2
+
3
+ set -e
4
+
5
+ dir=`pwd`
6
+
7
+ echo "===> Bundling..."
8
+ script/bootstrap --quiet
9
+
10
+ echo "===> Launching..."
11
+ bundle console
data/script/package ADDED
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env bash
2
+ # Usage: script/gem
3
+ # Updates the gemspec and builds a new gem in the pkg directory.
4
+
5
+ mkdir -p pkg
6
+ gem build *.gemspec
7
+ mv *.gem pkg
data/script/release ADDED
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env bash
2
+ # Usage: script/release
3
+ # Build the package, tag a commit, push it to origin, and then release the
4
+ # package publicly.
5
+
6
+ set -e
7
+
8
+ version="$(script/package | grep Version: | awk '{print $2}')"
9
+ [ -n "$version" ] || exit 1
10
+
11
+ echo $version
12
+ git commit --allow-empty -a -m "Release $version"
13
+ git tag "v$version"
14
+ git push origin
15
+ git push origin "v$version"
16
+ gem push pkg/*-${version}.gem
data/script/test ADDED
File without changes
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nearmiss-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Markus Klooth
@@ -63,6 +63,7 @@ files:
63
63
  - CHANGELOG.md
64
64
  - Gemfile
65
65
  - LICENSE
66
+ - Makefile
66
67
  - README.md
67
68
  - Rakefile
68
69
  - lib/nearmiss-ruby.rb
@@ -70,8 +71,11 @@ files:
70
71
  - lib/nearmiss-ruby/authentication.rb
71
72
  - lib/nearmiss-ruby/client.rb
72
73
  - lib/nearmiss-ruby/client/account.rb
74
+ - lib/nearmiss-ruby/client/attachments.rb
73
75
  - lib/nearmiss-ruby/client/bookmarks.rb
74
76
  - lib/nearmiss-ruby/client/categories.rb
77
+ - lib/nearmiss-ruby/client/comments.rb
78
+ - lib/nearmiss-ruby/client/companies.rb
75
79
  - lib/nearmiss-ruby/client/incidents.rb
76
80
  - lib/nearmiss-ruby/client/notifications.rb
77
81
  - lib/nearmiss-ruby/client/projects.rb
@@ -80,12 +84,20 @@ files:
80
84
  - lib/nearmiss-ruby/configurable.rb
81
85
  - lib/nearmiss-ruby/default.rb
82
86
  - lib/nearmiss-ruby/error.rb
87
+ - lib/nearmiss-ruby/incident.rb
88
+ - lib/nearmiss-ruby/project.rb
83
89
  - lib/nearmiss-ruby/raise_error.rb
84
90
  - lib/nearmiss-ruby/rate_limit.rb
85
91
  - lib/nearmiss-ruby/response.rb
86
92
  - lib/nearmiss-ruby/util.rb
87
93
  - lib/nearmiss-ruby/version.rb
88
94
  - nearmiss-ruby.gemspec
95
+ - script/bootstrap
96
+ - script/cibuild
97
+ - script/console
98
+ - script/package
99
+ - script/release
100
+ - script/test
89
101
  homepage: https://github.com/nearmiss/nearmiss-ruby
90
102
  licenses:
91
103
  - MIT