redmine-ruby 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile.lock +5 -5
- data/README.md +2 -0
- data/VERSION +1 -1
- data/lib/redmine-ruby.rb +12 -0
- data/lib/redmine-ruby/base.rb +6 -1
- data/lib/redmine-ruby/issue.rb +1 -1
- data/lib/redmine-ruby/time_entry.rb +6 -0
- data/lib/redmine-ruby/upload.rb +22 -0
- data/redmine-ruby.gemspec +4 -2
- metadata +5 -3
data/Gemfile.lock
CHANGED
@@ -10,14 +10,14 @@ GEM
|
|
10
10
|
multi_json (~> 1.3)
|
11
11
|
thread_safe (~> 0.1)
|
12
12
|
tzinfo (~> 0.3.37)
|
13
|
-
atomic (1.1.
|
13
|
+
atomic (1.1.10)
|
14
14
|
builder (3.1.4)
|
15
|
-
faraday (0.8.
|
16
|
-
multipart-post (~> 1.
|
15
|
+
faraday (0.8.8)
|
16
|
+
multipart-post (~> 1.2.0)
|
17
17
|
faraday_middleware (0.9.0)
|
18
18
|
faraday (>= 0.7.4, < 0.9)
|
19
19
|
git (1.2.5)
|
20
|
-
her (0.6.
|
20
|
+
her (0.6.8)
|
21
21
|
activemodel (>= 3.0.0)
|
22
22
|
activesupport (>= 3.0.0)
|
23
23
|
faraday (~> 0.8)
|
@@ -42,7 +42,7 @@ GEM
|
|
42
42
|
shoulda-context (1.1.3)
|
43
43
|
shoulda-matchers (2.2.0)
|
44
44
|
activesupport (>= 3.0.0)
|
45
|
-
thread_safe (0.1.
|
45
|
+
thread_safe (0.1.2)
|
46
46
|
atomic
|
47
47
|
tzinfo (0.3.37)
|
48
48
|
|
data/README.md
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
# redmine-ruby
|
2
2
|
|
3
|
+
[![Gem Version](https://badge.fury.io/rb/redmine-ruby.png)](http://badge.fury.io/rb/redmine-ruby)
|
4
|
+
[![Code Climate](https://codeclimate.com/github/GeneralScripting/redmine-ruby.png)](https://codeclimate.com/github/GeneralScripting/redmine-ruby)
|
3
5
|
|
4
6
|
## Installation
|
5
7
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.2.0
|
data/lib/redmine-ruby.rb
CHANGED
@@ -6,6 +6,8 @@ require 'redmine-ruby/middleware/xml_parser.rb'
|
|
6
6
|
require 'redmine-ruby/base.rb'
|
7
7
|
require 'redmine-ruby/project.rb'
|
8
8
|
require 'redmine-ruby/issue.rb'
|
9
|
+
require 'redmine-ruby/upload.rb'
|
10
|
+
require 'redmine-ruby/time_entry.rb'
|
9
11
|
|
10
12
|
module Redmine
|
11
13
|
class Client
|
@@ -26,8 +28,10 @@ module Redmine
|
|
26
28
|
def resource(name, options={})
|
27
29
|
klass = "Redmine::#{name.to_s.classify}".constantize
|
28
30
|
the_api = api
|
31
|
+
the_token = token
|
29
32
|
Class.new(klass) do |c|
|
30
33
|
c.uses_api the_api
|
34
|
+
c.api_token the_token
|
31
35
|
c.element_name name.to_s.underscore.to_sym
|
32
36
|
c.collection_path klass.collection_path
|
33
37
|
c.resource_path klass.resource_path
|
@@ -42,5 +46,13 @@ module Redmine
|
|
42
46
|
resource(:issue)
|
43
47
|
end
|
44
48
|
|
49
|
+
def uploads
|
50
|
+
resource(:upload)
|
51
|
+
end
|
52
|
+
|
53
|
+
def time_entries
|
54
|
+
resource(:time_entry)
|
55
|
+
end
|
56
|
+
|
45
57
|
end
|
46
58
|
end
|
data/lib/redmine-ruby/base.rb
CHANGED
@@ -2,12 +2,17 @@ module Redmine
|
|
2
2
|
class Base
|
3
3
|
include Her::Model
|
4
4
|
|
5
|
-
|
5
|
+
include_root_in_json true
|
6
|
+
parse_root_in_json true, format: :active_model_serializers
|
6
7
|
|
7
8
|
def self.element_name(name)
|
8
9
|
@_her_root_element = name
|
9
10
|
end
|
10
11
|
|
12
|
+
def self.api_token(token)
|
13
|
+
@api_token = token
|
14
|
+
end
|
15
|
+
|
11
16
|
def self.parse(data)
|
12
17
|
data.keys.include?(root_element) ? data[root_element] : data
|
13
18
|
end
|
data/lib/redmine-ruby/issue.rb
CHANGED
@@ -0,0 +1,22 @@
|
|
1
|
+
module Redmine
|
2
|
+
class Upload < Base
|
3
|
+
collection_path "uploads.xml"
|
4
|
+
resource_path "attachments/:id.xml"
|
5
|
+
|
6
|
+
def self.create(data)
|
7
|
+
uri = URI.parse( her_api.base_uri )
|
8
|
+
req = Net::HTTP::Post.new('/uploads.xml', initheader = {'Content-Type' => 'application/octet-stream', 'X-Redmine-API-Key' => @api_token })
|
9
|
+
req.body = data
|
10
|
+
response = Net::HTTP.new(uri.host, uri.port).start {|http| http.request(req) }
|
11
|
+
if response.code.to_i == 201
|
12
|
+
parser = Redmine::Middleware::XmlParser.new
|
13
|
+
data = parser.parse(response.body)
|
14
|
+
data[:data][:upload]["token"]
|
15
|
+
else
|
16
|
+
raise response.message
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
|
21
|
+
end
|
22
|
+
end
|
data/redmine-ruby.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "redmine-ruby"
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.2.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Jan Schwenzien"]
|
12
|
-
s.date = "2013-
|
12
|
+
s.date = "2013-08-01"
|
13
13
|
s.description = "Ruby Redmine Client using Her"
|
14
14
|
s.email = "jan@general-scripting.com"
|
15
15
|
s.extra_rdoc_files = [
|
@@ -30,6 +30,8 @@ Gem::Specification.new do |s|
|
|
30
30
|
"lib/redmine-ruby/issue.rb",
|
31
31
|
"lib/redmine-ruby/middleware/xml_parser.rb",
|
32
32
|
"lib/redmine-ruby/project.rb",
|
33
|
+
"lib/redmine-ruby/time_entry.rb",
|
34
|
+
"lib/redmine-ruby/upload.rb",
|
33
35
|
"redmine-ruby.gemspec",
|
34
36
|
"test/helper.rb",
|
35
37
|
"test/test_redmine-ruby.rb"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: redmine-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-08-01 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: her
|
@@ -144,6 +144,8 @@ files:
|
|
144
144
|
- lib/redmine-ruby/issue.rb
|
145
145
|
- lib/redmine-ruby/middleware/xml_parser.rb
|
146
146
|
- lib/redmine-ruby/project.rb
|
147
|
+
- lib/redmine-ruby/time_entry.rb
|
148
|
+
- lib/redmine-ruby/upload.rb
|
147
149
|
- redmine-ruby.gemspec
|
148
150
|
- test/helper.rb
|
149
151
|
- test/test_redmine-ruby.rb
|
@@ -162,7 +164,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
162
164
|
version: '0'
|
163
165
|
segments:
|
164
166
|
- 0
|
165
|
-
hash:
|
167
|
+
hash: 2027505479982214640
|
166
168
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
167
169
|
none: false
|
168
170
|
requirements:
|