wolverine 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
data/lib/wolverine.rb CHANGED
@@ -1,10 +1,32 @@
1
1
  require 'redis'
2
2
 
3
- require "wolverine/version"
3
+ require 'wolverine/version'
4
4
  require 'wolverine/configuration'
5
5
  require 'wolverine/script'
6
6
 
7
7
  module Wolverine
8
+
9
+ class Directory
10
+ class MissingTemplate < StandardError ; end
11
+ def initialize path
12
+ @path = path
13
+ end
14
+
15
+ def method_missing sym, *args
16
+ resolve sym, *args
17
+ end
18
+
19
+ def resolve sym, *args
20
+ if File.directory?(path = @path + sym.to_s)
21
+ Directory.new(path)
22
+ elsif File.exists?(path = @path + "#{sym}.lua")
23
+ Wolverine.call path, *args
24
+ else
25
+ raise MissingTemplate
26
+ end
27
+ end
28
+ end
29
+
8
30
  def self.config
9
31
  @config ||= Configuration.new
10
32
  end
@@ -13,8 +35,15 @@ module Wolverine
13
35
  config.redis
14
36
  end
15
37
 
38
+ def self.method_missing sym, *args
39
+ Directory.new(config.script_path).resolve(sym, *args)
40
+ rescue Directory::MissingTemplate
41
+ super
42
+ end
43
+
16
44
  def self.call(file, *args)
17
- Script.new(full_path(file)).call(redis, *args)
45
+ pathname = file.kind_of?(Pathname) ? file : full_path(file)
46
+ Script.new(pathname).call(redis, *args)
18
47
  end
19
48
 
20
49
  def self.full_path(file)
@@ -1,3 +1,3 @@
1
1
  module Wolverine
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -11,6 +11,10 @@ class WolverineTest < MiniTest::Unit::TestCase
11
11
  assert_equal Pathname.new('foo/bar.lua'), Wolverine.full_path('bar')
12
12
  end
13
13
 
14
+ def test_finding_a_file
15
+ assert_equal 3, Wolverine.three
16
+ end
17
+
14
18
  def test_redis
15
19
  assert_equal :redis, Wolverine.redis
16
20
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wolverine
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-03-01 00:00:00.000000000 Z
12
+ date: 2012-03-02 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: redis
16
- requirement: &70311257068780 !ruby/object:Gem::Requirement
16
+ requirement: &70182207074200 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70311257068780
24
+ version_requirements: *70182207074200
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: mocha
27
- requirement: &70311257065340 !ruby/object:Gem::Requirement
27
+ requirement: &70182207088260 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70311257065340
35
+ version_requirements: *70182207088260
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: minitest
38
- requirement: &70311257101280 !ruby/object:Gem::Requirement
38
+ requirement: &70182207086280 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,7 +43,7 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70311257101280
46
+ version_requirements: *70182207086280
47
47
  description: Wolverine provides a simple way to run server-side redis scripts from
48
48
  a rails app
49
49
  email: