crow 0.1.1 → 0.1.2
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/README.markdown +15 -0
- data/lib/crow.rb +12 -3
- data/spec/get_spec.rb +12 -3
- metadata +4 -3
data/README.markdown
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
Crow
|
2
|
+
====
|
3
|
+
|
4
|
+
Easy endpoints for api mocking
|
5
|
+
|
6
|
+
Usage
|
7
|
+
-----
|
8
|
+
|
9
|
+
Make a new instance with `Crow.new( path_to_your_fixtures )`
|
10
|
+
|
11
|
+
You'll probably want to use Artifice (or ShamRack). Using with Artifice is easy, just do `Artifice.activate_with Crow.new(path)`
|
12
|
+
|
13
|
+
Your fixures directory should have a folder for get, post, put, and delete. Right now Crow only does gets, but will do the REST shortly (snicker).
|
14
|
+
|
15
|
+
|
data/lib/crow.rb
CHANGED
@@ -1,11 +1,20 @@
|
|
1
1
|
require 'sinatra'
|
2
2
|
class Crow < Sinatra::Base
|
3
|
-
def initialize(root_path)
|
4
|
-
super
|
3
|
+
def initialize(root_path, opts={})
|
4
|
+
super(nil)
|
5
5
|
@root_path = root_path
|
6
|
+
@opts = opts
|
6
7
|
end
|
7
8
|
|
8
9
|
get "/*" do |path|
|
9
|
-
|
10
|
+
fixture_path = File.join(@root_path, 'get', path)
|
11
|
+
begin
|
12
|
+
response = File.read fixture_path
|
13
|
+
rescue
|
14
|
+
@response.status = 500
|
15
|
+
response = "Couldn't find: #{fixture_path}"
|
16
|
+
puts response if @opts[:verbose]
|
17
|
+
end
|
18
|
+
response
|
10
19
|
end
|
11
20
|
end
|
data/spec/get_spec.rb
CHANGED
@@ -1,12 +1,21 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
+
def get(uri)
|
4
|
+
HTTParty.get(uri)
|
5
|
+
end
|
6
|
+
|
3
7
|
describe Crow, "get" do
|
4
8
|
it "should map top level uris to fixture files" do
|
5
|
-
|
9
|
+
get("http://whatever/simple_get.txt").should == "it worked\n"
|
6
10
|
end
|
7
11
|
|
8
12
|
it "should work with nested routes" do
|
9
|
-
|
13
|
+
get("http://whatever/people/1.json").should == "{'name': 'will'}\n"
|
14
|
+
end
|
15
|
+
|
16
|
+
it "should let us know when the fixture isn't found" do
|
17
|
+
response = get("http://whatever/this/is/not/a/fixture")
|
18
|
+
response.should =~ /Couldn't find/
|
19
|
+
response.code.should == 500
|
10
20
|
end
|
11
|
-
|
12
21
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: crow
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 31
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 0.1.
|
9
|
+
- 2
|
10
|
+
version: 0.1.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Will Leinweber
|
@@ -44,6 +44,7 @@ files:
|
|
44
44
|
- lib/crow.rb
|
45
45
|
- spec/get_spec.rb
|
46
46
|
- spec/spec_helper.rb
|
47
|
+
- README.markdown
|
47
48
|
has_rdoc: true
|
48
49
|
homepage: http://github.com/will/crow
|
49
50
|
licenses: []
|