framework_fixture 0.2.0 → 0.2.1
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/.travis.yml +2 -1
- data/framework_fixture.gemspec +2 -1
- data/lib/framework_fixture.rb +28 -25
- data/spec/framework_fixture_spec.rb +23 -12
- metadata +17 -7
data/.travis.yml
CHANGED
data/framework_fixture.gemspec
CHANGED
@@ -6,7 +6,7 @@ $:.unshift lib unless $:.include?(lib)
|
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "framework_fixture"
|
9
|
-
s.version = '0.2.
|
9
|
+
s.version = '0.2.1'
|
10
10
|
s.platform = Gem::Platform::RUBY
|
11
11
|
s.authors = ["Winton Welsh"]
|
12
12
|
s.email = ["mail@wintoni.us"]
|
@@ -23,6 +23,7 @@ Gem::Specification.new do |s|
|
|
23
23
|
s.add_development_dependency "rails", "~> 3.0"
|
24
24
|
s.add_development_dependency "sinatra", "~> 1.0"
|
25
25
|
s.add_development_dependency "rspec", "~> 1.0"
|
26
|
+
s.add_development_dependency "stasis", "~> 0.0"
|
26
27
|
|
27
28
|
s.add_dependency "rack-test", "=0.6.1"
|
28
29
|
end
|
data/lib/framework_fixture.rb
CHANGED
@@ -31,31 +31,34 @@ class FrameworkFixture
|
|
31
31
|
@build += "/sinatra#{@exact_version[0..0]}"
|
32
32
|
@app = lambda { Application.new }
|
33
33
|
req = @build + "/application.rb"
|
34
|
+
elsif stasis
|
35
|
+
@build += "/stasis#{@exact_version[0..0]}"
|
36
|
+
@app = lambda do
|
37
|
+
Stasis.new(@build, "#{@build}_output")
|
38
|
+
end
|
34
39
|
end
|
35
40
|
|
36
|
-
|
37
|
-
if
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
FileUtils.mkdir_p @build
|
43
|
-
end
|
41
|
+
unless File.exists?(@build)
|
42
|
+
if cmd
|
43
|
+
puts "Generating framework build: #{cmd}"
|
44
|
+
puts `#{cmd}`
|
45
|
+
else
|
46
|
+
FileUtils.mkdir_p @build
|
44
47
|
end
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
48
|
+
end
|
49
|
+
|
50
|
+
if @config[@framework] && config = @config[@framework][@loose_version]
|
51
|
+
config.each do |dir, files|
|
52
|
+
files.each do |f|
|
53
|
+
if File.exists?(from = "#{@root}/#{dir}/#{File.basename(f)}")
|
54
|
+
FileUtils.mkdir_p File.dirname("#{@build}/#{f}")
|
55
|
+
FileUtils.cp from, "#{@build}/#{f}"
|
53
56
|
end
|
54
57
|
end
|
55
58
|
end
|
56
|
-
|
57
|
-
require req
|
58
59
|
end
|
60
|
+
|
61
|
+
require req if req
|
59
62
|
end
|
60
63
|
|
61
64
|
def generate(root)
|
@@ -71,10 +74,6 @@ class FrameworkFixture
|
|
71
74
|
@config = YAML::load(@config)
|
72
75
|
end
|
73
76
|
|
74
|
-
def rails
|
75
|
-
@loose_version if @framework == 'rails'
|
76
|
-
end
|
77
|
-
|
78
77
|
def require_gem
|
79
78
|
set_vars
|
80
79
|
|
@@ -89,10 +88,12 @@ class FrameworkFixture
|
|
89
88
|
@framework = 'rails'
|
90
89
|
elsif ENV['SINATRA']
|
91
90
|
@framework = 'sinatra'
|
91
|
+
elsif ENV['STASIS']
|
92
|
+
@framework = 'stasis'
|
92
93
|
end
|
93
94
|
|
94
95
|
if @framework
|
95
|
-
@loose_version = ENV['RAILS'] || ENV['SINATRA']
|
96
|
+
@loose_version = ENV['RAILS'] || ENV['SINATRA'] || ENV['STASIS']
|
96
97
|
|
97
98
|
if @loose_version.match(/\d*/)[0].length == @loose_version.length
|
98
99
|
@loose_version = "<#{@loose_version.to_i + 1}"
|
@@ -100,8 +101,10 @@ class FrameworkFixture
|
|
100
101
|
end
|
101
102
|
end
|
102
103
|
|
103
|
-
|
104
|
-
|
104
|
+
%w(rails sinatra stasis).each do |method|
|
105
|
+
define_method method do
|
106
|
+
@loose_version if @framework == method
|
107
|
+
end
|
105
108
|
end
|
106
109
|
|
107
110
|
FrameworkFixture.set_vars
|
@@ -3,15 +3,20 @@ require 'spec_helper'
|
|
3
3
|
if FrameworkFixture.framework
|
4
4
|
describe FrameworkFixture do
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
6
|
+
unless ENV['STASIS']
|
7
|
+
include Rack::Test::Methods
|
8
|
+
|
9
|
+
def app
|
10
|
+
FrameworkFixture.app.call
|
11
|
+
end
|
10
12
|
end
|
11
13
|
|
12
14
|
before(:all) do
|
13
|
-
@framework = ENV['RAILS'] ?
|
14
|
-
|
15
|
+
@framework = ENV['RAILS'] ?
|
16
|
+
'rails' : ENV['SINATRA'] ?
|
17
|
+
'sinatra' : ENV['STASIS'] ?
|
18
|
+
'stasis' : nil
|
19
|
+
@exact_version = ENV['RAILS'] || ENV['SINATRA'] || ENV['STASIS']
|
15
20
|
@loose_version = @exact_version ? "<#{@exact_version.to_i + 1}" : nil
|
16
21
|
end
|
17
22
|
|
@@ -80,16 +85,22 @@ if FrameworkFixture.framework
|
|
80
85
|
req += "/config/environment.rb"
|
81
86
|
elsif @framework == 'sinatra'
|
82
87
|
req += "/application.rb"
|
88
|
+
elsif @framework == 'stasis'
|
89
|
+
req = nil
|
90
|
+
end
|
91
|
+
if req
|
92
|
+
$".include?(req).should == true
|
83
93
|
end
|
84
|
-
$".include?(req).should == true
|
85
94
|
end
|
86
95
|
end
|
87
96
|
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
97
|
+
unless ENV['STASIS']
|
98
|
+
describe :rack_test do
|
99
|
+
|
100
|
+
it "should have a pulse" do
|
101
|
+
get "/pulse"
|
102
|
+
last_response.body.should == '1'
|
103
|
+
end
|
93
104
|
end
|
94
105
|
end
|
95
106
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: framework_fixture
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -75,6 +75,22 @@ dependencies:
|
|
75
75
|
- - ~>
|
76
76
|
- !ruby/object:Gem::Version
|
77
77
|
version: '1.0'
|
78
|
+
- !ruby/object:Gem::Dependency
|
79
|
+
name: stasis
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
82
|
+
requirements:
|
83
|
+
- - ~>
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: '0.0'
|
86
|
+
type: :development
|
87
|
+
prerelease: false
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ~>
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '0.0'
|
78
94
|
- !ruby/object:Gem::Dependency
|
79
95
|
name: rack-test
|
80
96
|
requirement: !ruby/object:Gem::Requirement
|
@@ -130,18 +146,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
130
146
|
- - ! '>='
|
131
147
|
- !ruby/object:Gem::Version
|
132
148
|
version: '0'
|
133
|
-
segments:
|
134
|
-
- 0
|
135
|
-
hash: -3136945747678737813
|
136
149
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
137
150
|
none: false
|
138
151
|
requirements:
|
139
152
|
- - ! '>='
|
140
153
|
- !ruby/object:Gem::Version
|
141
154
|
version: '0'
|
142
|
-
segments:
|
143
|
-
- 0
|
144
|
-
hash: -3136945747678737813
|
145
155
|
requirements: []
|
146
156
|
rubyforge_project:
|
147
157
|
rubygems_version: 1.8.24
|