localwiki_client 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1,2 @@
1
+ .idea
2
+ Gemfile.lock
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --color
data/.travis.yml ADDED
@@ -0,0 +1,5 @@
1
+ language: ruby
2
+ rvm:
3
+ - 1.9.3
4
+ - jruby-19mode # JRuby in 1.9 mode
5
+ - rbx-19mode
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source 'http://rubygems.org'
2
+
3
+ gemspec
data/Guardfile ADDED
@@ -0,0 +1,6 @@
1
+ guard 'rspec', :cli => "--color --format d" do
2
+ watch(%r{^spec/.+_spec\.rb$})
3
+ watch(%r{^lib/(.+)\.rb$}) { "spec" }
4
+ watch('spec/helper.rb') { "spec" }
5
+ end
6
+
data/History.txt ADDED
@@ -0,0 +1,13 @@
1
+ === 0.0.3 / 2013-01-05
2
+
3
+ * Renamed to localwiki_client
4
+ * #total_resources now uses &limit=1
5
+ * #page_by_name
6
+
7
+ === 0.0.2 / 2013-01-03
8
+
9
+ * Path and docs fixes
10
+
11
+ === 0.0.1 / 2013-01-03
12
+
13
+ * It's Alive!
data/README.md ADDED
@@ -0,0 +1,58 @@
1
+ LocalwikiClient
2
+ ===============
3
+
4
+ Synopsis
5
+ --------
6
+
7
+ A thin client for the Localwiki API
8
+
9
+ http://localwiki.readthedocs.org/en/latest/api.html
10
+
11
+ Installation
12
+ ------------
13
+
14
+ $ gem install localwiki_client
15
+
16
+ Usage
17
+ -----
18
+
19
+ ## Example
20
+
21
+ require 'localwiki_client'
22
+ wiki = LocalwikiClient.new 'seattlewiki.net'
23
+ wiki.site_name
24
+ => SeattleWiki
25
+ wiki.total_resources('user')
26
+ => 47
27
+
28
+ Contributing
29
+ ------------
30
+
31
+ To get your improvements included, please fork and submit a pull request.
32
+ Bugs and/or failing tests are very appreciated.
33
+
34
+ LICENSE
35
+ -------
36
+
37
+ (The MIT License)
38
+
39
+ Copyright (c) 2013 Brandon Faloona, Seth Vincent
40
+
41
+ Permission is hereby granted, free of charge, to any person obtaining
42
+ a copy of this software and associated documentation files (the
43
+ 'Software'), to deal in the Software without restriction, including
44
+ without limitation the rights to use, copy, modify, merge, publish,
45
+ distribute, sublicense, and/or sell copies of the Software, and to
46
+ permit persons to whom the Software is furnished to do so, subject to
47
+ the following conditions:
48
+
49
+ The above copyright notice and this permission notice shall be
50
+ included in all copies or substantial portions of the Software.
51
+
52
+ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
53
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
54
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
55
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
56
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
57
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
58
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/Rakefile ADDED
@@ -0,0 +1,33 @@
1
+ require 'rake'
2
+ require 'rspec/core'
3
+ require 'rspec/core/rake_task'
4
+
5
+ desc 'Default: run tests'
6
+ task :default => :test
7
+
8
+ desc "Run specs"
9
+ RSpec::Core::RakeTask.new do |t|
10
+ t.pattern = "./spec/*_spec.rb"
11
+ t.rspec_opts = ['-f d']
12
+ end
13
+
14
+ desc "Run tests"
15
+ task :test do
16
+ Rake::Task['spec'].invoke
17
+ end
18
+
19
+ desc "Run integration tests"
20
+ RSpec::Core::RakeTask.new(:integration) do |t|
21
+ t.pattern = "spec/integration/*_spec.rb"
22
+ t.rspec_opts = ['-f d']
23
+ end
24
+
25
+ desc "Flog the code! (*nix only)"
26
+ task :flog do
27
+ system('find lib -name \*.rb | xargs flog')
28
+ end
29
+
30
+ desc "Detailed Flog report! (*nix only)"
31
+ task :flog_detail do
32
+ system('find lib -name \*.rb | xargs flog -d')
33
+ end
@@ -0,0 +1,4 @@
1
+ $:.unshift(File.dirname(__FILE__)) unless
2
+ $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
3
+
4
+ require 'localwiki_client/localwiki_client'
@@ -0,0 +1,70 @@
1
+ require 'rest-client'
2
+ require 'json/pure'
3
+
4
+ ##
5
+ # A client that wraps the localwiki api for a given server instance
6
+ #
7
+ class LocalwikiClient
8
+
9
+ attr_accessor :hostname # hostname of the server we'd like to point at
10
+ attr_reader :site_name # site resource - display name of wiki
11
+ attr_reader :time_zone # site resource - time zone of server, e.g. 'America/Chicago'
12
+ attr_reader :language_code # site resource - language code of the server, e.g. 'en-us'
13
+
14
+ ##
15
+ # Creating a LocalWikiClient instance will get it's site resource data
16
+ #
17
+ # LocalwikiClient.new 'seattlewiki.net'
18
+ #
19
+ def initialize hostname
20
+ @hostname = hostname
21
+ collect_site_details
22
+ end
23
+
24
+ ##
25
+ # Get site resource and set ivars
26
+ #
27
+ def collect_site_details
28
+ site = get_resource('site/1')
29
+ @site_name = site['name']
30
+ @time_zone = site['time_zone']
31
+ @language_code = site['language_code']
32
+ end
33
+
34
+ ##
35
+ # http get request
36
+ # url is formatted as http://[url-to-wiki]/[thing-you-want]&format=json
37
+ #
38
+ def get(resource,timeout=120)
39
+ response = RestClient::Request.execute(
40
+ :method => :get,
41
+ :url => 'http://' + @hostname + resource + '&format=json',
42
+ :timeout => timeout)
43
+ JSON.parse(response.body)
44
+ end
45
+
46
+ ##
47
+ # http get of a specfic type of resource
48
+ # resource_types are "site", "page", "user", "file", "map"
49
+ # limit is an integer
50
+ # filters is a querystring param in the form "&option=value"
51
+ def get_resource(content_type,limit=0,filters='')
52
+ resource = '/api/' + content_type + '?limit=' + limit.to_s + filters
53
+ get(resource)
54
+ end
55
+
56
+ ##
57
+ # Request total_count of given resource
58
+ #
59
+ def total_resources(content_type)
60
+ get_resource(content_type,1)["meta"]["total_count"]
61
+ end
62
+
63
+ ##
64
+ # Return a page that matches name ("The Page Name" or "The_Page_Name")
65
+ #
66
+ def page_by_name(name)
67
+ get_resource("page/#{name.gsub!(/\s/, '_')}")
68
+ end
69
+
70
+ end
@@ -0,0 +1,38 @@
1
+ Gem::Specification.new do |s|
2
+ s.name = 'localwiki_client'
3
+ s.version = '0.0.3'
4
+ s.authors = ["Brandon Faloona", "Seth Vincent"]
5
+ s.description = %{ A thin wrapper around the Localwiki API. }
6
+ s.summary = "localwiki_client-#{s.version}"
7
+ s.email = 'brandon@faloona.net'
8
+ s.homepage = "http://github.com/bfaloona/LocalwikiClient"
9
+ s.license = 'MIT'
10
+ s.platform = Gem::Platform::RUBY
11
+ s.required_ruby_version = '>= 1.9.2'
12
+
13
+ s.add_dependency('rest-client')
14
+ s.add_dependency('json')
15
+
16
+ s.add_development_dependency('rake')
17
+ s.add_development_dependency('rspec', '>= 2.9.0')
18
+ s.add_development_dependency('rspec-mocks', '>= 2.9.0')
19
+ s.add_development_dependency('rb-fsevent')
20
+
21
+ unless ENV['TRAVIS'] == 'true'
22
+ s.add_development_dependency('flog')
23
+ s.add_development_dependency('guard')
24
+ unless ENV['RUBY_VERSION'] && ENV['RUBY_VERSION'].match(/jruby|rbx/)
25
+ s.add_development_dependency('guard-rspec')
26
+ end
27
+ end
28
+
29
+
30
+ s.post_install_message =
31
+ %{
32
+ Thank you for installing localwiki_client #{s.version}
33
+ }
34
+
35
+ s.files = `git ls-files`.split("\n")
36
+ s.rdoc_options = ["--charset=UTF-8"]
37
+ s.require_path = "lib"
38
+ end
@@ -0,0 +1,20 @@
1
+ $LOAD_PATH.unshift File.expand_path("../../lib", __FILE__)
2
+ require 'localwiki_client'
3
+
4
+ describe 'LIVE saltlakewiki.org' do
5
+
6
+ subject { LocalwikiClient.new 'saltlakewiki.org' }
7
+
8
+ context '#time_zone' do
9
+ it {subject.time_zone.should eq 'America/Chicago' }
10
+ end
11
+
12
+ context '#language_code' do
13
+ it {subject.language_code.should eq 'en-us'}
14
+ end
15
+
16
+ context '#total_resources("user")' do
17
+ it {subject.total_resources('user').to_i.should > 2}
18
+ end
19
+
20
+ end
@@ -0,0 +1,74 @@
1
+ $LOAD_PATH.unshift File.expand_path("../lib", __FILE__)
2
+ require 'localwiki_client'
3
+ require 'rspec/mocks'
4
+
5
+ describe 'LocalwikiClient' do
6
+
7
+ context 'Site details' do
8
+ subject { LocalwikiClient.new 'mockwiki.foo' }
9
+
10
+ before(:each) do
11
+ response = double('response')
12
+ response.stub(:body) {
13
+ %q[{"domain": "mockwiki.foo", "id": 1, "language_code": "en-us", "license": "<p>Except where otherwise noted, this content is licensed under a <a rel=\" license\" href=\"http://creativecommons.org/licenses/by/3.0/\">Creative Commons Attribution License</a>. See <a href=\"/Copyrights\">Copyrights.</p>", "name": "Salt Lake Wiki", "resource_uri": "/api/site/1", "signup_tos": "I agree to release my contributions under the <a rel=\"license\" href=\"http://creativecommons.org/licenses/by/3.0/\" target=\"_blank\">Creative Commons-By license</a>, unless noted otherwise. See <a href=\"/Copyrights\" target=\"_blank\">Copyrights</a>.","time_zone": "America/Chicago"}]
14
+ }
15
+ RestClient::Request.should_receive(:execute
16
+ ).with(
17
+ {:method => :get,
18
+ :url => 'http://mockwiki.foo/api/site/1?limit=0&format=json',
19
+ :timeout => 120}
20
+ ).and_return(response)
21
+ end
22
+
23
+ it {should respond_to :hostname}
24
+ it {should respond_to :site_name}
25
+ it {should respond_to :time_zone}
26
+ it {should respond_to :language_code}
27
+ it {should respond_to :total_resources}
28
+ it {should respond_to :page_by_name}
29
+
30
+ context 'mockwiki.foo' do
31
+
32
+ context '#time_zone' do
33
+ it {subject.time_zone.should eq 'America/Chicago' }
34
+ end
35
+
36
+ context '#language_code' do
37
+ it {subject.language_code.should eq 'en-us'}
38
+ end
39
+
40
+ context '#total_resources("user")' do
41
+ it 'should eq 6' do
42
+ response = double('response')
43
+ response.stub(:body) {
44
+ %q<{"meta": {"limit": 0, "offset": 0, "total_count": 6}, "objects": [{"date_joined": "2012-10-05T21:12:34.103559", "first_name": "", "last_name": "", "resource_uri": "", "username": "AnonymousUser"}, {"date_joined": "2012-11-02T15:24:44.621040", "first_name": "Kris", "last_name": "Trujillo", "resource_uri": "/api/user/3", "username": "kristrujillo"}, {"date_joined": "2012-10-17T14:01:40.778496", "first_name": "Tod", "last_name": "Robbins", "resource_uri": "/api/user/2", "username": "todrobbins"}, {"date_joined": "2012-11-20T21:47:33.152069", "first_name": "Jessie", "last_name": "", "resource_uri": "/api/user/4", "username": "jessiepech"}, {"date_joined": "2012-10-05T21:12:33", "first_name": "Andrew", "last_name": "Sullivan", "resource_uri": "/api/user/1", "username": "licyeus"}, {"date_joined": "2012-12-08T15:33:29.251275", "first_name": "Ryan", "last_name": "", "resource_uri": "/api/user/5", "username": "saltlakeryan"}]}>
45
+ }
46
+ RestClient::Request.should_receive(:execute
47
+ ).with(
48
+ {:method => :get,
49
+ :url => 'http://mockwiki.foo/api/user?limit=1&format=json',
50
+ :timeout => 120}
51
+ ).and_return(response)
52
+ subject.total_resources('user').should eq 6
53
+ end
54
+ end
55
+
56
+ context "#page_by_name('Luna Park Cafe')" do
57
+ it 'has content matching "amusement park"' do
58
+ response = double('response')
59
+ response.stub(:body) {
60
+ %q[{"content": "<p>\n\t </p>\n<table class=\"details\">\n\t<tbody>\n\t\t<tr>\n\t\t\t<td style=\"background-color: rgb(232, 236, 239);\">\n\t\t\t\t<strong>Location</strong></td>\n\t\t</tr>\n\t\t<tr>\n\t\t\t<td>\n\t\t\t\t<p>\n\t\t\t\t\t2918 Southwest Avalon Way</p>\n\t\t\t\t<p>\n\t\t\t\t\tSeattle, WA 98126</p>\n\t\t\t</td>\n\t\t</tr>\n\t\t<tr>\n\t\t\t<td style=\"background-color: rgb(232, 236, 239);\">\n\t\t\t\t<strong>Hours</strong></td>\n\t\t</tr>\n\t\t<tr>\n\t\t\t<td>\n\t\t\t\t7am - 10pm Everyday</td>\n\t\t</tr>\n\t\t<tr>\n\t\t\t<td style=\"background-color: rgb(232, 236, 239);\">\n\t\t\t\t<strong>Phone</strong></td>\n\t\t</tr>\n\t\t<tr>\n\t\t\t<td>\n\t\t\t\t(206) 935-7250</td>\n\t\t</tr>\n\t\t<tr>\n\t\t\t<td style=\"background-color: rgb(232, 236, 239);\">\n\t\t\t\t<strong>Website</strong></td>\n\t\t</tr>\n\t\t<tr>\n\t\t\t<td>\n\t\t\t\t<a href=\"http://www.lunaparkcafe.com/\">lunaparkcafe.com</a></td>\n\t\t</tr>\n\t\t<tr>\n\t\t\t<td style=\"background-color: rgb(232, 236, 239);\">\n\t\t\t\t<strong>Established</strong></td>\n\t\t</tr>\n\t\t<tr>\n\t\t\t<td>\n\t\t\t\tMarch 18th, 1989</td>\n\t\t</tr>\n\t\t<tr>\n\t\t\t<td style=\"background-color: rgb(232, 236, 239);\">\n\t\t\t\t<strong>Price range</strong></td>\n\t\t</tr>\n\t\t<tr>\n\t\t\t<td>\n\t\t\t\t$10</td>\n\t\t</tr>\n\t\t<tr>\n\t\t\t<td style=\"background-color: rgb(232, 236, 239);\">\n\t\t\t\t<strong>Payment Methods</strong></td>\n\t\t</tr>\n\t\t<tr>\n\t\t\t<td>\n\t\t\t\tCash, credit cards</td>\n\t\t</tr>\n\t\t<tr>\n\t\t\t<td style=\"background-color: rgb(232, 236, 239);\">\n\t\t\t\t<strong>Wheelchair accessibility</strong></td>\n\t\t</tr>\n\t\t<tr>\n\t\t\t<td>\n\t\t\t\tNo stairs.</td>\n\t\t</tr>\n\t</tbody>\n</table>\n<p>\n\tFantastic diner filled with historic references to the Luna Park amusement park.</p>\n<p>\n\t<span class=\"image_frame image_frame_border\"><img src=\"_files/luna_park_cafe_front.jpg\" style=\"width: 300px; height: 225px;\"></span><span class=\"image_frame image_frame_border\"><img src=\"_files/luna_park_cafe_batmobile_ride.jpg\" style=\"width: 300px; height: 225px;\"></span></p>\n<h3>\n\tRelated Links</h3>\n<ul>\n\t<li>\n\t\t<a href=\"Restaurants\">Restaurants</a></li>\n</ul>\n<p>\n\t </p>\n", "id": 572, "map": "/api/map/Luna_Park_Cafe", "name": "Luna Park Cafe", "page_tags": "/api/page_tags/Luna_Park_Cafe", "resource_uri": "/api/page/Luna_Park_Cafe", "slug": "luna park cafe"}]
61
+ }
62
+ RestClient::Request.should_receive(:execute
63
+ ).with(
64
+ {:method => :get,
65
+ :url => 'http://mockwiki.foo/api/page/Luna_Park_Cafe?limit=0&format=json',
66
+ :timeout => 120}
67
+ ).and_return(response)
68
+ subject.page_by_name('Luna Park Cafe')['content'].should match(/amusement park/)
69
+ end
70
+ end
71
+
72
+ end
73
+ end
74
+ end
metadata ADDED
@@ -0,0 +1,205 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: localwiki_client
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.3
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Brandon Faloona
9
+ - Seth Vincent
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+ date: 2013-01-05 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rest-client
17
+ requirement: !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
22
+ version: '0'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ! '>='
29
+ - !ruby/object:Gem::Version
30
+ version: '0'
31
+ - !ruby/object:Gem::Dependency
32
+ name: json
33
+ requirement: !ruby/object:Gem::Requirement
34
+ none: false
35
+ requirements:
36
+ - - ! '>='
37
+ - !ruby/object:Gem::Version
38
+ version: '0'
39
+ type: :runtime
40
+ prerelease: false
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ! '>='
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ - !ruby/object:Gem::Dependency
48
+ name: rake
49
+ requirement: !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ! '>='
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ - !ruby/object:Gem::Dependency
64
+ name: rspec
65
+ requirement: !ruby/object:Gem::Requirement
66
+ none: false
67
+ requirements:
68
+ - - ! '>='
69
+ - !ruby/object:Gem::Version
70
+ version: 2.9.0
71
+ type: :development
72
+ prerelease: false
73
+ version_requirements: !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ! '>='
77
+ - !ruby/object:Gem::Version
78
+ version: 2.9.0
79
+ - !ruby/object:Gem::Dependency
80
+ name: rspec-mocks
81
+ requirement: !ruby/object:Gem::Requirement
82
+ none: false
83
+ requirements:
84
+ - - ! '>='
85
+ - !ruby/object:Gem::Version
86
+ version: 2.9.0
87
+ type: :development
88
+ prerelease: false
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ none: false
91
+ requirements:
92
+ - - ! '>='
93
+ - !ruby/object:Gem::Version
94
+ version: 2.9.0
95
+ - !ruby/object:Gem::Dependency
96
+ name: rb-fsevent
97
+ requirement: !ruby/object:Gem::Requirement
98
+ none: false
99
+ requirements:
100
+ - - ! '>='
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
103
+ type: :development
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ none: false
107
+ requirements:
108
+ - - ! '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: flog
113
+ requirement: !ruby/object:Gem::Requirement
114
+ none: false
115
+ requirements:
116
+ - - ! '>='
117
+ - !ruby/object:Gem::Version
118
+ version: '0'
119
+ type: :development
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ none: false
123
+ requirements:
124
+ - - ! '>='
125
+ - !ruby/object:Gem::Version
126
+ version: '0'
127
+ - !ruby/object:Gem::Dependency
128
+ name: guard
129
+ requirement: !ruby/object:Gem::Requirement
130
+ none: false
131
+ requirements:
132
+ - - ! '>='
133
+ - !ruby/object:Gem::Version
134
+ version: '0'
135
+ type: :development
136
+ prerelease: false
137
+ version_requirements: !ruby/object:Gem::Requirement
138
+ none: false
139
+ requirements:
140
+ - - ! '>='
141
+ - !ruby/object:Gem::Version
142
+ version: '0'
143
+ - !ruby/object:Gem::Dependency
144
+ name: guard-rspec
145
+ requirement: !ruby/object:Gem::Requirement
146
+ none: false
147
+ requirements:
148
+ - - ! '>='
149
+ - !ruby/object:Gem::Version
150
+ version: '0'
151
+ type: :development
152
+ prerelease: false
153
+ version_requirements: !ruby/object:Gem::Requirement
154
+ none: false
155
+ requirements:
156
+ - - ! '>='
157
+ - !ruby/object:Gem::Version
158
+ version: '0'
159
+ description: ! ' A thin wrapper around the Localwiki API. '
160
+ email: brandon@faloona.net
161
+ executables: []
162
+ extensions: []
163
+ extra_rdoc_files: []
164
+ files:
165
+ - .gitignore
166
+ - .rspec
167
+ - .travis.yml
168
+ - Gemfile
169
+ - Guardfile
170
+ - History.txt
171
+ - README.md
172
+ - Rakefile
173
+ - lib/localwiki_client.rb
174
+ - lib/localwiki_client/localwiki_client.rb
175
+ - localwiki_client.gemspec
176
+ - spec/integration/live_saltlake_wiki_spec.rb
177
+ - spec/localwiki_client_spec.rb
178
+ homepage: http://github.com/bfaloona/LocalwikiClient
179
+ licenses:
180
+ - MIT
181
+ post_install_message: ! "\n Thank you for installing localwiki_client 0.0.3\n "
182
+ rdoc_options:
183
+ - --charset=UTF-8
184
+ require_paths:
185
+ - lib
186
+ required_ruby_version: !ruby/object:Gem::Requirement
187
+ none: false
188
+ requirements:
189
+ - - ! '>='
190
+ - !ruby/object:Gem::Version
191
+ version: 1.9.2
192
+ required_rubygems_version: !ruby/object:Gem::Requirement
193
+ none: false
194
+ requirements:
195
+ - - ! '>='
196
+ - !ruby/object:Gem::Version
197
+ version: '0'
198
+ requirements: []
199
+ rubyforge_project:
200
+ rubygems_version: 1.8.24
201
+ signing_key:
202
+ specification_version: 3
203
+ summary: localwiki_client-0.0.3
204
+ test_files: []
205
+ has_rdoc: