flakes 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/flakes.rb +59 -0
  3. metadata +44 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 514f6f1f65242c6d9bea5e2f111fbd3d61c80f66
4
+ data.tar.gz: 1bf8c07195575f64d7e83ccda0843e7d52c88f97
5
+ SHA512:
6
+ metadata.gz: 9730c00606449e75b05aa3b3ca7b1ce37b4a3c0a7085217a519991bc759659f3ec985404c9e5a746dffeb5c7a74d110a1577dfac8fbe860f03d51600832e876e
7
+ data.tar.gz: be4123a076c797325903b1aae8efa17f36a187f0ca39c16a32ab649f81b9575e3baa47487d61c191daaf21a0ac7b863dc73ffcbda59ff53ec8437fb930310e29
@@ -0,0 +1,59 @@
1
+ class Flake
2
+
3
+ public
4
+
5
+ def self.input_params
6
+ @input_params
7
+ end
8
+
9
+ def on_success(&callback)
10
+ @success = callback
11
+ return self
12
+ end
13
+
14
+ def on_failure(&callback)
15
+ @failure = callback
16
+ return self
17
+ end
18
+
19
+ private
20
+
21
+ attr_reader :repo, :params
22
+
23
+ def self.default_repo(default_repo)
24
+ define_method :initialize do |params = nil, repo = default_repo|
25
+ @repo = repo
26
+
27
+ input_params = self.class.input_params
28
+
29
+ if input_params.present?
30
+ input_params.each do |name|
31
+ instance_variable_set("@#{name}", params[name])
32
+ self.class.send(:attr_reader, name)
33
+ end
34
+ end
35
+
36
+ end
37
+ end
38
+
39
+ def self.allow_params(*params)
40
+ @input_params = params
41
+ end
42
+
43
+ def success(*args)
44
+ @success ||= Proc.new { |args| args }
45
+ @success.call(*args)
46
+ end
47
+
48
+ def failure(*args)
49
+ @failure ||= default_failure
50
+ @failure.call(*args)
51
+ end
52
+
53
+ def default_failure
54
+ Proc.new do |args|
55
+ obj = args || self
56
+ raise obj.inspect
57
+ end
58
+ end
59
+ end
metadata ADDED
@@ -0,0 +1,44 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: flakes
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Manuel Schiner
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-07-30 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: hexagonal framework for rails
14
+ email: maschiner@maschiner.com
15
+ executables: []
16
+ extensions: []
17
+ extra_rdoc_files: []
18
+ files:
19
+ - lib/flakes.rb
20
+ homepage: http://rubygems.org/gems/flakes
21
+ licenses:
22
+ - MIT
23
+ metadata: {}
24
+ post_install_message:
25
+ rdoc_options: []
26
+ require_paths:
27
+ - lib
28
+ required_ruby_version: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ required_rubygems_version: !ruby/object:Gem::Requirement
34
+ requirements:
35
+ - - ">="
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ requirements: []
39
+ rubyforge_project:
40
+ rubygems_version: 2.2.2
41
+ signing_key:
42
+ specification_version: 4
43
+ summary: flakes
44
+ test_files: []