localwiki_client 0.0.3
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 +2 -0
- data/.rspec +1 -0
- data/.travis.yml +5 -0
- data/Gemfile +3 -0
- data/Guardfile +6 -0
- data/History.txt +13 -0
- data/README.md +58 -0
- data/Rakefile +33 -0
- data/lib/localwiki_client.rb +4 -0
- data/lib/localwiki_client/localwiki_client.rb +70 -0
- data/localwiki_client.gemspec +38 -0
- data/spec/integration/live_saltlake_wiki_spec.rb +20 -0
- data/spec/localwiki_client_spec.rb +74 -0
- metadata +205 -0
data/.gitignore
ADDED
data/.rspec
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--color
|
data/.travis.yml
ADDED
data/Gemfile
ADDED
data/Guardfile
ADDED
data/History.txt
ADDED
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,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:
|