glynn 1.0.5 → 1.0.6

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -1,7 +1,8 @@
1
1
  Glynn
2
2
  =====
3
3
 
4
- Glynn offers you a bin to easily send a jekyll powered blog to your host through FTP.
4
+ Glynn offers you a bin to easily send a jekyll powered blog to your host through FTP.
5
+ [![Travis](http://travis-ci.org/dmathieu/glynn.png)](http://travis-ci.org/dmathieu/glynn)
5
6
 
6
7
  Installation
7
8
  ------------
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.5
1
+ 1.0.6
data/bin/glynn CHANGED
@@ -52,7 +52,7 @@ rescue NoMethodError, Interrupt
52
52
  exit
53
53
  end
54
54
 
55
- ftp = Glynn::Ftp.new(options['ftp_host'], 21, {:username => username, :password => password})
55
+ ftp = Glynn::Ftp.new(options['ftp_host'], options['ftp_port'] || 21, {:username => username, :password => password})
56
56
  puts "\r\nConnected to server. Sending site"
57
57
  ftp.sync(options['destination'], options['ftp_dir'])
58
58
  puts "Successfully sent site"
data/glynn.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{glynn}
8
- s.version = "1.0.5"
8
+ s.version = "1.0.6"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Damien MATHIEU"]
12
- s.date = %q{2011-04-08}
12
+ s.date = %q{2011-07-27}
13
13
  s.default_executable = %q{glynn}
14
14
  s.description = %q{Deploy a jekyll weblog through ftp}
15
15
  s.email = %q{42@dmathieu.com}
@@ -40,7 +40,7 @@ Gem::Specification.new do |s|
40
40
  ]
41
41
  s.homepage = %q{http://github.com/dmathieu/glynn}
42
42
  s.require_paths = ["lib"]
43
- s.rubygems_version = %q{1.5.1}
43
+ s.rubygems_version = %q{1.6.2}
44
44
  s.summary = %q{Deploy a jekyll weblog through ftp}
45
45
  s.test_files = [
46
46
  "spec/lib/file_spec.rb",
data/lib/glynn/file.rb CHANGED
@@ -1,8 +1,8 @@
1
1
  module Glynn
2
2
  class File
3
-
3
+
4
4
  def self.is_bin?(f)
5
5
  %x(file #{f}) !~ /text/
6
6
  end
7
7
  end
8
- end
8
+ end
data/lib/glynn/ftp.rb CHANGED
@@ -3,26 +3,26 @@ require 'net/ftp'
3
3
  module Glynn
4
4
  class Ftp
5
5
  attr_reader :host, :port, :username, :password
6
-
6
+
7
7
  def initialize(host, port = 21, options = Hash.new)
8
8
  options = {:username => nil, :password => nil}.merge(options)
9
9
  @host, @port = host, port
10
10
  @username, @password = options[:username], options[:password]
11
11
  end
12
-
12
+
13
13
  def sync(local, distant)
14
14
  connect do |ftp|
15
15
  send_dir(ftp, local, distant)
16
16
  end
17
17
  end
18
-
18
+
19
19
  private
20
20
  def connect
21
21
  ftp = Net::FTP.new(host, username, password)
22
22
  yield ftp
23
23
  ftp.close
24
24
  end
25
-
25
+
26
26
  def send_dir(ftp, local, distant)
27
27
  begin
28
28
  ftp.mkdir(distant)
@@ -33,7 +33,7 @@ module Glynn
33
33
  Dir.foreach(local) do |file_name|
34
34
  # If the file/directory is hidden (first character is a dot), we ignore it
35
35
  next if file_name =~ /^\./
36
-
36
+
37
37
  if ::File.stat(local + "/" + file_name).directory?
38
38
  # It is a directory, we recursively send it
39
39
  begin
@@ -52,7 +52,7 @@ module Glynn
52
52
  end
53
53
  end
54
54
  end
55
-
55
+
56
56
  end
57
57
  end
58
58
  end
data/lib/glynn/jekyll.rb CHANGED
@@ -3,11 +3,11 @@ require 'jekyll'
3
3
  module Glynn
4
4
  class Jekyll
5
5
  attr_reader :site
6
-
6
+
7
7
  def initialize(options = {})
8
8
  @site = ::Jekyll::Site.new(::Jekyll.configuration(options))
9
9
  end
10
-
10
+
11
11
  #
12
12
  # Builds the website in the ./_site directory.
13
13
  #
@@ -1,5 +1,5 @@
1
1
  require File.dirname(__FILE__) + '/../spec_helper'
2
-
2
+
3
3
  describe "File module" do
4
4
  before(:all) do
5
5
  FakeFS.activate!
@@ -7,14 +7,14 @@ describe "File module" do
7
7
  after(:all) do
8
8
  FakeFS.deactivate!
9
9
  end
10
-
10
+
11
11
  it "should return file is text" do
12
12
  File.open('/test/README', 'w') { |f| f.write 'N/A' }
13
13
  Glynn::File.is_bin?('/test/README').should eql(true)
14
14
  end
15
-
15
+
16
16
  it "should return file is binary" do
17
17
  File.open('/test/README', 'w') { |f| f.write ['0', '1', '2', '3'].pack('A3A3A3') }
18
18
  Glynn::File.is_bin?('/test/README').should eql(true)
19
19
  end
20
- end
20
+ end
data/spec/lib/ftp_spec.rb CHANGED
@@ -1,63 +1,63 @@
1
1
  require File.dirname(__FILE__) + '/../spec_helper'
2
-
2
+
3
3
  describe "FTP Interface" do
4
4
  before(:each) do
5
5
  # We mock the FTP server
6
- @mock = mock('Ftp server', :null_object => true)
7
-
6
+ @mock = mock('Ftp server').as_null_object
7
+
8
8
  # And the puttextfile method
9
9
  class Net::FTP
10
10
  def puttextfile; true; end
11
11
  end
12
12
  end
13
-
13
+
14
14
  it 'should login to ftp server' do
15
15
  @mock.should_receive(:close)
16
16
  Net::FTP.should_receive(:new).with('localhost', nil, nil).and_return(@mock)
17
-
18
-
17
+
18
+
19
19
  Glynn::Ftp.new('localhost').send(:connect) do |ftp|
20
20
  ftp.should eql(@mock)
21
21
  end
22
22
  end
23
-
23
+
24
24
  it 'should accept a username and password' do
25
25
  @mock.should_receive(:close)
26
26
  Net::FTP.should_receive(:new).with('localhost', 'username', 'password').and_return(@mock)
27
-
27
+
28
28
  Glynn::Ftp.new('localhost', 21, {:username => 'username', :password => 'password'}).send(:connect) do |ftp|
29
29
  ftp.should eql(@mock)
30
30
  end
31
31
  end
32
-
32
+
33
33
  it 'should recursively send a directory' do
34
34
  # We expect NET/FTP to create every file
35
35
  @mock.should_receive(:putbinaryfile).with('/test/README', '/blah/README').and_return(true)
36
36
  @mock.should_receive(:putbinaryfile).with('/test/subdir/README', '/blah/subdir/README').and_return(true)
37
37
  @mock.should_receive(:mkdir).with('/blah')
38
38
  @mock.should_receive(:mkdir).with('/blah/subdir').twice
39
-
39
+
40
40
  FakeFS do
41
41
  # We create the fake files and directories
42
42
  Dir.mkdir('/test') unless File.exists?('/test')
43
43
  Dir.mkdir('/test/subdir') unless File.exists?('/test')
44
44
  File.open('/test/README', 'w') { |f| f.write 'N/A' }
45
45
  File.open('/test/subdir/README', 'w') { |f| f.write 'N/A' }
46
-
46
+
47
47
  # And send them
48
48
  Glynn::Ftp.new('localhost').send(:send_dir, @mock, '/test', '/blah')
49
49
  end
50
50
  end
51
-
51
+
52
52
  it 'should connect itself to the server and send the local file to distant directory' do
53
53
  @mock.should_receive(:close)
54
-
54
+
55
55
  FakeFS do
56
56
  interface = Glynn::Ftp.new('localhost')
57
57
  Net::FTP.should_receive(:new).with('localhost', nil, nil).and_return(@mock)
58
58
  interface.should_receive(:send_dir).with(@mock, '/test', '/blah')
59
-
59
+
60
60
  interface.sync '/test', '/blah'
61
61
  end
62
62
  end
63
- end
63
+ end
@@ -1,5 +1,5 @@
1
1
  require File.dirname(__FILE__) + '/../spec_helper'
2
-
2
+
3
3
  describe "Relation between glynn and jekyll" do
4
4
  before(:all) do
5
5
  FakeFS.activate!
@@ -8,21 +8,21 @@ describe "Relation between glynn and jekyll" do
8
8
  after(:all) do
9
9
  FakeFS.deactivate!
10
10
  end
11
-
11
+
12
12
  it 'should create a new website' do
13
13
  jekyll = Glynn::Jekyll.new({ 'source' => '/' })
14
14
  jekyll.build
15
15
  end
16
-
16
+
17
17
  it 'should accept the ftp host option' do
18
18
  File.open('/_config.yml', 'w') { |f| f.write 'ftp_host: example.com' }
19
19
  options = Jekyll.configuration({'source' => '/'})
20
20
  options['ftp_host'].should eql('example.com')
21
21
  end
22
-
22
+
23
23
  it 'should accept the fto dir option' do
24
24
  File.open('/_config.yml', 'w') { |f| f.write 'ftp_dir: /home/glynn' }
25
25
  options = Jekyll.configuration({'source' => '/'})
26
26
  options['ftp_dir'].should eql('/home/glynn')
27
27
  end
28
- end
28
+ end
data/spec/spec_helper.rb CHANGED
@@ -5,8 +5,3 @@ require 'fakefs/safe'
5
5
 
6
6
  $LOAD_PATH.unshift File.expand_path(File.dirname(__FILE__) + '/../lib')
7
7
  require 'glynn'
8
-
9
- RSpec.configure do |config|
10
-
11
-
12
- end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: glynn
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.5
4
+ version: 1.0.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,12 +9,12 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-04-08 00:00:00.000000000 +02:00
12
+ date: 2011-07-27 00:00:00.000000000 +02:00
13
13
  default_executable: glynn
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rdiscount
17
- requirement: &2152256340 !ruby/object:Gem::Requirement
17
+ requirement: &2158401740 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: '0'
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *2152256340
25
+ version_requirements: *2158401740
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: jekyll
28
- requirement: &2152255280 !ruby/object:Gem::Requirement
28
+ requirement: &2158409380 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ! '>='
@@ -33,10 +33,10 @@ dependencies:
33
33
  version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
- version_requirements: *2152255280
36
+ version_requirements: *2158409380
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: jeweler
39
- requirement: &2152254220 !ruby/object:Gem::Requirement
39
+ requirement: &2158410880 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ! '>='
@@ -44,10 +44,10 @@ dependencies:
44
44
  version: '0'
45
45
  type: :runtime
46
46
  prerelease: false
47
- version_requirements: *2152254220
47
+ version_requirements: *2158410880
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: sdoc
50
- requirement: &2152253200 !ruby/object:Gem::Requirement
50
+ requirement: &2158412480 !ruby/object:Gem::Requirement
51
51
  none: false
52
52
  requirements:
53
53
  - - ! '>='
@@ -55,10 +55,10 @@ dependencies:
55
55
  version: '0'
56
56
  type: :runtime
57
57
  prerelease: false
58
- version_requirements: *2152253200
58
+ version_requirements: *2158412480
59
59
  - !ruby/object:Gem::Dependency
60
60
  name: sdoc-helpers
61
- requirement: &2152251760 !ruby/object:Gem::Requirement
61
+ requirement: &2158414160 !ruby/object:Gem::Requirement
62
62
  none: false
63
63
  requirements:
64
64
  - - ! '>='
@@ -66,10 +66,10 @@ dependencies:
66
66
  version: '0'
67
67
  type: :runtime
68
68
  prerelease: false
69
- version_requirements: *2152251760
69
+ version_requirements: *2158414160
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: jekyll
72
- requirement: &2152250920 !ruby/object:Gem::Requirement
72
+ requirement: &2158415880 !ruby/object:Gem::Requirement
73
73
  none: false
74
74
  requirements:
75
75
  - - ! '>='
@@ -77,7 +77,7 @@ dependencies:
77
77
  version: 0.5.4
78
78
  type: :runtime
79
79
  prerelease: false
80
- version_requirements: *2152250920
80
+ version_requirements: *2158415880
81
81
  description: Deploy a jekyll weblog through ftp
82
82
  email: 42@dmathieu.com
83
83
  executables:
@@ -120,7 +120,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
120
120
  version: '0'
121
121
  segments:
122
122
  - 0
123
- hash: -1900938787396399437
123
+ hash: -4347291183296770297
124
124
  required_rubygems_version: !ruby/object:Gem::Requirement
125
125
  none: false
126
126
  requirements:
@@ -129,7 +129,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
129
129
  version: '0'
130
130
  requirements: []
131
131
  rubyforge_project:
132
- rubygems_version: 1.5.1
132
+ rubygems_version: 1.6.2
133
133
  signing_key:
134
134
  specification_version: 3
135
135
  summary: Deploy a jekyll weblog through ftp