rebels 0.1.0 → 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/.gitignore +1 -0
- data/lib/rebels/factories/request_factory.rb +5 -0
- data/lib/rebels/values/request.rb +19 -0
- data/lib/rebels/values/with.rb +15 -0
- data/lib/rebels/version.rb +5 -1
- data/lib/rebels.rb +2 -1
- data/rebels.gemspec +1 -0
- metadata +19 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5bb311b6d5e695b3f2f38ad298a3c174784087e4
|
4
|
+
data.tar.gz: 4063d5405184d85c352446cdfbd9bacb030f51de
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 02a0de807d259fc0ed9b7b0bd4b35fad6ec39e7774e81db926559a2e05d908fa97308ad1f63f6c0d7b21ff3869ccb03f4ac20ff1d88c9fc507e19ff7267b5797
|
7
|
+
data.tar.gz: 58fcae3a95a16d4fe697617662bf3797fafbc89e90e1c4adf15234dc45aba59974f4e18c04ab34367a9f5f2d547005474a271e2c6cdaa9358021641897d0e123
|
data/.gitignore
CHANGED
@@ -0,0 +1,5 @@
|
|
1
|
+
class Rebels::Factories::RequestFactory
|
2
|
+
def from_controller(controller)
|
3
|
+
Rebels::Values::Request.with(method: controller.request.request_method, path: controller.request.path, path_params: controller.request.path_parameters, session: controller.session, params: controller.params, env: controller.env)
|
4
|
+
end
|
5
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'values'
|
2
|
+
require_relative './with'
|
3
|
+
|
4
|
+
class Rebels::Values::Request < Value.new(:method, :session, :params, :env, :path, :path_params)
|
5
|
+
include Rebels::Values::With
|
6
|
+
|
7
|
+
def path_params
|
8
|
+
@path_params || {}
|
9
|
+
end
|
10
|
+
|
11
|
+
def all_params
|
12
|
+
path_params.merge(params)
|
13
|
+
end
|
14
|
+
|
15
|
+
def method
|
16
|
+
@method || "GET"
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module Rebels::Values::With
|
2
|
+
def attributes
|
3
|
+
keys = self.class.superclass.const_get(:VALUE_ATTRS)
|
4
|
+
keys.reduce({}){|m,e| m.merge(e => self.send(e))}
|
5
|
+
end
|
6
|
+
def with(deltas)
|
7
|
+
keys = self.class.superclass.const_get(:VALUE_ATTRS)
|
8
|
+
raise "bad keys" if !(deltas.keys - keys).empty?
|
9
|
+
map = Hash[keys.zip(values)]
|
10
|
+
keys.each do |k|
|
11
|
+
map[k] = deltas[k] if deltas.has_key?(k)
|
12
|
+
end
|
13
|
+
self.class.new(*map.values)
|
14
|
+
end
|
15
|
+
end
|
data/lib/rebels/version.rb
CHANGED
data/lib/rebels.rb
CHANGED
data/rebels.gemspec
CHANGED
@@ -22,6 +22,7 @@ Gem::Specification.new do |spec|
|
|
22
22
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
23
23
|
spec.require_paths = ["lib"]
|
24
24
|
|
25
|
+
spec.add_dependency "values"
|
25
26
|
spec.add_development_dependency "bundler", "~> 1.8"
|
26
27
|
spec.add_development_dependency "rake", "~> 10.0"
|
27
28
|
end
|
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rebels
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Serguei Filimonov
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-06-
|
11
|
+
date: 2015-06-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: values
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: bundler
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -56,6 +70,9 @@ files:
|
|
56
70
|
- bin/console
|
57
71
|
- bin/setup
|
58
72
|
- lib/rebels.rb
|
73
|
+
- lib/rebels/factories/request_factory.rb
|
74
|
+
- lib/rebels/values/request.rb
|
75
|
+
- lib/rebels/values/with.rb
|
59
76
|
- lib/rebels/version.rb
|
60
77
|
- rebels.gemspec
|
61
78
|
homepage: http://serguei.me
|