confluencer 0.2.3 → 0.2.4
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.
- data/.gitignore +1 -0
- data/VERSION +1 -1
- data/confluencer.gemspec +6 -3
- data/lib/confluence/page.rb +18 -4
- data/spec/confluence.yaml.example +7 -0
- data/spec/confluence/page_spec.rb +78 -0
- data/spec/confluencer_spec.rb +0 -2
- data/spec/spec_helper.rb +16 -0
- metadata +6 -3
data/.gitignore
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.4
|
data/confluencer.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{confluencer}
|
8
|
-
s.version = "0.2.
|
8
|
+
s.version = "0.2.4"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Gabor Ratky"]
|
12
|
-
s.date = %q{2010-05-
|
12
|
+
s.date = %q{2010-05-06}
|
13
13
|
s.description = %q{ActiveRecord-like classes to access Confluence through XMLRPC.}
|
14
14
|
s.email = %q{rgabo@rgabostyle.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -35,6 +35,8 @@ Gem::Specification.new do |s|
|
|
35
35
|
"lib/confluencer.rb",
|
36
36
|
"script/console",
|
37
37
|
"script/console_init.rb",
|
38
|
+
"spec/confluence.yaml.example",
|
39
|
+
"spec/confluence/page_spec.rb",
|
38
40
|
"spec/confluencer_spec.rb",
|
39
41
|
"spec/spec.opts",
|
40
42
|
"spec/spec_helper.rb"
|
@@ -45,7 +47,8 @@ Gem::Specification.new do |s|
|
|
45
47
|
s.rubygems_version = %q{1.3.6}
|
46
48
|
s.summary = %q{Useful classes to manage Confluence.}
|
47
49
|
s.test_files = [
|
48
|
-
"spec/
|
50
|
+
"spec/confluence/page_spec.rb",
|
51
|
+
"spec/confluencer_spec.rb",
|
49
52
|
"spec/spec_helper.rb"
|
50
53
|
]
|
51
54
|
|
data/lib/confluence/page.rb
CHANGED
@@ -4,14 +4,22 @@ module Confluence
|
|
4
4
|
record_attr_accessor :parentId => :parent_id
|
5
5
|
record_attr_accessor :space
|
6
6
|
record_attr_accessor :title, :creator, :modifier, :content
|
7
|
-
record_attr_accessor :created, :modified
|
7
|
+
record_attr_accessor :created, :modified, :version
|
8
8
|
record_attr_accessor :url
|
9
9
|
|
10
10
|
def children
|
11
|
-
client.getChildren(page_id)
|
11
|
+
children = client.getChildren(page_id)
|
12
|
+
children.collect { |child| Page.find_by_id(child["id"]) } if children
|
12
13
|
end
|
13
14
|
|
14
15
|
def store
|
16
|
+
# check for existing page
|
17
|
+
existing_page = Page.find_by_id(page_id)
|
18
|
+
|
19
|
+
# take version from existing page if available
|
20
|
+
self.version = existing_page.version if existing_page
|
21
|
+
|
22
|
+
# reinitialize page after storing it
|
15
23
|
initialize(client.storePage(attributes))
|
16
24
|
end
|
17
25
|
|
@@ -20,11 +28,17 @@ module Confluence
|
|
20
28
|
end
|
21
29
|
|
22
30
|
def self.find_by_id(page_id)
|
23
|
-
|
31
|
+
begin
|
32
|
+
self.new(client.getPage(page_id))
|
33
|
+
rescue RuntimeError
|
34
|
+
end
|
24
35
|
end
|
25
36
|
|
26
37
|
def self.find_by_title(space, title)
|
27
|
-
|
38
|
+
begin
|
39
|
+
self.new(client.getPage(space, title))
|
40
|
+
rescue RuntimeError
|
41
|
+
end
|
28
42
|
end
|
29
43
|
end
|
30
44
|
end
|
@@ -0,0 +1,78 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
2
|
+
|
3
|
+
module PageHelperMethods
|
4
|
+
include SessionHelperMethods
|
5
|
+
|
6
|
+
def create_test_page
|
7
|
+
Confluence::Page.new :space => config[:space], :title => config[:page_title], :content => "foobar"
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
describe Confluence::Page do
|
12
|
+
include PageHelperMethods
|
13
|
+
|
14
|
+
after :each do
|
15
|
+
new_session do
|
16
|
+
begin
|
17
|
+
# check whether we need to remove the test page
|
18
|
+
test_page = Confluence::Page.find_by_title config[:space], config[:page_title]
|
19
|
+
test_page.remove if test_page
|
20
|
+
rescue RuntimeError
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should add a new page in Confluence" do
|
26
|
+
page = nil
|
27
|
+
|
28
|
+
new_session do
|
29
|
+
# initialize test page
|
30
|
+
page = create_test_page
|
31
|
+
|
32
|
+
# page_id should be nil
|
33
|
+
page.page_id.should be_nil
|
34
|
+
|
35
|
+
# store page
|
36
|
+
page.store
|
37
|
+
|
38
|
+
# check page_id
|
39
|
+
page.page_id.should_not be_nil
|
40
|
+
end
|
41
|
+
|
42
|
+
# initialize new session
|
43
|
+
new_session do
|
44
|
+
# find page by id
|
45
|
+
new_page = Confluence::Page.find_by_id page.page_id
|
46
|
+
|
47
|
+
# assert page
|
48
|
+
new_page.should_not be_nil
|
49
|
+
new_page.title.should == page.title
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
it "should update an existing page in Confluence" do
|
54
|
+
page = nil
|
55
|
+
|
56
|
+
new_session do
|
57
|
+
# initialize test page
|
58
|
+
page = create_test_page
|
59
|
+
|
60
|
+
# store page
|
61
|
+
page.store
|
62
|
+
end
|
63
|
+
|
64
|
+
new_session do
|
65
|
+
# create test page with same id but updated content
|
66
|
+
updated_page = create_test_page
|
67
|
+
updated_page.page_id = page.page_id
|
68
|
+
updated_page.content = "updated content"
|
69
|
+
|
70
|
+
# store page
|
71
|
+
updated_page.store
|
72
|
+
|
73
|
+
# assert version
|
74
|
+
updated_page.version.should > page.version
|
75
|
+
updated_page.content.should == "updated content"
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
data/spec/confluencer_spec.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
@@ -1,9 +1,25 @@
|
|
1
1
|
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
2
2
|
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
3
|
+
|
3
4
|
require 'confluencer'
|
4
5
|
require 'spec'
|
5
6
|
require 'spec/autorun'
|
7
|
+
require 'yaml'
|
6
8
|
|
7
9
|
Spec::Runner.configure do |config|
|
10
|
+
end
|
11
|
+
|
12
|
+
module SessionHelperMethods
|
13
|
+
def config
|
14
|
+
# load configuration
|
15
|
+
@config ||= YAML.load(File.open(File.join(File.dirname(__FILE__), 'confluence.yaml')))[:test]
|
16
|
+
end
|
8
17
|
|
18
|
+
def new_session
|
19
|
+
# initialize session and yield if block given
|
20
|
+
Confluence::Session.new config do
|
21
|
+
yield if block_given?
|
22
|
+
end
|
23
|
+
end
|
9
24
|
end
|
25
|
+
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 2
|
8
|
-
-
|
9
|
-
version: 0.2.
|
8
|
+
- 4
|
9
|
+
version: 0.2.4
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Gabor Ratky
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-05-
|
17
|
+
date: 2010-05-06 00:00:00 +02:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -59,6 +59,8 @@ files:
|
|
59
59
|
- lib/confluencer.rb
|
60
60
|
- script/console
|
61
61
|
- script/console_init.rb
|
62
|
+
- spec/confluence.yaml.example
|
63
|
+
- spec/confluence/page_spec.rb
|
62
64
|
- spec/confluencer_spec.rb
|
63
65
|
- spec/spec.opts
|
64
66
|
- spec/spec_helper.rb
|
@@ -93,5 +95,6 @@ signing_key:
|
|
93
95
|
specification_version: 3
|
94
96
|
summary: Useful classes to manage Confluence.
|
95
97
|
test_files:
|
98
|
+
- spec/confluence/page_spec.rb
|
96
99
|
- spec/confluencer_spec.rb
|
97
100
|
- spec/spec_helper.rb
|