rails-dsl 0.1.1 → 0.2.0
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.
- 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: []
|