rebels 0.1.0 → 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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b7be0e3c3929f8cc63eaca8bf6f4a38d2921c017
4
- data.tar.gz: 7c84a698875fb814a88d9d743a375246c3155db9
3
+ metadata.gz: 5bb311b6d5e695b3f2f38ad298a3c174784087e4
4
+ data.tar.gz: 4063d5405184d85c352446cdfbd9bacb030f51de
5
5
  SHA512:
6
- metadata.gz: 8b0935b31ab90922a7b7ac4307f1dc3b015d23776540c17533e729dc1309ac9d4d3a830abaeea554b82597abfa5d4c50d9f767f85173fe7b6693501350e60b04
7
- data.tar.gz: 0a53e6de8961cb5fdff1d4e2950c281bb4b0b819e50eaa2a5ae094d229a7d272f2f1339dc70a298ff4d10335d5462b7727936295777fcf12b035282e80afa554
6
+ metadata.gz: 02a0de807d259fc0ed9b7b0bd4b35fad6ec39e7774e81db926559a2e05d908fa97308ad1f63f6c0d7b21ff3869ccb03f4ac20ff1d88c9fc507e19ff7267b5797
7
+ data.tar.gz: 58fcae3a95a16d4fe697617662bf3797fafbc89e90e1c4adf15234dc45aba59974f4e18c04ab34367a9f5f2d547005474a271e2c6cdaa9358021641897d0e123
data/.gitignore CHANGED
@@ -7,3 +7,4 @@
7
7
  /pkg/
8
8
  /spec/reports/
9
9
  /tmp/
10
+ rebels-*.gem
@@ -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
@@ -1,3 +1,7 @@
1
1
  module Rebels
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
+ module Values
4
+ end
5
+ module Factories
6
+ end
3
7
  end
data/lib/rebels.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  require "rebels/version"
2
+ require "rebels/values/request"
3
+ require "rebels/factories/request_factory"
2
4
 
3
5
  module Rebels
4
- # Your code goes here...
5
6
  end
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.1.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-29 00:00:00.000000000 Z
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