rails-dsl 0.1.1 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +15 -2
- data/VERSION +1 -1
- data/lib/rails-dsl.rb +1 -0
- data/lib/rails-dsl/duck_params.rb +30 -18
- data/lib/rails-dsl/kill_server.rb +73 -0
- data/lib/rails-dsl/routes_ext.rb +61 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b6ad275135bdefc6f4f2032c9474757afdfaf821
|
4
|
+
data.tar.gz: 9cd7624647793e446cfa61ec596fb8f86ba78f66
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f10fd155005717eeb63fd43f38246f3e173ea6b8d0f7c6291fc15b8b88497d6d0b9da7f22482a19952e2f4a44956e3c605f5f89dc829a97b17ba763e08263f51
|
7
|
+
data.tar.gz: ba2cd238f4e7e005da20af073280069928701d6c6add51583d97269f5e969f0f54359388ec2d0c5a6b2e5c4f6d2f227811dc0944e1ad52717386f12a1074db9b
|
data/README.md
CHANGED
@@ -2,5 +2,18 @@ rails-dsl
|
|
2
2
|
=================
|
3
3
|
|
4
4
|
Provide Rails with some extra helpers,
|
5
|
-
|
6
|
-
|
5
|
+
|
6
|
+
For example for to ActionController::Base a 'duck_params' that parse string values into the right obj,
|
7
|
+
like:
|
8
|
+
|
9
|
+
* "123" to Fixnum
|
10
|
+
* {"hello":"world"} json into Hash
|
11
|
+
* "Fri, 25 Jan 2013 20:02:15 +0100" to DateTime obj
|
12
|
+
* "123.123" to Float obj
|
13
|
+
* "2011-03-12" to Date obj
|
14
|
+
* etc etc etc
|
15
|
+
|
16
|
+
if you call rails with --kill or -k command from now on, it will kill the application by it's pid file
|
17
|
+
|
18
|
+
$ rails --kill
|
19
|
+
#> At pid: 24922 the app is killed with pidfile: /home/asdf/rails_app/tmp/pids/server.pid
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.2.0
|
data/lib/rails-dsl.rb
CHANGED
@@ -1,32 +1,44 @@
|
|
1
|
-
|
1
|
+
begin
|
2
2
|
|
3
|
-
|
3
|
+
require 'str2duck'
|
4
|
+
require 'action_controller'
|
4
5
|
|
5
|
-
|
6
|
+
module Rails
|
7
|
+
module DSL
|
6
8
|
|
7
|
-
|
8
|
-
@duck_params_cache ||= nil
|
9
|
+
module ActionControllerEXT
|
9
10
|
|
10
|
-
|
11
|
+
def params_duck
|
11
12
|
|
12
|
-
|
13
|
+
@duck_params_origin ||= params.dup
|
14
|
+
@duck_params_cache ||= nil
|
13
15
|
|
14
|
-
|
16
|
+
if params == @duck_params_origin && !@duck_params_cache.nil?
|
15
17
|
|
16
|
-
|
17
|
-
@duck_params_origin= params.dup
|
18
|
+
return @duck_params_cache
|
18
19
|
|
19
|
-
|
20
|
-
@duck_params_cache[k]=( ::Str2Duck.parse(v) ) if v.class <= String
|
21
|
-
end
|
20
|
+
else
|
22
21
|
|
23
|
-
|
22
|
+
@duck_params_cache= params.dup
|
23
|
+
@duck_params_origin= params.dup
|
24
24
|
|
25
|
-
|
25
|
+
params.each do |k,v|
|
26
|
+
@duck_params_cache[k]=( ::Str2Duck.parse(v) ) if v.class <= String
|
27
|
+
end
|
28
|
+
|
29
|
+
return @duck_params_cache
|
30
|
+
|
31
|
+
end
|
26
32
|
|
33
|
+
end
|
34
|
+
alias duck_params params_duck
|
35
|
+
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
27
39
|
end
|
28
|
-
alias duck_params params_duck
|
29
40
|
|
30
|
-
|
41
|
+
ActionController::Base.__send__ :include, Rails::DSL::ActionControllerEXT
|
31
42
|
|
32
|
-
|
43
|
+
rescue LoadError
|
44
|
+
end
|
@@ -0,0 +1,73 @@
|
|
1
|
+
module Rails
|
2
|
+
module DSL
|
3
|
+
|
4
|
+
module Commands
|
5
|
+
module Helpers
|
6
|
+
class << self
|
7
|
+
|
8
|
+
def kill(opid_path)
|
9
|
+
|
10
|
+
opid= File.read(opid_path)
|
11
|
+
Process.kill 'HUP', opid.to_i
|
12
|
+
|
13
|
+
$stdout.puts "At pid: #{opid} the app is killed with pidfile: #{opid_path}"
|
14
|
+
true
|
15
|
+
rescue Errno::ENOENT
|
16
|
+
$stdout.puts "#{opid_path} did not exist: Errno::ENOENT"
|
17
|
+
true
|
18
|
+
rescue Errno::ESRCH
|
19
|
+
$stdout.puts "The process #{opid} did not exist: Errno::ESRCH"
|
20
|
+
true
|
21
|
+
rescue Errno::EPERM
|
22
|
+
$stderr.puts "Lack of privileges to manage the process #{opid}: Errno::EPERM"
|
23
|
+
false
|
24
|
+
rescue ::Exception => e
|
25
|
+
$stderr.puts "While signaling the PID, unexpected #{e.class}: #{e}"
|
26
|
+
false
|
27
|
+
end
|
28
|
+
alias kill! kill
|
29
|
+
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
module EXT
|
34
|
+
|
35
|
+
def kill?
|
36
|
+
|
37
|
+
unless %W[ -k --kill ].select{|sym| ARGV.include?(sym) }.empty?
|
38
|
+
|
39
|
+
previous_stderr, $stderr = $stderr, StringIO.new
|
40
|
+
previous_stdout, $stdout = $stdout, StringIO.new
|
41
|
+
|
42
|
+
::Kernel.at_exit do
|
43
|
+
|
44
|
+
$stderr= previous_stderr
|
45
|
+
$stdout= previous_stdout
|
46
|
+
|
47
|
+
Rails::Server.new.tap { |server|
|
48
|
+
# We need to require application after the server sets environment,
|
49
|
+
# otherwise the --environment option given to the server won't propagate.
|
50
|
+
require APP_PATH
|
51
|
+
Dir.chdir(Rails.application.root)
|
52
|
+
Commands::Helpers.kill(server.options[:pid])
|
53
|
+
|
54
|
+
}
|
55
|
+
|
56
|
+
# Rails::Server
|
57
|
+
|
58
|
+
end
|
59
|
+
|
60
|
+
|
61
|
+
end
|
62
|
+
|
63
|
+
end
|
64
|
+
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
extend Commands::EXT
|
69
|
+
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
Rails::DSL.kill?
|
@@ -0,0 +1,61 @@
|
|
1
|
+
# module Rails
|
2
|
+
# module DSL
|
3
|
+
#
|
4
|
+
# module ActionDispatchRouteEXT
|
5
|
+
#
|
6
|
+
# module BlockParser
|
7
|
+
#
|
8
|
+
# def initialize &block
|
9
|
+
# @values ||= {}
|
10
|
+
# block.call
|
11
|
+
# end
|
12
|
+
#
|
13
|
+
# def values
|
14
|
+
# return @values
|
15
|
+
# end
|
16
|
+
#
|
17
|
+
#
|
18
|
+
# @@methods ||= [:get,:post,:put,:delete]
|
19
|
+
# def method_missing method_name,*args
|
20
|
+
#
|
21
|
+
# Rails.logger.info method_name
|
22
|
+
# if @@methods.include?(method_name)
|
23
|
+
# @values[method_name]= args[0]
|
24
|
+
# end
|
25
|
+
#
|
26
|
+
# return nil
|
27
|
+
# end
|
28
|
+
#
|
29
|
+
# end
|
30
|
+
#
|
31
|
+
# def mapping opts={}, &block
|
32
|
+
# raise ArgumentError,"options must be hash!" unless opts.class <= Hash
|
33
|
+
#
|
34
|
+
# { scope: [:s,:namespace,:path], resource: [:r,:class], defaults: [:d,:default] }.each do |opts_sym,aliases|
|
35
|
+
# aliases.each do |alias_sym|
|
36
|
+
# opts[opts_sym] ||= opts.delete(alias_sym) || opts.delete(alias_sym.to_s)
|
37
|
+
# end
|
38
|
+
# end
|
39
|
+
#
|
40
|
+
# opts[:defaults] ||= {}
|
41
|
+
#
|
42
|
+
# # raise(ArgumentError,"Invalid resource given") if [Symbol,String].select{ |klass| opts[:resource].class <= klass }.empty?
|
43
|
+
# raise(ArgumentError,"Invalid defaults given") unless opts[:defaults].class <= ::Hash
|
44
|
+
#
|
45
|
+
# requests= Rails::DSL::ActionDispatchRouteEXT::BlockParser.new(&block)
|
46
|
+
#
|
47
|
+
# generate_calls= lambda { |asd| }
|
48
|
+
#
|
49
|
+
# if !opts[:scope].nil? && opts[:scope].class <= String
|
50
|
+
# scope opts[:scope] do
|
51
|
+
#
|
52
|
+
# end
|
53
|
+
# end
|
54
|
+
#
|
55
|
+
# end
|
56
|
+
#
|
57
|
+
# end
|
58
|
+
# end
|
59
|
+
# end
|
60
|
+
#
|
61
|
+
# ActionDispatch::Routing::Mapper.__send__ :include, Rails::DSL::ActionDispatchRouteEXT
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rails-dsl
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adam Luzsi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-05-
|
11
|
+
date: 2014-05-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -82,6 +82,8 @@ files:
|
|
82
82
|
- VERSION
|
83
83
|
- lib/rails-dsl.rb
|
84
84
|
- lib/rails-dsl/duck_params.rb
|
85
|
+
- lib/rails-dsl/kill_server.rb
|
86
|
+
- lib/rails-dsl/routes_ext.rb
|
85
87
|
- rails-dsl.gemspec
|
86
88
|
homepage: https://github.com/adamluzsi/rails-dsl
|
87
89
|
licenses: []
|