middleman-tapirgo 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +1 -0
- data/Gemfile +18 -0
- data/LICENSE +20 -0
- data/README.md +36 -0
- data/Rakefile +26 -0
- data/lib/middleman-tapirgo/extension.rb +42 -0
- data/lib/middleman-tapirgo/pkg-info.rb +6 -0
- data/lib/middleman-tapirgo/syncable_item.rb +39 -0
- data/lib/middleman-tapirgo/syncer.rb +46 -0
- data/lib/middleman-tapirgo.rb +8 -0
- data/lib/middleman_extension.rb +1 -0
- data/middleman-tapirgo.gemspec +31 -0
- data/spec/lib/middleman-tapirgo/syncable_item_spec.rb +79 -0
- data/spec/lib/middleman-tapirgo/syncer_spec.rb +123 -0
- data/spec/resources/index.html +2 -0
- data/spec/spec_helper.rb +6 -0
- metadata +130 -0
data/.gitignore
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
Gemfile.lock
|
data/Gemfile
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
source 'https://rubygems.org'
|
2
|
+
|
3
|
+
# Specify your gem's dependencies in middleman-deploy.gemspec
|
4
|
+
gemspec
|
5
|
+
|
6
|
+
group :development do
|
7
|
+
gem "rake", "~> 0.9.2"
|
8
|
+
gem "rdoc", "~> 3.9"
|
9
|
+
gem "yard", "~> 0.8.0"
|
10
|
+
end
|
11
|
+
|
12
|
+
group :test do
|
13
|
+
gem "cucumber", "~> 1.2.0"
|
14
|
+
gem "fivemat"
|
15
|
+
gem "aruba", "~> 0.4.11"
|
16
|
+
gem "rspec", "~> 2.7"
|
17
|
+
gem "simplecov"
|
18
|
+
end
|
data/LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2013 Robert Beekman (@matsimitsu)
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be included
|
12
|
+
in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
17
|
+
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
18
|
+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
19
|
+
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
20
|
+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
Middleman TapirGo - Sync generated content from [middleman](http://middlemanapp.com/) to [TapirGo](http://tapirgo.com)
|
2
|
+
|
3
|
+
|
4
|
+
# QUICK START
|
5
|
+
|
6
|
+
## Step 1
|
7
|
+
|
8
|
+
Edit `Gemfile`, and add:
|
9
|
+
|
10
|
+
gem "middleman-tapirgo"
|
11
|
+
|
12
|
+
Then run:
|
13
|
+
|
14
|
+
bundle install
|
15
|
+
|
16
|
+
## Step 2 - setup
|
17
|
+
|
18
|
+
**These settings are required.**
|
19
|
+
|
20
|
+
Edit `config.rb`, and add:
|
21
|
+
|
22
|
+
activate :tapirgo do |tapir|
|
23
|
+
tapir.api_key = "[Your tapirgo api key]"
|
24
|
+
end
|
25
|
+
|
26
|
+
## Step 3
|
27
|
+
|
28
|
+
Run middleman build, after compiling your site, your content will be
|
29
|
+
pushed to TapirGo
|
30
|
+
|
31
|
+
middleman build
|
32
|
+
|
33
|
+
## Thanks
|
34
|
+
|
35
|
+
Based on the middleman-deploy gem by
|
36
|
+
[Tom Vaughan](https://github.com/tvaughan/middleman-deploy).
|
data/Rakefile
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'bundler'
|
2
|
+
Bundler::GemHelper.install_tasks
|
3
|
+
|
4
|
+
task :test => ['rspec']
|
5
|
+
require "middleman-tapirgo/pkg-info"
|
6
|
+
|
7
|
+
PACKAGE = "#{Middleman::Tapirgo::PACKAGE}"
|
8
|
+
VERSION = "#{Middleman::Tapirgo::VERSION}"
|
9
|
+
|
10
|
+
task :package do
|
11
|
+
system "gem build #{PACKAGE}.gemspec"
|
12
|
+
end
|
13
|
+
|
14
|
+
task :install => :package do
|
15
|
+
Dir.chdir("pkg") do
|
16
|
+
system "gem install #{PACKAGE}-#{VERSION}"
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
task :release => :package do
|
21
|
+
Dir.chdir("pkg") do
|
22
|
+
system "gem push #{PACKAGE}-#{VERSION}"
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
task :default => :test
|
@@ -0,0 +1,42 @@
|
|
1
|
+
# Require core library
|
2
|
+
require "middleman-core"
|
3
|
+
|
4
|
+
# Extension namespace
|
5
|
+
module Middleman
|
6
|
+
module Tapirgo
|
7
|
+
|
8
|
+
class Options < Struct.new(:api_key); end
|
9
|
+
|
10
|
+
class << self
|
11
|
+
|
12
|
+
def options
|
13
|
+
@@options
|
14
|
+
end
|
15
|
+
|
16
|
+
def registered(app, options_hash={}, &block)
|
17
|
+
options = Options.new(options_hash)
|
18
|
+
yield options if block_given?
|
19
|
+
|
20
|
+
options.api_key ||= nil
|
21
|
+
|
22
|
+
app.after_build do |builder|
|
23
|
+
::Middleman::Tapirgo::Syncer.new(options).sync
|
24
|
+
end
|
25
|
+
|
26
|
+
@@options = options
|
27
|
+
|
28
|
+
app.send :include, Helpers
|
29
|
+
end
|
30
|
+
|
31
|
+
alias :included :registered
|
32
|
+
|
33
|
+
end
|
34
|
+
|
35
|
+
module Helpers
|
36
|
+
def options
|
37
|
+
::Middleman::Tapirgo.options
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
module Middleman
|
2
|
+
module Tapirgo
|
3
|
+
|
4
|
+
class SyncableItem
|
5
|
+
|
6
|
+
def initialize(resource)
|
7
|
+
@resource = resource
|
8
|
+
end
|
9
|
+
|
10
|
+
def content
|
11
|
+
@resource.render(:layout => nil)
|
12
|
+
end
|
13
|
+
|
14
|
+
def published_on
|
15
|
+
Time.parse(@resource.data['date'])
|
16
|
+
rescue
|
17
|
+
File.mtime(@resource.source_file)
|
18
|
+
end
|
19
|
+
|
20
|
+
def title
|
21
|
+
@resource.data['title'] || @resource.path
|
22
|
+
end
|
23
|
+
|
24
|
+
def link
|
25
|
+
@resource.path
|
26
|
+
end
|
27
|
+
|
28
|
+
def to_hash
|
29
|
+
{
|
30
|
+
:title => title,
|
31
|
+
:content => content,
|
32
|
+
:link => link,
|
33
|
+
:published_on => published_on
|
34
|
+
}
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
module Middleman
|
2
|
+
module Tapirgo
|
3
|
+
|
4
|
+
class Syncer
|
5
|
+
|
6
|
+
attr_reader :options
|
7
|
+
def initialize(options={})
|
8
|
+
@options = options
|
9
|
+
end
|
10
|
+
|
11
|
+
def inst
|
12
|
+
::Middleman::Application.server.inst
|
13
|
+
end
|
14
|
+
|
15
|
+
def uri
|
16
|
+
URI("http://tapirgo.com/api/1/push_article.json?secret=#{options[:api_key]}")
|
17
|
+
end
|
18
|
+
|
19
|
+
def syncable_items
|
20
|
+
@syncable_items ||= inst.sitemap.resources.select { |r| r.ext == '.html' }
|
21
|
+
end
|
22
|
+
|
23
|
+
def sync
|
24
|
+
return unless options[:api_key]
|
25
|
+
|
26
|
+
syncable_items.each do |r|
|
27
|
+
syncable_item = Middleman::Tapirgo::SyncableItem.new(r)
|
28
|
+
response = send_to_tapirgo(syncable_item)
|
29
|
+
if response.code != '200'
|
30
|
+
puts "Failed sending #{syncable_item.link} to TapirGo"
|
31
|
+
puts "Response #{response.code} #{response.message}"
|
32
|
+
break
|
33
|
+
end
|
34
|
+
end
|
35
|
+
puts "Synced #{syncable_items.length} items to TapirGo"
|
36
|
+
end
|
37
|
+
|
38
|
+
def send_to_tapirgo(item)
|
39
|
+
req = Net::HTTP::Post.new(uri.path, initheader = {'Content-Type' =>'application/json'})
|
40
|
+
req.body = JSON.generate(item)
|
41
|
+
Net::HTTP.new(uri.host, uri.port).start {|http| http.request(req) }
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
require "middleman-tapirgo"
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "middleman-tapirgo/pkg-info"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = Middleman::Tapirgo::PACKAGE
|
7
|
+
s.version = Middleman::Tapirgo::VERSION
|
8
|
+
s.platform = Gem::Platform::RUBY
|
9
|
+
s.authors = ["Robert Beekman"]
|
10
|
+
s.email = ["robert@matsimitsu.nl"]
|
11
|
+
s.homepage = "http://github.com/matsimitsu/middleman-tapirgo/"
|
12
|
+
s.summary = %q{Sync middleman content to TapirGO}
|
13
|
+
s.description = %q{Sync middleman content to TapirGO}
|
14
|
+
s.license = "MIT"
|
15
|
+
|
16
|
+
s.files = `git ls-files`.split("\n")
|
17
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
18
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
19
|
+
s.require_paths = ["lib"]
|
20
|
+
|
21
|
+
# The version of middleman-core your extension depends on
|
22
|
+
s.add_runtime_dependency("middleman-core", [">= 3.0.0"])
|
23
|
+
|
24
|
+
# Additional dependencies
|
25
|
+
s.add_runtime_dependency("json")
|
26
|
+
|
27
|
+
# Test dependencies
|
28
|
+
s.add_development_dependency 'rspec'
|
29
|
+
s.add_development_dependency 'webmock'
|
30
|
+
|
31
|
+
end
|
@@ -0,0 +1,79 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Middleman::Tapirgo::SyncableItem do
|
4
|
+
|
5
|
+
let(:resource) do
|
6
|
+
mock(
|
7
|
+
:render => 'story about moo',
|
8
|
+
:data => {
|
9
|
+
'date' => '01-01-2001 10:00:00 UTC',
|
10
|
+
'title' => 'moo'
|
11
|
+
},
|
12
|
+
:path => 'index.html',
|
13
|
+
:source_file => '/resources/index.html'
|
14
|
+
)
|
15
|
+
end
|
16
|
+
let(:syncable_item) { Middleman::Tapirgo::SyncableItem.new(resource) }
|
17
|
+
|
18
|
+
describe "#content" do
|
19
|
+
|
20
|
+
it "should call render on the resource" do
|
21
|
+
resource.should_receive(:render).with(:layout => nil)
|
22
|
+
end
|
23
|
+
|
24
|
+
after { syncable_item.content }
|
25
|
+
end
|
26
|
+
|
27
|
+
describe "#published_on" do
|
28
|
+
subject { syncable_item.published_on }
|
29
|
+
|
30
|
+
it { should == Time.parse('01-01-2001 10:00:00 UTC') }
|
31
|
+
|
32
|
+
context "when data['time'] is missing" do
|
33
|
+
let(:resource) do
|
34
|
+
mock(
|
35
|
+
:data => {},
|
36
|
+
:source_file => '/resources/index.html'
|
37
|
+
)
|
38
|
+
end
|
39
|
+
|
40
|
+
it "sould call File.mtime" do
|
41
|
+
File.should_receive(:mtime).with('/resources/index.html')
|
42
|
+
end
|
43
|
+
|
44
|
+
after { syncable_item.published_on }
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
describe "#title"do
|
49
|
+
subject { syncable_item.title }
|
50
|
+
|
51
|
+
it { should == 'moo' }
|
52
|
+
|
53
|
+
context "without title in the data" do
|
54
|
+
let(:resource) { mock(:data => {}, :path => 'index.html') }
|
55
|
+
|
56
|
+
it { should == 'index.html' }
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
describe "#link" do
|
61
|
+
subject { syncable_item.link }
|
62
|
+
|
63
|
+
it { should == 'index.html' }
|
64
|
+
end
|
65
|
+
|
66
|
+
describe "#to_hash" do
|
67
|
+
subject { syncable_item.to_hash }
|
68
|
+
|
69
|
+
it "should return a TapirGo compatible hash" do
|
70
|
+
should == {
|
71
|
+
:title => 'moo',
|
72
|
+
:content => 'story about moo',
|
73
|
+
:link => 'index.html',
|
74
|
+
:published_on => Time.parse('01-01-2001 10:00:00 UTC')
|
75
|
+
}
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
end
|
@@ -0,0 +1,123 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Middleman::Tapirgo::Syncer do
|
4
|
+
|
5
|
+
let(:syncer) { Middleman::Tapirgo::Syncer.new(:api_key => 'bananas') }
|
6
|
+
before { syncer.stub(:puts => true) }
|
7
|
+
|
8
|
+
describe "#inst" do
|
9
|
+
subject { syncer.inst.class.name }
|
10
|
+
|
11
|
+
it "should return an instance of middleman" do
|
12
|
+
should == 'Middleman::Application::MiddlemanApplication1'
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
describe "#options" do
|
17
|
+
subject { syncer.options }
|
18
|
+
|
19
|
+
it "should return a hash with the options" do
|
20
|
+
should == { :api_key => 'bananas' }
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
describe "#uri" do
|
25
|
+
subject { syncer.uri.to_s }
|
26
|
+
|
27
|
+
it "should return the correct URI" do
|
28
|
+
should == "http://tapirgo.com/api/1/push_article.json?secret=bananas"
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
describe "#syncable_items" do
|
33
|
+
let(:resources) { [mock(:ext => '.html'), mock(:ext => '.css')] }
|
34
|
+
|
35
|
+
before do
|
36
|
+
syncer.stub_chain(:inst, :sitemap, :resources => resources)
|
37
|
+
end
|
38
|
+
subject { syncer.syncable_items }
|
39
|
+
|
40
|
+
it "should return an array with html files from the sitemap" do
|
41
|
+
should == [resources.first]
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
describe "sync" do
|
46
|
+
let(:resource) { mock(:ext => '.html') }
|
47
|
+
let(:syncable_item) { mock(:to_hash => {'a' => 'b'}, :link => 'index.html') }
|
48
|
+
let(:response) { mock(:code => '200') }
|
49
|
+
before do
|
50
|
+
Middleman::Tapirgo::SyncableItem.stub(:new => syncable_item)
|
51
|
+
syncer.stub(
|
52
|
+
:syncable_items => [resource],
|
53
|
+
:send_to_tapirgo => response
|
54
|
+
)
|
55
|
+
end
|
56
|
+
|
57
|
+
describe "with api key" do
|
58
|
+
|
59
|
+
it "should get a new syncable item" do
|
60
|
+
Middleman::Tapirgo::SyncableItem.
|
61
|
+
should_receive(:new).
|
62
|
+
with(resource)
|
63
|
+
end
|
64
|
+
|
65
|
+
it "should send the item to tapirgo" do
|
66
|
+
syncer.should_receive(:send_to_tapirgo).with(syncable_item)
|
67
|
+
end
|
68
|
+
|
69
|
+
context "when the respone code is not 200: OK" do
|
70
|
+
before { response.stub(:code => '404', :message => 'not found') }
|
71
|
+
|
72
|
+
it "should puts a message telling the user" do
|
73
|
+
syncer.
|
74
|
+
should_receive(:puts).
|
75
|
+
with('Failed sending index.html to TapirGo')
|
76
|
+
|
77
|
+
syncer.
|
78
|
+
should_receive(:puts).
|
79
|
+
with('Response 404 not found')
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
after { syncer.sync }
|
84
|
+
end
|
85
|
+
|
86
|
+
context "without api_key" do
|
87
|
+
let(:syncer_without_api_key) do
|
88
|
+
Middleman::Tapirgo::Syncer.new
|
89
|
+
end
|
90
|
+
|
91
|
+
it "should not call syncable items" do
|
92
|
+
syncer_without_api_key.should_not_receive(:syncable_items)
|
93
|
+
end
|
94
|
+
|
95
|
+
after { syncer_without_api_key.sync }
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
describe "#send_to_tapirgo" do
|
100
|
+
let(:item) { mock(:to_hash => {'a' => 'b'}) }
|
101
|
+
before do
|
102
|
+
stub_request(:post, "http://tapirgo.com/api/1/push_article.json").
|
103
|
+
with(:body => "{\"a\":\"b\"}",
|
104
|
+
:headers => {'Accept'=>'*/*', 'Content-Type'=>'application/json'}).
|
105
|
+
to_return(:status => 200, :body => "", :headers => {})
|
106
|
+
|
107
|
+
syncer.send_to_tapirgo(item)
|
108
|
+
end
|
109
|
+
|
110
|
+
it "should post the item to tapirgo" do
|
111
|
+
WebMock.should have_requested(
|
112
|
+
:post, "http://tapirgo.com/api/1/push_article.json"
|
113
|
+
).with(
|
114
|
+
:body => "{\"a\":\"b\"}",
|
115
|
+
:headers => {
|
116
|
+
'Accept' => '*/*',
|
117
|
+
'Content-Type' => 'application/json'
|
118
|
+
}
|
119
|
+
).once
|
120
|
+
end
|
121
|
+
end
|
122
|
+
|
123
|
+
end
|
data/spec/spec_helper.rb
ADDED
metadata
ADDED
@@ -0,0 +1,130 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: middleman-tapirgo
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 0
|
8
|
+
- 1
|
9
|
+
version: 0.0.1
|
10
|
+
platform: ruby
|
11
|
+
authors:
|
12
|
+
- Robert Beekman
|
13
|
+
autorequire:
|
14
|
+
bindir: bin
|
15
|
+
cert_chain: []
|
16
|
+
|
17
|
+
date: 2013-06-08 00:00:00 +02:00
|
18
|
+
default_executable:
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
21
|
+
name: middleman-core
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - ">="
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
segments:
|
28
|
+
- 3
|
29
|
+
- 0
|
30
|
+
- 0
|
31
|
+
version: 3.0.0
|
32
|
+
type: :runtime
|
33
|
+
version_requirements: *id001
|
34
|
+
- !ruby/object:Gem::Dependency
|
35
|
+
name: json
|
36
|
+
prerelease: false
|
37
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - ">="
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
segments:
|
42
|
+
- 0
|
43
|
+
version: "0"
|
44
|
+
type: :runtime
|
45
|
+
version_requirements: *id002
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: rspec
|
48
|
+
prerelease: false
|
49
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - ">="
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
segments:
|
54
|
+
- 0
|
55
|
+
version: "0"
|
56
|
+
type: :development
|
57
|
+
version_requirements: *id003
|
58
|
+
- !ruby/object:Gem::Dependency
|
59
|
+
name: webmock
|
60
|
+
prerelease: false
|
61
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
62
|
+
requirements:
|
63
|
+
- - ">="
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
segments:
|
66
|
+
- 0
|
67
|
+
version: "0"
|
68
|
+
type: :development
|
69
|
+
version_requirements: *id004
|
70
|
+
description: Sync middleman content to TapirGO
|
71
|
+
email:
|
72
|
+
- robert@matsimitsu.nl
|
73
|
+
executables: []
|
74
|
+
|
75
|
+
extensions: []
|
76
|
+
|
77
|
+
extra_rdoc_files: []
|
78
|
+
|
79
|
+
files:
|
80
|
+
- .gitignore
|
81
|
+
- Gemfile
|
82
|
+
- LICENSE
|
83
|
+
- README.md
|
84
|
+
- Rakefile
|
85
|
+
- lib/middleman-tapirgo.rb
|
86
|
+
- lib/middleman-tapirgo/extension.rb
|
87
|
+
- lib/middleman-tapirgo/pkg-info.rb
|
88
|
+
- lib/middleman-tapirgo/syncable_item.rb
|
89
|
+
- lib/middleman-tapirgo/syncer.rb
|
90
|
+
- lib/middleman_extension.rb
|
91
|
+
- middleman-tapirgo.gemspec
|
92
|
+
- spec/lib/middleman-tapirgo/syncable_item_spec.rb
|
93
|
+
- spec/lib/middleman-tapirgo/syncer_spec.rb
|
94
|
+
- spec/resources/index.html
|
95
|
+
- spec/spec_helper.rb
|
96
|
+
has_rdoc: true
|
97
|
+
homepage: http://github.com/matsimitsu/middleman-tapirgo/
|
98
|
+
licenses:
|
99
|
+
- MIT
|
100
|
+
post_install_message:
|
101
|
+
rdoc_options: []
|
102
|
+
|
103
|
+
require_paths:
|
104
|
+
- lib
|
105
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
106
|
+
requirements:
|
107
|
+
- - ">="
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
segments:
|
110
|
+
- 0
|
111
|
+
version: "0"
|
112
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
113
|
+
requirements:
|
114
|
+
- - ">="
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
segments:
|
117
|
+
- 0
|
118
|
+
version: "0"
|
119
|
+
requirements: []
|
120
|
+
|
121
|
+
rubyforge_project:
|
122
|
+
rubygems_version: 1.3.6
|
123
|
+
signing_key:
|
124
|
+
specification_version: 3
|
125
|
+
summary: Sync middleman content to TapirGO
|
126
|
+
test_files:
|
127
|
+
- spec/lib/middleman-tapirgo/syncable_item_spec.rb
|
128
|
+
- spec/lib/middleman-tapirgo/syncer_spec.rb
|
129
|
+
- spec/resources/index.html
|
130
|
+
- spec/spec_helper.rb
|