R3c 0.0.5 → 0.0.6

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 76640c3136df3ef8fc0329487792e6c2f0044af1
4
- data.tar.gz: 5d23eb121f278cbf71ce9b560456a68f3c2bd8e9
3
+ metadata.gz: a2b970f2a8e10e16e9d23cea17bdab245eba09c9
4
+ data.tar.gz: 811116a7bd0d637a058dfe755ab765e2ad460a5f
5
5
  SHA512:
6
- metadata.gz: bbeeba533fcbb60af5d3db7f381db94a08220058a9357d5f5aa841fd6bd1867e3b03052cc3a8f5ba8d57620f6b318ad07c15bf0762a8de89d9494ac0ec2a0247
7
- data.tar.gz: 08b1f1227e62d69d66f3022741e3ec56bb78e0bd3817d1eb051165c705b3ecf8c2b6192894b390d5c417066aaab6f9632547bfa546d20a7c636cd4d3a1e91d30
6
+ metadata.gz: b48329923a182ad8f508b43a729da3426ba2826c7c24d8cf823b38177f2964fedb0115ca5b6b1898c5412fa2d36e6d0ae5fdf59e40c3efafd3436e5e467e6e3c
7
+ data.tar.gz: 230fb21d1e73d8a444410c5f4c8624b9a563e05c6af2d46a3aa053be6a3d95c7a6f31aa2e732f1b7f6cc17dd5d5a8c16c762b7bf4931fa53035b68fe38359dbd
data/lib/r3c.rb CHANGED
@@ -1,43 +1,26 @@
1
1
  require "r3c/r3c"
2
2
  require "r3c/version"
3
3
  require "rest-client"
4
+ require "r3c/rest_helper"
4
5
  require "json"
5
6
 
6
7
  module R3c
7
8
 
8
-
9
- def self.upload(file)
10
- response = RestClient.post("#{R3c::BaseEntity.site}/uploads.json?key=#{R3c::BaseEntity.headers['X-Redmine-API-Key']}", file, {:multipart => true, :content_type => 'application/octet-stream'})
11
- token = JSON.parse(response)['upload']['token']
12
- end
13
-
14
- def self.add_watcher(issue_id, user_id)
15
- #POST /issues/[id]/watchers.[format]
16
- response = RestClient.post("#{R3c::BaseEntity.site}/issues/#{issue_id}/watchers.xml?key=#{R3c::BaseEntity.headers['X-Redmine-API-Key']}", {user_id: user_id})
17
- end
18
-
19
- def self.remove_watcher(issue_id, user_id)
20
- #DELETE /issues/[id]/watchers/[user_id].[format]
21
- response = RestClient.delete("#{R3c::BaseEntity.site}/issues/#{issue_id}/watchers/#{user_id}.xml?key=#{R3c::BaseEntity.headers['X-Redmine-API-Key']}")
22
- end
23
-
24
-
25
-
26
- def self.version
9
+ def self.version
27
10
  VERSION
28
- end
11
+ end
29
12
 
30
- def self.site site
31
- R3c::BaseEntity.set_site(site)
32
- end
13
+ def self.site site
14
+ R3c::BaseEntity.set_site(site)
15
+ end
33
16
 
34
- def self.format format
35
- R3c::BaseEntity.set_format(format)
36
- end
17
+ def self.format format
18
+ R3c::BaseEntity.set_format(format)
19
+ end
37
20
 
38
21
  def self.auth auth
39
22
  R3c::BaseEntity.auth auth
40
- end
23
+ end
41
24
 
42
25
 
43
26
  private
@@ -55,10 +38,10 @@ end
55
38
  end
56
39
 
57
40
 
58
- #~ R3c.site('http://localhost:3000/')
59
- #~ R3c.format(:xml)
41
+ R3c.site('http://localhost:3000/')
42
+ R3c.format(:xml)
60
43
 
61
- #~ R3c.auth({api: {key: '8091d55257c4c90b6d56e83322622cb5f4ecee64'}})
44
+ R3c.auth({api: {key: '8091d55257c4c90b6d56e83322622cb5f4ecee64'}})
62
45
 
63
46
  #~ file = File.read('c:\windows-version.txt')
64
47
  #~ puts file.inspect.to_s
@@ -30,7 +30,7 @@ class BaseEntity < ActiveResource::Base
30
30
  self.headers['X-Redmine-API-Key'] = api_key
31
31
  end
32
32
 
33
- def self.basic_aut(params)
33
+ def self.basic_auth(params)
34
34
  self.user= params[:user]
35
35
  self.password= params[:password]
36
36
  end
@@ -41,26 +41,32 @@ class BaseEntity < ActiveResource::Base
41
41
 
42
42
  end
43
43
 
44
-
45
- # ***** NOT yet Working ***** #
44
+ # CRUD on Version
45
+ # Example: R3c.project.find(1).get(:versions)
46
46
  class Version<BaseEntity
47
47
  end
48
48
 
49
-
50
- class WikiPage<BaseEntity
49
+ # CRUD on Membership
50
+ # Example: Get memberships: R3c.project.find(1).get(:memberships)
51
+ # Example: Create a membership: R3c.wiki_page.new
52
+ class Membership<BaseEntity
51
53
  #self.prefix "/projects/editing_item"
52
54
  #self.element_name ""
53
55
  end
54
56
 
55
- class Membership<BaseEntity
57
+ # List wiki on a project
58
+ # R3c.project.find(1).get("wiki/index")
59
+
60
+ # Get a wiki page by name
61
+ # R3c.project.find(1).get("wiki")
62
+
63
+ # Create a WikiPage
64
+ # R3c.wiki_page.new
65
+ class WikiPage<BaseEntity
56
66
  #self.prefix "/projects/editing_item"
57
67
  #self.element_name ""
58
68
  end
59
69
 
60
- class Enumeration<BaseEntity
61
- end
62
- # **************************** #
63
-
64
70
 
65
71
  # CRUD on Project
66
72
  # Call R3c.project.*
@@ -71,7 +77,21 @@ end
71
77
 
72
78
  # CRUD on Issue
73
79
  # Call R3c.issue.*
74
- # Example: R3c.issue.find 1
80
+ # Examples:
81
+ # R3c.issue.find 1
82
+ # issues =R3c.issue.find(:all, params: {tracker_id: 1}) #filtering (with defaul limit)
83
+ # issues =R3c.issue.find(:all, params: { limit: 5, offset:20}) #retrieving with specified limit and offset
84
+ # issues =R3c.issue.find(:all, params: { limit: 5, offset:20, tracker_id: 1}) #filtering and retrieving with specified limit and offset
85
+ # issues= R3c.project.find(1).get(:issues) #retrieving a project issues
86
+ # issues = R3c.issue.find(:all, params: {"query_id" => 12})
87
+ # issues=R3c.issue.find(1, params: {include: "watchers"})
88
+ # similarly you can include
89
+ # - children
90
+ # - attachments
91
+ # - relations
92
+ # - changesets
93
+ # - journals
94
+ # - watchers - Since 2.3.0
75
95
  class Issue<BaseEntity
76
96
  end
77
97
 
@@ -110,6 +130,7 @@ end
110
130
  # CRUD on TimeEntry
111
131
  # Call R3c.time_entry.*
112
132
  # Example: R3c.time_entry.first
133
+ # Example: R3c.project.find(1).time_entries
113
134
  class TimeEntry<BaseEntity
114
135
  end
115
136
 
@@ -122,9 +143,14 @@ end
122
143
 
123
144
  # CRUD on Query
124
145
  # Call R3c.query.find(id)
125
- # Example: R3c.query.find 1
146
+ # Examples:
147
+ # R3c.query.find 1
148
+ # R3c.query.all
149
+ # R3c.query.find :all
150
+ # R3c.issue.find(:all, params: {"query_id" => 12})
126
151
  class Query<BaseEntity
127
- end
152
+ end
153
+
128
154
 
129
155
  end
130
156
 
@@ -0,0 +1,49 @@
1
+ require "rest-client"
2
+
3
+
4
+ module R3c
5
+
6
+ def self.upload(file, format="xml")
7
+ response = RestClient.post("#{R3c::BaseEntity.site}/uploads.#{format}?key=#{R3c::BaseEntity.headers['X-Redmine-API-Key']}", file, {:multipart => true, :content_type => 'application/octet-stream'})
8
+ token = JSON.parse(response)['upload']['token']
9
+ end
10
+
11
+
12
+ #Note: see r3c.rb for example about how to retrieve watchers on an issue
13
+ #Example:
14
+ # R3c.add_watcher(1, 1)
15
+ def self.add_watcher(issue_id, user_id, format="xml")
16
+ #POST /issues/[id]/watchers.[format]
17
+ response = RestClient.post("#{R3c::BaseEntity.site}/issues/#{issue_id}/watchers.#{format}?key=#{R3c::BaseEntity.headers['X-Redmine-API-Key']}", {user_id: user_id})
18
+ return JSON.parse(response) if format == "json"
19
+ response
20
+ end
21
+
22
+ #Example:
23
+ # R3c.remove_watcher(1, 1)
24
+ def self.remove_watcher(issue_id, user_id, format="xml")
25
+ #DELETE /issues/[id]/watchers/[user_id].[format]
26
+ response = RestClient.delete("#{R3c::BaseEntity.site}/issues/#{issue_id}/watchers/#{user_id}.#{format}?key=#{R3c::BaseEntity.headers['X-Redmine-API-Key']}")
27
+ return JSON.parse(response) if format == "json"
28
+ response
29
+ end
30
+
31
+ #Example:
32
+ # R3c.enumerations("issue_priorities")
33
+ def self.enumerations(enumeration, format="xml")
34
+ #GET /enumerations/<enumeration>.[format] #enumeration= "issue_priorities" OR "time_entry_activities"
35
+ response = RestClient.get("#{R3c::BaseEntity.site}/enumerations/#{enumeration}.#{format}?key=#{R3c::BaseEntity.headers['X-Redmine-API-Key']}")
36
+ return JSON.parse(response) if format == "json"
37
+ response
38
+ end
39
+
40
+ #Example:
41
+ # R3c.search("sometext")
42
+ def self.search(q, format = "xml")
43
+ # GET '/search.xml', :q => 'recipe subproject commit', :all_words => ''
44
+ response = RestClient.get("#{R3c::BaseEntity.site}/search.#{format}/?key=#{R3c::BaseEntity.headers['X-Redmine-API-Key']}", {all_words: '', q: q})
45
+ return JSON.parse(response) if format == "json"
46
+ response
47
+ end
48
+
49
+ end
@@ -1,5 +1,5 @@
1
1
  module R3c
2
- VERSION = "0.0.5"
2
+ VERSION = "0.0.6"
3
3
  end
4
4
 
5
5
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: R3c
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Paolo Freuli
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-07-11 00:00:00.000000000 Z
11
+ date: 2016-07-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activeresource
@@ -82,6 +82,7 @@ files:
82
82
  - lib/Gemfile
83
83
  - lib/r3c.rb
84
84
  - lib/r3c/r3c.rb
85
+ - lib/r3c/rest_helper.rb
85
86
  - lib/r3c/version.rb
86
87
  homepage: https://github.com/wuatanabe/R3c
87
88
  licenses: