glynn 1.0.9 → 1.0.10

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/lib/glynn/ftp.rb CHANGED
@@ -19,6 +19,7 @@ module Glynn
19
19
  private
20
20
  def connect
21
21
  Net::FTP.open(host) do |ftp|
22
+ ftp.passive = true
22
23
  ftp.connect(host, port)
23
24
  ftp.login(username, password)
24
25
  yield ftp
@@ -0,0 +1,3 @@
1
+ module Glynn
2
+ VERSION = '1.0.10'
3
+ 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.9
4
+ version: 1.0.10
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,102 +9,53 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-01-31 00:00:00.000000000Z
12
+ date: 2012-05-20 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: rdiscount
16
- requirement: &70171743230860 !ruby/object:Gem::Requirement
15
+ name: bundler
16
+ requirement: &70114419072340 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
20
20
  - !ruby/object:Gem::Version
21
21
  version: '0'
22
- type: :runtime
23
- prerelease: false
24
- version_requirements: *70171743230860
25
- - !ruby/object:Gem::Dependency
26
- name: jekyll
27
- requirement: &70171743230160 !ruby/object:Gem::Requirement
28
- none: false
29
- requirements:
30
- - - ! '>='
31
- - !ruby/object:Gem::Version
32
- version: '0'
33
- type: :runtime
34
- prerelease: false
35
- version_requirements: *70171743230160
36
- - !ruby/object:Gem::Dependency
37
- name: jeweler
38
- requirement: &70171743229540 !ruby/object:Gem::Requirement
39
- none: false
40
- requirements:
41
- - - ! '>='
42
- - !ruby/object:Gem::Version
43
- version: '0'
44
- type: :runtime
45
- prerelease: false
46
- version_requirements: *70171743229540
47
- - !ruby/object:Gem::Dependency
48
- name: sdoc
49
- requirement: &70171743228960 !ruby/object:Gem::Requirement
50
- none: false
51
- requirements:
52
- - - ! '>='
53
- - !ruby/object:Gem::Version
54
- version: '0'
55
- type: :runtime
22
+ type: :development
56
23
  prerelease: false
57
- version_requirements: *70171743228960
24
+ version_requirements: *70114419072340
58
25
  - !ruby/object:Gem::Dependency
59
- name: sdoc-helpers
60
- requirement: &70171743228320 !ruby/object:Gem::Requirement
26
+ name: minitest
27
+ requirement: &70114419105440 !ruby/object:Gem::Requirement
61
28
  none: false
62
29
  requirements:
63
30
  - - ! '>='
64
31
  - !ruby/object:Gem::Version
65
32
  version: '0'
66
- type: :runtime
33
+ type: :development
67
34
  prerelease: false
68
- version_requirements: *70171743228320
35
+ version_requirements: *70114419105440
69
36
  - !ruby/object:Gem::Dependency
70
37
  name: jekyll
71
- requirement: &70171743227780 !ruby/object:Gem::Requirement
38
+ requirement: &70114419104920 !ruby/object:Gem::Requirement
72
39
  none: false
73
40
  requirements:
74
41
  - - ! '>='
75
42
  - !ruby/object:Gem::Version
76
- version: 0.5.4
43
+ version: '0'
77
44
  type: :runtime
78
45
  prerelease: false
79
- version_requirements: *70171743227780
46
+ version_requirements: *70114419104920
80
47
  description: Deploy a jekyll weblog through ftp
81
48
  email: 42@dmathieu.com
82
- executables:
83
- - glynn
49
+ executables: []
84
50
  extensions: []
85
- extra_rdoc_files:
86
- - LICENSE
87
- - README.md
51
+ extra_rdoc_files: []
88
52
  files:
89
- - .rvmrc
90
- - Gemfile
91
- - Gemfile.lock
92
- - LICENSE
93
- - README.md
94
- - Rakefile
95
- - VERSION
96
- - bin/glynn
97
- - glynn.gemspec
98
53
  - lib/glynn.rb
99
54
  - lib/glynn/file.rb
100
55
  - lib/glynn/ftp.rb
101
56
  - lib/glynn/jekyll.rb
102
- - spec/lib/file_spec.rb
103
- - spec/lib/ftp_spec.rb
104
- - spec/lib/jekyll_spec.rb
105
- - spec/spec.opts
106
- - spec/spec_helper.rb
107
- homepage: http://github.com/dmathieu/glynn
57
+ - lib/glynn/version.rb
58
+ homepage: https://github.com/dmathieu/glynn
108
59
  licenses: []
109
60
  post_install_message:
110
61
  rdoc_options: []
@@ -116,9 +67,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
116
67
  - - ! '>='
117
68
  - !ruby/object:Gem::Version
118
69
  version: '0'
119
- segments:
120
- - 0
121
- hash: 3112693191030928112
122
70
  required_rubygems_version: !ruby/object:Gem::Requirement
123
71
  none: false
124
72
  requirements:
@@ -127,12 +75,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
127
75
  version: '0'
128
76
  requirements: []
129
77
  rubyforge_project:
130
- rubygems_version: 1.8.10
78
+ rubygems_version: 1.8.17
131
79
  signing_key:
132
80
  specification_version: 3
133
81
  summary: Deploy a jekyll weblog through ftp
134
- test_files:
135
- - spec/lib/file_spec.rb
136
- - spec/lib/ftp_spec.rb
137
- - spec/lib/jekyll_spec.rb
138
- - spec/spec_helper.rb
82
+ test_files: []
data/.rvmrc DELETED
@@ -1,2 +0,0 @@
1
- rvm use 1.9.2@glynn
2
- rvm_gemset_create_on_use_flag=1
data/Gemfile DELETED
@@ -1,19 +0,0 @@
1
- source "http://gemcutter.org"
2
- #
3
- # Required on every environment
4
- #
5
- gem "rdiscount"
6
- gem "jekyll"
7
- gem "jeweler"
8
- gem "sdoc"
9
- gem "sdoc-helpers"
10
-
11
- #
12
- # Required only for tests
13
- #
14
- group :test do
15
- gem "rspec"
16
- gem "mocha"
17
- gem "fakefs",
18
- :git => 'https://github.com/dmathieu/fakefs.git'
19
- end
data/Gemfile.lock DELETED
@@ -1,59 +0,0 @@
1
- GIT
2
- remote: https://github.com/dmathieu/fakefs.git
3
- revision: 09f238b23772d95e8790235b7d3eee99e431deac
4
- specs:
5
- fakefs (0.3.1)
6
-
7
- GEM
8
- remote: http://gemcutter.org/
9
- specs:
10
- classifier (1.3.3)
11
- fast-stemmer (>= 1.0.0)
12
- diff-lcs (1.1.2)
13
- directory_watcher (1.4.0)
14
- fast-stemmer (1.0.0)
15
- git (1.2.5)
16
- jekyll (0.10.0)
17
- classifier (>= 1.3.1)
18
- directory_watcher (>= 1.1.1)
19
- liquid (>= 1.9.0)
20
- maruku (>= 0.5.9)
21
- jeweler (1.5.2)
22
- bundler (~> 1.0.0)
23
- git (>= 1.2.5)
24
- rake
25
- json (1.5.1)
26
- liquid (2.2.2)
27
- maruku (0.6.0)
28
- syntax (>= 1.0.0)
29
- mocha (0.9.12)
30
- rake (0.8.7)
31
- rdiscount (1.6.8)
32
- rdoc (2.4.3)
33
- rspec (2.5.0)
34
- rspec-core (~> 2.5.0)
35
- rspec-expectations (~> 2.5.0)
36
- rspec-mocks (~> 2.5.0)
37
- rspec-core (2.5.1)
38
- rspec-expectations (2.5.0)
39
- diff-lcs (~> 1.1.2)
40
- rspec-mocks (2.5.0)
41
- sdoc (0.2.20)
42
- json (>= 1.1.3)
43
- rdoc (= 2.4.3)
44
- sdoc-helpers (0.1.4)
45
- sdoc (~> 0.2)
46
- syntax (1.0.0)
47
-
48
- PLATFORMS
49
- ruby
50
-
51
- DEPENDENCIES
52
- fakefs!
53
- jekyll
54
- jeweler
55
- mocha
56
- rdiscount
57
- rspec
58
- sdoc
59
- sdoc-helpers
data/LICENSE DELETED
@@ -1,20 +0,0 @@
1
- Copyright (c) 2009 Damien MATHIEU
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
12
- included 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
17
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md DELETED
@@ -1,48 +0,0 @@
1
- Glynn
2
- =====
3
-
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)
6
-
7
- Installation
8
- ------------
9
-
10
- Glynn comes as a gem. It has no dependencies other than the ruby default libraries.
11
- Install it with gem install.
12
-
13
- gem install glynn --source http://gemcutter.org
14
-
15
- That's it ! You now have the Glynn executable on your machine.
16
- Go to your jekyll project, configure the host and distant directory where the files will be sent.
17
- For example, this is my _config.yml file :
18
-
19
- markdown: rdiscount
20
- pygments: true
21
- auto: true
22
- ftp_host: dmathieu.com
23
- ftp_dir: /web/portfolio
24
-
25
- Glynn will connect itself to the host "dmathieu.com" and send every file to the FTP directory /web/portfolio.
26
- To do yo, you just need to be at the top of your jekyll project. And in a console, enter the following :
27
-
28
- glynn
29
-
30
- Quite simple again. It'll connect to the remote host, ask you for login and password and send the files :)
31
-
32
- Contributing
33
- ------------
34
-
35
- If you think Glynn is great but can be improved, feel free to contribute.
36
- To do so, you can :
37
-
38
- * [Fork](http://help.github.com/forking/) the project
39
- * Do your changes and commit them to your repository
40
- * Test your changes. We won't accept any untested contributions (except if they're not testable).
41
- * Create an [issue](http://github.com/dmathieu/glynn/issues) with a link to your commits.
42
-
43
- And that's it! I'll soon take a look at your issue and review your changes.
44
-
45
- Author
46
- ------------------
47
-
48
- Damien MATHIEU :: 42 (AT|CHEZ) dmathieu.com
data/Rakefile DELETED
@@ -1,35 +0,0 @@
1
- require 'bundler/setup'
2
-
3
- begin
4
- require 'jeweler'
5
- Jeweler::Tasks.new do |gemspec|
6
- gemspec.name = "glynn"
7
- gemspec.summary = "Deploy a jekyll weblog through ftp"
8
- gemspec.description = "Deploy a jekyll weblog through ftp"
9
- gemspec.email = "42@dmathieu.com"
10
- gemspec.homepage = "http://github.com/dmathieu/glynn"
11
- gemspec.authors = ["Damien MATHIEU"]
12
-
13
- gemspec.add_dependency('jekyll', '>= 0.5.4')
14
- end
15
- rescue LoadError
16
- puts "Jeweler not available. Install it with:"
17
- puts "gem install jeweler"
18
- end
19
-
20
- #
21
- # The rspec tasks
22
- #
23
- require 'rspec/core'
24
- require 'rspec/core/rake_task'
25
- task :default => :spec
26
- RSpec::Core::RakeTask.new(:spec)
27
-
28
- #
29
- # The sdoc generator
30
- #
31
- begin
32
- require 'sdoc_helpers'
33
- rescue LoadError
34
- puts "sdoc support not enabled. Please gem install sdoc-helpers."
35
- end
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 1.0.9
data/bin/glynn DELETED
@@ -1,58 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require 'rubygems'
3
- require 'jekyll'
4
- require 'glynn'
5
- $:.unshift File.join(File.dirname(__FILE__), *%w[.. lib])
6
-
7
-
8
- options = {}
9
- case ARGV.size
10
- when 0
11
- when 1
12
- options['destination'] = ARGV[0]
13
- when 2
14
- options['source'] = ARGV[0]
15
- options['destination'] = ARGV[1]
16
- when 4
17
- options['source'] = ARGV[0]
18
- options['destination'] = ARGV[1]
19
- options['ftp_username'] = ARGV[2]
20
- options['ftp_password'] = ARGV[3]
21
- end
22
- options = Jekyll.configuration(options)
23
- ftp_port = (options['ftp_port'] || 21).to_i
24
-
25
- puts "Building site: #{options['source']} -> #{options['destination']}"
26
- jekyll = Glynn::Jekyll.new
27
- jekyll.build
28
- puts "Successfully generated site"
29
-
30
- puts "Sending site over FTP (host: #{options['ftp_host']}, port: #{ftp_port})"
31
- begin
32
- if options['ftp_username'].nil?
33
- print "FTP Username: "
34
- username = $stdin.gets.chomp
35
- else
36
- username = options['ftp_username']
37
- end
38
-
39
- if options['ftp_password'].nil?
40
- print "FTP Password: "
41
- # We hide the entered characters before to ask for the password
42
- system "stty -echo"
43
- password = $stdin.gets.chomp
44
- system "stty echo"
45
- else
46
- password = options['ftp_password']
47
- end
48
- rescue NoMethodError, Interrupt
49
- # When the process is exited, we display the characters again
50
- # And we exit
51
- system "stty echo"
52
- exit
53
- end
54
-
55
- ftp = Glynn::Ftp.new(options['ftp_host'], ftp_port, {:username => username, :password => password})
56
- puts "\r\nConnected to server. Sending site"
57
- ftp.sync(options['destination'], options['ftp_dir'])
58
- puts "Successfully sent site"
data/glynn.gemspec DELETED
@@ -1,78 +0,0 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
- # -*- encoding: utf-8 -*-
5
-
6
- Gem::Specification.new do |s|
7
- s.name = "glynn"
8
- s.version = "1.0.9"
9
-
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["Damien MATHIEU"]
12
- s.date = "2012-01-31"
13
- s.description = "Deploy a jekyll weblog through ftp"
14
- s.email = "42@dmathieu.com"
15
- s.executables = ["glynn"]
16
- s.extra_rdoc_files = [
17
- "LICENSE",
18
- "README.md"
19
- ]
20
- s.files = [
21
- ".rvmrc",
22
- "Gemfile",
23
- "Gemfile.lock",
24
- "LICENSE",
25
- "README.md",
26
- "Rakefile",
27
- "VERSION",
28
- "bin/glynn",
29
- "glynn.gemspec",
30
- "lib/glynn.rb",
31
- "lib/glynn/file.rb",
32
- "lib/glynn/ftp.rb",
33
- "lib/glynn/jekyll.rb",
34
- "spec/lib/file_spec.rb",
35
- "spec/lib/ftp_spec.rb",
36
- "spec/lib/jekyll_spec.rb",
37
- "spec/spec.opts",
38
- "spec/spec_helper.rb"
39
- ]
40
- s.homepage = "http://github.com/dmathieu/glynn"
41
- s.require_paths = ["lib"]
42
- s.rubygems_version = "1.8.10"
43
- s.summary = "Deploy a jekyll weblog through ftp"
44
- s.test_files = [
45
- "spec/lib/file_spec.rb",
46
- "spec/lib/ftp_spec.rb",
47
- "spec/lib/jekyll_spec.rb",
48
- "spec/spec_helper.rb"
49
- ]
50
-
51
- if s.respond_to? :specification_version then
52
- s.specification_version = 3
53
-
54
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
55
- s.add_runtime_dependency(%q<rdiscount>, [">= 0"])
56
- s.add_runtime_dependency(%q<jekyll>, [">= 0"])
57
- s.add_runtime_dependency(%q<jeweler>, [">= 0"])
58
- s.add_runtime_dependency(%q<sdoc>, [">= 0"])
59
- s.add_runtime_dependency(%q<sdoc-helpers>, [">= 0"])
60
- s.add_runtime_dependency(%q<jekyll>, [">= 0.5.4"])
61
- else
62
- s.add_dependency(%q<rdiscount>, [">= 0"])
63
- s.add_dependency(%q<jekyll>, [">= 0"])
64
- s.add_dependency(%q<jeweler>, [">= 0"])
65
- s.add_dependency(%q<sdoc>, [">= 0"])
66
- s.add_dependency(%q<sdoc-helpers>, [">= 0"])
67
- s.add_dependency(%q<jekyll>, [">= 0.5.4"])
68
- end
69
- else
70
- s.add_dependency(%q<rdiscount>, [">= 0"])
71
- s.add_dependency(%q<jekyll>, [">= 0"])
72
- s.add_dependency(%q<jeweler>, [">= 0"])
73
- s.add_dependency(%q<sdoc>, [">= 0"])
74
- s.add_dependency(%q<sdoc-helpers>, [">= 0"])
75
- s.add_dependency(%q<jekyll>, [">= 0.5.4"])
76
- end
77
- end
78
-
@@ -1,20 +0,0 @@
1
- require File.dirname(__FILE__) + '/../spec_helper'
2
-
3
- describe "File module" do
4
- before(:all) do
5
- FakeFS.activate!
6
- end
7
- after(:all) do
8
- FakeFS.deactivate!
9
- end
10
-
11
- it "should return file is text" do
12
- File.open('/test/README', 'w') { |f| f.write 'N/A' }
13
- Glynn::File.is_bin?('/test/README').should eql(true)
14
- end
15
-
16
- it "should return file is binary" do
17
- File.open('/test/README', 'w') { |f| f.write ['0', '1', '2', '3'].pack('A3A3A3') }
18
- Glynn::File.is_bin?('/test/README').should eql(true)
19
- end
20
- end
data/spec/lib/ftp_spec.rb DELETED
@@ -1,79 +0,0 @@
1
- require File.dirname(__FILE__) + '/../spec_helper'
2
-
3
- describe "FTP Interface" do
4
- before(:each) do
5
- # We mock the FTP server
6
- @mock = mock('Ftp server').as_null_object
7
-
8
- # And the puttextfile method
9
- class Net::FTP
10
- def puttextfile; true; end
11
- end
12
- end
13
-
14
- it 'should connect to ftp server' do
15
- Net::FTP.should_receive(:open).with('localhost').and_return(@mock)
16
-
17
- Glynn::Ftp.new('localhost').send(:connect) do |ftp|
18
- ftp.should eql(@mock)
19
- end
20
- end
21
-
22
- it 'should login to ftp server' do
23
- Net::FTP.should_receive(:open).with('localhost').and_return(@mock)
24
-
25
- Glynn::Ftp.new('localhost').send(:connect) do |ftp|
26
- @mock.should_receive(:login).with(nil, nil)
27
- end
28
- end
29
-
30
- it 'should use the given port' do
31
- Net::FTP.should_receive(:open).with('localhost').and_return(@mock)
32
-
33
- Glynn::Ftp.new('localhost', 1234).send(:connect) do |ftp|
34
- @mock.should_receive(:connect).with('localhost', 1234)
35
- ftp.should eql(@mock)
36
- end
37
- end
38
-
39
- it 'should accept a username and password' do
40
- Net::FTP.should_receive(:open).with('localhost').and_return(@mock)
41
-
42
- Glynn::Ftp.new('localhost', 21, {:username => 'username', :password => 'password'}).send(:connect) do |ftp|
43
- @mock.should_receive(:login).with('username', 'password')
44
- ftp.should eql(@mock)
45
- end
46
- end
47
-
48
- it 'should recursively send a directory' do
49
- # We expect NET/FTP to create every file
50
- @mock.should_receive(:putbinaryfile).with('/test/README', '/blah/README').and_return(true)
51
- @mock.should_receive(:putbinaryfile).with('/test/subdir/README', '/blah/subdir/README').and_return(true)
52
- @mock.should_receive(:mkdir).with('/blah')
53
- @mock.should_receive(:mkdir).with('/blah/subdir').twice
54
-
55
- FakeFS do
56
- # We create the fake files and directories
57
- Dir.mkdir('/test') unless File.exists?('/test')
58
- Dir.mkdir('/test/subdir') unless File.exists?('/test')
59
- File.open('/test/README', 'w') { |f| f.write 'N/A' }
60
- File.open('/test/subdir/README', 'w') { |f| f.write 'N/A' }
61
-
62
- # And send them
63
- Glynn::Ftp.new('localhost').send(:send_dir, @mock, '/test', '/blah')
64
- end
65
- end
66
-
67
- it 'should connect itself to the server and send the local file to distant directory' do
68
- FakeFS do
69
- Net::FTP.should_receive(:open).with('localhost').and_return(@mock)
70
- interface = Glynn::Ftp.new('localhost') do |ftp|
71
- @mock.should_receive(:connect).with('localhost', 21)
72
- @mock.should_receive(:login).with(nil, nil)
73
- interface.should_receive(:send_dir).with(@mock, '/test', '/blah')
74
- end
75
-
76
- interface.sync '/test', '/blah'
77
- end
78
- end
79
- end
@@ -1,28 +0,0 @@
1
- require File.dirname(__FILE__) + '/../spec_helper'
2
-
3
- describe "Relation between glynn and jekyll" do
4
- before(:all) do
5
- FakeFS.activate!
6
- File.open('/_config.yml', 'w') { |f| f.write 'auto: true' }
7
- end
8
- after(:all) do
9
- FakeFS.deactivate!
10
- end
11
-
12
- it 'should create a new website' do
13
- jekyll = Glynn::Jekyll.new({ 'source' => '/' })
14
- jekyll.build
15
- end
16
-
17
- it 'should accept the ftp host option' do
18
- File.open('/_config.yml', 'w') { |f| f.write 'ftp_host: example.com' }
19
- options = Jekyll.configuration({'source' => '/'})
20
- options['ftp_host'].should eql('example.com')
21
- end
22
-
23
- it 'should accept the fto dir option' do
24
- File.open('/_config.yml', 'w') { |f| f.write 'ftp_dir: /home/glynn' }
25
- options = Jekyll.configuration({'source' => '/'})
26
- options['ftp_dir'].should eql('/home/glynn')
27
- end
28
- end
data/spec/spec.opts DELETED
@@ -1,4 +0,0 @@
1
- --colour
2
- --format progress
3
- --loadby mtime
4
- --reverse
data/spec/spec_helper.rb DELETED
@@ -1,7 +0,0 @@
1
- require 'rubygems'
2
- require 'mocha'
3
- require 'fakefs/safe'
4
-
5
-
6
- $LOAD_PATH.unshift File.expand_path(File.dirname(__FILE__) + '/../lib')
7
- require 'glynn'