flakes 0.1.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.
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: []