cloudfuji 0.0.39 → 0.0.40
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/lib/cloudfuji/mail_route.rb +49 -48
- data/lib/cloudfuji/version.rb +1 -1
- metadata +49 -55
data/lib/cloudfuji/mail_route.rb
CHANGED
@@ -1,63 +1,64 @@
|
|
1
1
|
module Cloudfuji
|
2
2
|
class Mailroute
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
@@routes ||= self.new
|
7
|
-
yield @@routes
|
8
|
-
end
|
3
|
+
class << self
|
4
|
+
def map(&block)
|
5
|
+
raise StandardError.new("Mailroute only supported in Ruby >= 1.9.1") if RUBY_VERSION < "1.9.1"
|
9
6
|
|
10
|
-
|
11
|
-
|
12
|
-
end
|
7
|
+
yield routes
|
8
|
+
end
|
13
9
|
|
14
|
-
|
15
|
-
|
16
|
-
|
10
|
+
def routes
|
11
|
+
@@routes ||= new
|
12
|
+
end
|
17
13
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
14
|
+
def clear_routes!
|
15
|
+
@@routes = nil
|
16
|
+
end
|
17
|
+
|
18
|
+
def pretty_print_routes
|
19
|
+
routes.routes.each_pair do |route_name, definition|
|
20
|
+
puts "#{route_name} => "
|
21
|
+
definition[:rules].each do |rule|
|
22
|
+
pretty_print_rule(rule, "\t\t")
|
23
|
+
end
|
24
|
+
definition[:constraints].each do |constraint|
|
25
|
+
pretty_print_contraint(constraint, "\t\t")
|
26
|
+
end
|
26
27
|
end
|
27
28
|
end
|
28
|
-
end
|
29
29
|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
30
|
+
def pretty_print_rule(rule, prefix="")
|
31
|
+
output = "#{prefix}#{rule.first} => #{string_to_regex(rule[1]).inspect}, required? #{rule.last == true}"
|
32
|
+
puts output
|
33
|
+
end
|
34
34
|
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
35
|
+
def pretty_print_contraint(constraint, prefix="")
|
36
|
+
output = "#{prefix}Constraint: #{constraint.inspect}"
|
37
|
+
puts output
|
38
|
+
end
|
39
39
|
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
40
|
+
# Taken from somewhere on stackoverflow, props to the author!
|
41
|
+
def string_to_regex(string)
|
42
|
+
return nil unless string.strip.match(/\A\/(.*)\/(.*)\Z/mx)
|
43
|
+
regexp , flags = $1 , $2
|
44
|
+
return nil if !regexp || flags =~ /[^xim]/m
|
45
45
|
|
46
|
-
|
47
|
-
|
48
|
-
|
46
|
+
x = /x/.match(flags) && Regexp::EXTENDED
|
47
|
+
i = /i/.match(flags) && Regexp::IGNORECASE
|
48
|
+
m = /m/.match(flags) && Regexp::MULTILINE
|
49
49
|
|
50
|
-
|
51
|
-
|
50
|
+
Regexp.new regexp , [x,i,m].inject(0){|a,f| f ? a+f : a }
|
51
|
+
end
|
52
52
|
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
53
|
+
def field_matcher(*field_names)
|
54
|
+
class_eval do
|
55
|
+
field_names.each do |field_name|
|
56
|
+
define_method field_name do |line, *args|
|
57
|
+
constraints = args.first || {}
|
58
|
+
required = args[1]
|
59
59
|
|
60
|
-
|
60
|
+
add_route_rule(field_name.to_s, build_matcher(line, constraints), required)
|
61
|
+
end
|
61
62
|
end
|
62
63
|
end
|
63
64
|
end
|
@@ -131,11 +132,11 @@ module Cloudfuji
|
|
131
132
|
_matches = false
|
132
133
|
break
|
133
134
|
end
|
134
|
-
|
135
|
+
|
135
136
|
# Only Ruby 1.9 support named capture groups
|
136
137
|
result.names.each { |key| @params[key] = result[key] }
|
137
138
|
end
|
138
|
-
|
139
|
+
|
139
140
|
# Run param-based constraints
|
140
141
|
if _matches and constraints_pass?(definition[:constraints], params)
|
141
142
|
@params['mail'] = mail
|
data/lib/cloudfuji/version.rb
CHANGED
metadata
CHANGED
@@ -1,74 +1,71 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: cloudfuji
|
3
|
-
version: !ruby/object:Gem::Version
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.40
|
4
5
|
prerelease:
|
5
|
-
version: 0.0.39
|
6
6
|
platform: ruby
|
7
|
-
authors:
|
7
|
+
authors:
|
8
8
|
- Sean Grove
|
9
9
|
- Kev Zettler
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
- !ruby/object:Gem::Dependency
|
13
|
+
date: 2012-05-11 00:00:00.000000000 Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
17
16
|
name: rest-client
|
18
|
-
requirement: &
|
17
|
+
requirement: &70327157978440 !ruby/object:Gem::Requirement
|
19
18
|
none: false
|
20
|
-
requirements:
|
21
|
-
- -
|
22
|
-
- !ruby/object:Gem::Version
|
19
|
+
requirements:
|
20
|
+
- - ! '>='
|
21
|
+
- !ruby/object:Gem::Version
|
23
22
|
version: 1.6.1
|
24
23
|
type: :runtime
|
25
24
|
prerelease: false
|
26
|
-
version_requirements: *
|
27
|
-
- !ruby/object:Gem::Dependency
|
25
|
+
version_requirements: *70327157978440
|
26
|
+
- !ruby/object:Gem::Dependency
|
28
27
|
name: json
|
29
|
-
requirement: &
|
28
|
+
requirement: &70327157977460 !ruby/object:Gem::Requirement
|
30
29
|
none: false
|
31
|
-
requirements:
|
32
|
-
- -
|
33
|
-
- !ruby/object:Gem::Version
|
30
|
+
requirements:
|
31
|
+
- - ! '>='
|
32
|
+
- !ruby/object:Gem::Version
|
34
33
|
version: 1.4.6
|
35
34
|
type: :runtime
|
36
35
|
prerelease: false
|
37
|
-
version_requirements: *
|
38
|
-
- !ruby/object:Gem::Dependency
|
36
|
+
version_requirements: *70327157977460
|
37
|
+
- !ruby/object:Gem::Dependency
|
39
38
|
name: highline
|
40
|
-
requirement: &
|
39
|
+
requirement: &70327157976980 !ruby/object:Gem::Requirement
|
41
40
|
none: false
|
42
|
-
requirements:
|
43
|
-
- -
|
44
|
-
- !ruby/object:Gem::Version
|
41
|
+
requirements:
|
42
|
+
- - ! '>='
|
43
|
+
- !ruby/object:Gem::Version
|
45
44
|
version: 1.6.1
|
46
45
|
type: :runtime
|
47
46
|
prerelease: false
|
48
|
-
version_requirements: *
|
49
|
-
- !ruby/object:Gem::Dependency
|
47
|
+
version_requirements: *70327157976980
|
48
|
+
- !ruby/object:Gem::Dependency
|
50
49
|
name: orm_adapter
|
51
|
-
requirement: &
|
50
|
+
requirement: &70327157976500 !ruby/object:Gem::Requirement
|
52
51
|
none: false
|
53
|
-
requirements:
|
52
|
+
requirements:
|
54
53
|
- - ~>
|
55
|
-
- !ruby/object:Gem::Version
|
54
|
+
- !ruby/object:Gem::Version
|
56
55
|
version: 0.0.3
|
57
56
|
type: :runtime
|
58
57
|
prerelease: false
|
59
|
-
version_requirements: *
|
58
|
+
version_requirements: *70327157976500
|
60
59
|
description: A module for integrating the Cloudfuji platform into a ruby app
|
61
|
-
email:
|
60
|
+
email:
|
62
61
|
- support@cloudfuji.com
|
63
62
|
- s@bushi.do
|
64
63
|
- k@bushi.do
|
65
|
-
executables:
|
64
|
+
executables:
|
66
65
|
- cloudfuji
|
67
66
|
extensions: []
|
68
|
-
|
69
67
|
extra_rdoc_files: []
|
70
|
-
|
71
|
-
files:
|
68
|
+
files:
|
72
69
|
- .gitignore
|
73
70
|
- .rspec
|
74
71
|
- Gemfile
|
@@ -240,38 +237,35 @@ files:
|
|
240
237
|
- test_app/spec/views/home.html.erb_spec.rb
|
241
238
|
homepage: https://github.com/cloudfuji/cloudfuji_client
|
242
239
|
licenses: []
|
243
|
-
|
244
240
|
post_install_message:
|
245
241
|
rdoc_options: []
|
246
|
-
|
247
|
-
require_paths:
|
242
|
+
require_paths:
|
248
243
|
- lib
|
249
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
244
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
250
245
|
none: false
|
251
|
-
requirements:
|
252
|
-
- -
|
253
|
-
- !ruby/object:Gem::Version
|
254
|
-
|
255
|
-
segments:
|
246
|
+
requirements:
|
247
|
+
- - ! '>='
|
248
|
+
- !ruby/object:Gem::Version
|
249
|
+
version: '0'
|
250
|
+
segments:
|
256
251
|
- 0
|
257
|
-
|
258
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
252
|
+
hash: 2460629452345525607
|
253
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
259
254
|
none: false
|
260
|
-
requirements:
|
261
|
-
- -
|
262
|
-
- !ruby/object:Gem::Version
|
263
|
-
|
264
|
-
segments:
|
255
|
+
requirements:
|
256
|
+
- - ! '>='
|
257
|
+
- !ruby/object:Gem::Version
|
258
|
+
version: '0'
|
259
|
+
segments:
|
265
260
|
- 0
|
266
|
-
|
261
|
+
hash: 2460629452345525607
|
267
262
|
requirements: []
|
268
|
-
|
269
263
|
rubyforge_project: cloudfuji
|
270
|
-
rubygems_version: 1.8.
|
264
|
+
rubygems_version: 1.8.10
|
271
265
|
signing_key:
|
272
266
|
specification_version: 3
|
273
267
|
summary: Cloudfuji integration
|
274
|
-
test_files:
|
268
|
+
test_files:
|
275
269
|
- spec/app_spec/controllers/envs_controller_spec.rb
|
276
270
|
- spec/app_spec/controllers/mail_controller_spec.rb
|
277
271
|
- spec/app_spec/integration/app_claim_spec.rb
|