itsf_services 0.0.3 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 220b9b70226b8600cac1025fd9b69540de6dce01
4
- data.tar.gz: 99e4634d4ca1e3fa24df5f33e5619b9d06947d53
3
+ metadata.gz: 2d807dd88c973c2b67fab0aa8332664e38afa6b9
4
+ data.tar.gz: 5f346484b6b2d3946170ae2898365c31c6297b53
5
5
  SHA512:
6
- metadata.gz: da7c465016d0a6c28b962bb9e5fdeb855430dcf8ccfc58fd8299160e7405f23fe6f90a5cb035229f5dbaba4596e228992b59eb3e523807ea74dcf71079db804d
7
- data.tar.gz: c43dbc24afee9ddbf06fd0e1de10e845b477e595fc89453ac439847be1232560c1652ffe2effcddb2dba5ffc36bd0969cf2549624d43f1aac65e5eff54367292
6
+ metadata.gz: 3b872af8a1c4948ff0f34f6972ac9ffd455873f8317bd3c79501f59ff2aec72e4d2d78946fa064caa64c704bbd811ed76e51b8cb645541fe6b7787a631e73f87
7
+ data.tar.gz: ea7cdc9f196789f5c9060ad0a069fc07ad77ef681c34704344f62815341c8b68751a5a5a6cac24210e35819f4c022fae017ebb9bc101fffd9f94ff035a429e0e
@@ -0,0 +1,31 @@
1
+ module Itsf
2
+ module Services
3
+ module V2
4
+ module Message
5
+ class Base
6
+ attr_accessor :service_class, :message, :level, :indent
7
+
8
+ def initialize(attributes = {})
9
+ send_attributes(attributes)
10
+ end
11
+
12
+ def to_s(format = :default)
13
+ case format
14
+ when :html
15
+ when :default
16
+ "[#{service_class.name} | #{level}]: #{' ' * indent}#{message}"
17
+ end
18
+ end
19
+
20
+ private
21
+
22
+ def send_attributes(attributes)
23
+ attributes.each do |name, value|
24
+ send("#{name}=", value)
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -6,9 +6,11 @@ module Itsf
6
6
  extend ActiveModel::Naming
7
7
 
8
8
  attr_reader :errors
9
+ attr_reader :messages
9
10
  attr_writer :success
10
11
 
11
12
  def initialize
13
+ @messages = []
12
14
  @errors = ActiveModel::Errors.new(self)
13
15
  end
14
16
 
@@ -35,6 +37,7 @@ module Itsf
35
37
  private
36
38
 
37
39
  attr_writer :errors
40
+ attr_writer :messages
38
41
  end
39
42
  end
40
43
  end
@@ -8,9 +8,13 @@ module Itsf
8
8
  include ActiveModel::Validations
9
9
  extend Forwardable
10
10
 
11
+ include ActiveModel::Conversion
12
+ def persisted?; false end
13
+
11
14
  def_delegator :@instrumenter, :instrument
12
15
  attr_accessor :instrumenter
13
16
  attr_reader :response
17
+ attr_reader :_messages
14
18
 
15
19
  def self.i18n_scope
16
20
  'activerecord'
@@ -24,6 +28,7 @@ module Itsf
24
28
  options = args.extract_options!
25
29
  options.reverse_merge!(instrumenter: ActiveSupport::Notifications)
26
30
 
31
+ @_messages = []
27
32
  @errors = ActiveModel::Errors.new(self)
28
33
 
29
34
  initialize_instrumenter(options[:instrumenter])
@@ -59,17 +64,31 @@ module Itsf
59
64
  end
60
65
 
61
66
  def response
67
+ set_messages_on_response
62
68
  set_errors_on_response
63
69
  @response
64
70
  end
65
71
 
66
72
  def say(message, options = {})
67
- options.reverse_merge!(indent: 0)
73
+ options.reverse_merge!(indent: 0, level: :info)
68
74
  indent = options.delete(:indent)
69
- puts "[#{self.class.name}]: #{' ' * indent}#{message}"
75
+ level = options.delete(:level)
76
+ formatted_message = "[#{self.class.name}]: #{' ' * indent}#{message}"
77
+ puts formatted_message
78
+ @_messages << Services::V2::Message::Base.new(service_class: self.class, message: message, level: level, indent: indent)
70
79
  true
71
80
  end
72
81
 
82
+ def info(message, options = {})
83
+ options.reverse_merge!(level: :info)
84
+ say(message, options)
85
+ end
86
+
87
+ def warn(message, options = {})
88
+ options.reverse_merge!(level: :warning)
89
+ say(message, options)
90
+ end
91
+
73
92
  def add_error_and_say(attribute, message, options = {})
74
93
  errors.add(attribute, message)
75
94
  say(message, options)
@@ -78,6 +97,10 @@ module Itsf
78
97
  def set_errors_on_response
79
98
  @response.send(:'errors=', @errors)
80
99
  end
100
+
101
+ def set_messages_on_response
102
+ @response.send(:'messages=', @_messages)
103
+ end
81
104
  end
82
105
  end
83
106
  end
@@ -1,5 +1,5 @@
1
1
  module Itsf
2
2
  module Services
3
- VERSION = '0.0.3'
3
+ VERSION = '0.1.0'
4
4
  end
5
5
  end
data/lib/itsf_services.rb CHANGED
@@ -1,3 +1,4 @@
1
+ require 'itsf/services/v2/message/base'
1
2
  require 'itsf/services/v2/service/base'
2
3
  require 'itsf/services/v2/response/base'
3
4
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: itsf_services
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Roberto Vasquez Angel
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-12-16 00:00:00.000000000 Z
11
+ date: 2016-01-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -56,6 +56,7 @@ files:
56
56
  - config/routes.rb
57
57
  - lib/itsf/services.rb
58
58
  - lib/itsf/services/engine.rb
59
+ - lib/itsf/services/v2/message/base.rb
59
60
  - lib/itsf/services/v2/response/base.rb
60
61
  - lib/itsf/services/v2/service/base.rb
61
62
  - lib/itsf/services/version.rb