loser 0.0.1
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 +7 -0
- data/lib/loser/module.rb +21 -0
- data/lib/loser.rb +32 -0
- metadata +45 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 24684aeb40148e4a97e42b7c42f03563d1101451
|
4
|
+
data.tar.gz: cf789ed0aa1c25e82a47d86de76384bba14842c4
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 0c38800e1be4074107c169bc7c12551b5168cc27e1b64bc7b45204ffda3b5a2c89841247445ff43609671771c30f1e190912e7777e2630720865a9575d07f106
|
7
|
+
data.tar.gz: 4f12c0edc5ce2f2a7aaa94fd222370f9d3386a633a950264340ece52d16b95373380c8bbce978210dfb7954ad6188b5bd673959d491273bace7fac3c4d2c987d
|
data/lib/loser/module.rb
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
class Module
|
2
|
+
def attr_accessor_with_default_setter( *syms, &block )
|
3
|
+
raise 'Default value in block required' unless block
|
4
|
+
syms.each do | sym |
|
5
|
+
module_eval do
|
6
|
+
attr_writer( sym )
|
7
|
+
define_method( sym ) do | |
|
8
|
+
class << self; self; end.class_eval do
|
9
|
+
attr_reader( sym )
|
10
|
+
end
|
11
|
+
if instance_variables.include? "@#{sym}"
|
12
|
+
instance_variable_get( "@#{sym}" )
|
13
|
+
else
|
14
|
+
instance_variable_set( "@#{sym}", block.call )
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
nil
|
20
|
+
end
|
21
|
+
end
|
data/lib/loser.rb
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'loser/module'
|
2
|
+
|
3
|
+
module Loser
|
4
|
+
|
5
|
+
def self.included(klass)
|
6
|
+
attr_accessor_with_default_setter :errors do
|
7
|
+
Array.new
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
def valid?
|
12
|
+
errors.size == 0
|
13
|
+
end
|
14
|
+
|
15
|
+
def errors_full(separator=', ')
|
16
|
+
errors.join(separator)
|
17
|
+
end
|
18
|
+
|
19
|
+
def fail(msg)
|
20
|
+
self.errors << msg
|
21
|
+
false
|
22
|
+
end
|
23
|
+
|
24
|
+
private
|
25
|
+
|
26
|
+
def safe
|
27
|
+
yield
|
28
|
+
rescue
|
29
|
+
fail 'Erro inesperado, tente novamente.'
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
metadata
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: loser
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Marcus Mansur
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-04-02 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: A simple gem to add error methods to your ruby class
|
14
|
+
email: marcus.v.mansur@gmail.com
|
15
|
+
executables: []
|
16
|
+
extensions: []
|
17
|
+
extra_rdoc_files: []
|
18
|
+
files:
|
19
|
+
- lib/loser.rb
|
20
|
+
- lib/loser/module.rb
|
21
|
+
homepage: http://rubygems.org/gems/loser
|
22
|
+
licenses:
|
23
|
+
- MIT
|
24
|
+
metadata: {}
|
25
|
+
post_install_message:
|
26
|
+
rdoc_options: []
|
27
|
+
require_paths:
|
28
|
+
- lib
|
29
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
35
|
+
requirements:
|
36
|
+
- - '>='
|
37
|
+
- !ruby/object:Gem::Version
|
38
|
+
version: '0'
|
39
|
+
requirements: []
|
40
|
+
rubyforge_project:
|
41
|
+
rubygems_version: 2.1.11
|
42
|
+
signing_key:
|
43
|
+
specification_version: 4
|
44
|
+
summary: Loser!
|
45
|
+
test_files: []
|