confluencer 0.4.4 → 0.4.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.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.4
1
+ 0.4.6
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{confluencer}
8
- s.version = "0.4.4"
8
+ s.version = "0.4.6"
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-14}
12
+ s.date = %q{2010-05-17}
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 = [
@@ -54,7 +54,7 @@ Gem::Specification.new do |s|
54
54
  s.homepage = %q{http://github.com/rgabo/confluencer}
55
55
  s.rdoc_options = ["--charset=UTF-8"]
56
56
  s.require_paths = ["lib"]
57
- s.rubygems_version = %q{1.3.6}
57
+ s.rubygems_version = %q{1.3.7}
58
58
  s.summary = %q{Useful classes to manage Confluence.}
59
59
  s.test_files = [
60
60
  "spec/confluence/bookmark_spec.rb",
@@ -72,7 +72,7 @@ Gem::Specification.new do |s|
72
72
  current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
73
73
  s.specification_version = 3
74
74
 
75
- if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
75
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
76
76
  s.add_development_dependency(%q<rspec>, [">= 1.3.0"])
77
77
  s.add_runtime_dependency(%q<log4r>, [">= 1.1.7"])
78
78
  else
@@ -44,12 +44,12 @@ module Confluence
44
44
  end
45
45
  end
46
46
 
47
- def store
47
+ def store(args = {})
48
48
  # always set .bookmarks as the parent page
49
49
  self.parent_id = Page.find(:space => space, :title => Space::BOOKMARKS_PAGE_TITLE).page_id
50
50
 
51
51
  # continue with storing the page
52
- super
52
+ super(args)
53
53
  end
54
54
 
55
55
  def to_hash
@@ -1,5 +1,7 @@
1
1
  module Confluence
2
2
  class Page < Record
3
+ INVALID_TITLE_CHARS = ":@/\\|^#;[]{}<>"
4
+
3
5
  class Details < Hash
4
6
  REGEXP = /\{details:label=([^\}]+)\}([^\{}]*)\{details\}/m
5
7
  PAIR_REGEXP = /([^:]+):([^\n]+)/m
@@ -81,7 +83,7 @@ module Confluence
81
83
  children.collect { |child| klass.find(:id => child["id"]) } if children
82
84
  end
83
85
 
84
- def store
86
+ def store(args = {})
85
87
  unless self.version
86
88
  # check for existing page by id or title
87
89
  existing_page = if page_id
@@ -92,8 +94,14 @@ module Confluence
92
94
 
93
95
  # take page_id and version from existing page if available
94
96
  if existing_page
95
- self.page_id = existing_page.page_id
96
- self.version = existing_page.version
97
+ if args[:recreate_if_exists]
98
+ # remove existing page
99
+ existing_page.remove
100
+ else
101
+ # update page with page_id and version info
102
+ self.page_id = existing_page.page_id
103
+ self.version = existing_page.version
104
+ end
97
105
  end
98
106
  end
99
107
 
@@ -136,4 +144,10 @@ module Confluence
136
144
  end
137
145
  end
138
146
  end
147
+ end
148
+
149
+ class String
150
+ def to_page_title
151
+ self.delete(Confluence::Page::INVALID_TITLE_CHARS).strip
152
+ end
139
153
  end
metadata CHANGED
@@ -1,12 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: confluencer
3
3
  version: !ruby/object:Gem::Version
4
+ hash: 3
4
5
  prerelease: false
5
6
  segments:
6
7
  - 0
7
8
  - 4
8
- - 4
9
- version: 0.4.4
9
+ - 6
10
+ version: 0.4.6
10
11
  platform: ruby
11
12
  authors:
12
13
  - Gabor Ratky
@@ -14,16 +15,18 @@ autorequire:
14
15
  bindir: bin
15
16
  cert_chain: []
16
17
 
17
- date: 2010-05-14 00:00:00 +02:00
18
+ date: 2010-05-17 00:00:00 +02:00
18
19
  default_executable:
19
20
  dependencies:
20
21
  - !ruby/object:Gem::Dependency
21
22
  name: rspec
22
23
  prerelease: false
23
24
  requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
24
26
  requirements:
25
27
  - - ">="
26
28
  - !ruby/object:Gem::Version
29
+ hash: 27
27
30
  segments:
28
31
  - 1
29
32
  - 3
@@ -35,9 +38,11 @@ dependencies:
35
38
  name: log4r
36
39
  prerelease: false
37
40
  requirement: &id002 !ruby/object:Gem::Requirement
41
+ none: false
38
42
  requirements:
39
43
  - - ">="
40
44
  - !ruby/object:Gem::Version
45
+ hash: 29
41
46
  segments:
42
47
  - 1
43
48
  - 1
@@ -98,23 +103,27 @@ rdoc_options:
98
103
  require_paths:
99
104
  - lib
100
105
  required_ruby_version: !ruby/object:Gem::Requirement
106
+ none: false
101
107
  requirements:
102
108
  - - ">="
103
109
  - !ruby/object:Gem::Version
110
+ hash: 3
104
111
  segments:
105
112
  - 0
106
113
  version: "0"
107
114
  required_rubygems_version: !ruby/object:Gem::Requirement
115
+ none: false
108
116
  requirements:
109
117
  - - ">="
110
118
  - !ruby/object:Gem::Version
119
+ hash: 3
111
120
  segments:
112
121
  - 0
113
122
  version: "0"
114
123
  requirements: []
115
124
 
116
125
  rubyforge_project:
117
- rubygems_version: 1.3.6
126
+ rubygems_version: 1.3.7
118
127
  signing_key:
119
128
  specification_version: 3
120
129
  summary: Useful classes to manage Confluence.