action-jackson 0.0.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.
@@ -0,0 +1,4 @@
1
+ *.gem
2
+ .bundle
3
+ Gemfile.lock
4
+ pkg/*
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in action_jackson.gemspec
4
+ gemspec
@@ -0,0 +1 @@
1
+ require 'bundler/gem_tasks'
@@ -0,0 +1,19 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "action_jackson/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "action-jackson"
7
+ s.version = ActionJackson::VERSION
8
+ s.authors = ["Blake Taylor"]
9
+ s.email = ["blakefrost@gmail.com"]
10
+ s.homepage = ""
11
+ s.summary = %q{DSL for defining dependencies between rails actions and before_filters.}
12
+
13
+ s.rubyforge_project = "action_jackson"
14
+
15
+ s.files = `git ls-files`.split("\n")
16
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
17
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
18
+ s.require_paths = ["lib"]
19
+ end
@@ -0,0 +1,5 @@
1
+ require "action_jackson/version"
2
+ require "action_jackson/dsl"
3
+
4
+ module ActionJackson
5
+ end
@@ -0,0 +1,45 @@
1
+ module ActionJackson
2
+ module DSL
3
+ def action(opts, &block)
4
+ @@deps ||= {}
5
+ case opts
6
+ when String
7
+ return super(opts)
8
+ when Symbol
9
+ name = opts
10
+ when Hash
11
+ name = opts.keys.first
12
+ @@deps[name] = opts[name]
13
+ end
14
+ define_method(name, block)
15
+ end
16
+
17
+ # How else can we hook into closing the class?
18
+ def register_filters
19
+ @@deps.each do |dependent, dependencies|
20
+ case dependencies
21
+ when Symbol
22
+ register_filter(dependent, dependencies)
23
+ when Array
24
+ dependencies.each do |dependency|
25
+ register_filter(dependent, dependency)
26
+ end
27
+ end
28
+ end
29
+ end
30
+
31
+ def register_filter(dependent, dependency)
32
+ case @@deps[dependency].class
33
+ when String
34
+ register_filter(dependency, @@deps[dependency])
35
+ when Array
36
+ @@deps[dependency].each do |dependencydependency|
37
+ register_filter(dependency, dependencydependency)
38
+ end
39
+ end
40
+ send(:before_filter, dependency, :only => dependent)
41
+ end
42
+
43
+ alias :filter :action
44
+ end
45
+ end
@@ -0,0 +1,3 @@
1
+ module ActionJackson
2
+ VERSION = "0.0.1"
3
+ end
metadata ADDED
@@ -0,0 +1,72 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: action-jackson
3
+ version: !ruby/object:Gem::Version
4
+ hash: 29
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 1
10
+ version: 0.0.1
11
+ platform: ruby
12
+ authors:
13
+ - Blake Taylor
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2011-08-18 00:00:00 Z
19
+ dependencies: []
20
+
21
+ description:
22
+ email:
23
+ - blakefrost@gmail.com
24
+ executables: []
25
+
26
+ extensions: []
27
+
28
+ extra_rdoc_files: []
29
+
30
+ files:
31
+ - .gitignore
32
+ - Gemfile
33
+ - Rakefile
34
+ - action_jackson.gemspec
35
+ - lib/action_jackson.rb
36
+ - lib/action_jackson/dsl.rb
37
+ - lib/action_jackson/version.rb
38
+ homepage: ""
39
+ licenses: []
40
+
41
+ post_install_message:
42
+ rdoc_options: []
43
+
44
+ require_paths:
45
+ - lib
46
+ required_ruby_version: !ruby/object:Gem::Requirement
47
+ none: false
48
+ requirements:
49
+ - - ">="
50
+ - !ruby/object:Gem::Version
51
+ hash: 3
52
+ segments:
53
+ - 0
54
+ version: "0"
55
+ required_rubygems_version: !ruby/object:Gem::Requirement
56
+ none: false
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ hash: 3
61
+ segments:
62
+ - 0
63
+ version: "0"
64
+ requirements: []
65
+
66
+ rubyforge_project: action_jackson
67
+ rubygems_version: 1.8.6
68
+ signing_key:
69
+ specification_version: 3
70
+ summary: DSL for defining dependencies between rails actions and before_filters.
71
+ test_files: []
72
+