goaltender 0.0.2 → 0.0.3

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: 4e1eff5e3ea39c173d9f15e5e76c95355f285c53
4
- data.tar.gz: 7ca8cad891725bc7efe5ee48b49c82f06abe8462
3
+ metadata.gz: 04e9a394f95b65ed94175af20c9d06f09c12e65b
4
+ data.tar.gz: 6f71d0fe681e1451c7c91eefc253cfb4d7de83c4
5
5
  SHA512:
6
- metadata.gz: e3c5d2e7ae36f8fdc07df3b55753954d23609ca02a5aeee9f4eef322fed93a8db69780b66474d59c47db0ae8a171779e2fca6eed140586099393c0cd9348a288
7
- data.tar.gz: d9fbcfd7f6ef65ebc6db611af5b1c8536a56d8394214f8aaffaa4ad01508ca95db25eac4cad1faf3d41f20af94ac6110161d92a3ad8f6b6fb2d3697d6b90d8a3
6
+ metadata.gz: 64815ae11f3e5757035297c2b612056afdf54b17a4c70cb895f2f68ab62b25d3229b0bd8e0188e32055f6939b383b0d1404ed79af558bc146479bfd8e23e6b43
7
+ data.tar.gz: e7bf2d1441bf6df976ed0172c1b7f6aced4fb31f5b4e98decd704bbc3d5c5a711300fb49915b79d4ec0c3900bff141e43186e4b52ddfb605c7ef6453a7af1ec5
Binary file
@@ -1,95 +1,93 @@
1
- module Goaltender
2
- class Base
1
+ class Goaltender::Base
3
2
 
4
- include ActiveModel::Model
5
- include Goaltender
3
+ include ActiveModel::Model
4
+ include Goaltender::BaseModule
6
5
 
7
- attr_reader :params, :inputs
8
- attr_accessor :inputs
6
+ attr_reader :params, :inputs
7
+ attr_accessor :inputs
9
8
 
10
- def initialize(args)
11
- @params = HashWithIndifferentAccess.new(args)
12
- @inputs = set_inputs
13
- after_init(@params)
14
- end
9
+ def initialize(args)
10
+ @params = HashWithIndifferentAccess.new(args)
11
+ @inputs = set_inputs
12
+ after_init(@params)
13
+ end
15
14
 
16
- def to_h
17
- hash = {}
18
- inputs.each do |input|
19
- value = instance_variable_get("@#{input.variable_name}")
20
- hash[input.variable_name] = value
21
- end
22
- hash
15
+ def to_h
16
+ hash = {}
17
+ inputs.each do |input|
18
+ value = instance_variable_get("@#{input.variable_name}")
19
+ hash[input.variable_name] = value
23
20
  end
21
+ hash
22
+ end
24
23
 
25
- def save
26
- before_save
27
- success = valid_form? ? persist! : false
28
- if success
29
- after_save
30
- true
31
- else
32
- false
33
- end
24
+ def save
25
+ before_save
26
+ success = valid_form? ? persist! : false
27
+ if success
28
+ after_save
29
+ true
30
+ else
31
+ false
34
32
  end
33
+ end
35
34
 
36
- private
37
-
38
- def set_inputs
39
- current_class_name = self.class.name
40
- relevant_classes = [current_class_name]
41
- classes = current_class_name.split("::")
42
- while classes.present?
43
- classes.pop
44
- possibility = classes.join("::")
45
- relevant_classes << possibility unless possibility.exclude?("::")
46
- current_class_name = possibility
47
- end
35
+ private
36
+
37
+ def set_inputs
38
+ current_class_name = self.class.name
39
+ relevant_classes = [current_class_name]
40
+ classes = current_class_name.split("::")
41
+ while classes.present?
42
+ classes.pop
43
+ possibility = classes.join("::")
44
+ relevant_classes << possibility unless possibility.exclude?("::")
45
+ current_class_name = possibility
46
+ end
48
47
 
49
- all_inputs = []
50
- Goaltender::Base.input_definitions.each do |class_name, form_inputs|
51
- if relevant_classes.include?(class_name)
52
- form_inputs.each do |form_input|
53
- name = form_input[0]
54
- type = form_input[1]
55
- options = form_input[2]
56
- input_value = params[name]
57
- input = Goaltender::Input.new(self, name, type, input_value, options)
58
- self.class.__send__(:attr_accessor, input.variable_name)
59
- instance_variable_set("@#{input.variable_name.to_s}", input.parsed_value)
60
- all_inputs << input
61
- end
48
+ all_inputs = []
49
+ Goaltender::Base.input_definitions.each do |class_name, form_inputs|
50
+ if relevant_classes.include?(class_name)
51
+ form_inputs.each do |form_input|
52
+ name = form_input[0]
53
+ type = form_input[1]
54
+ options = form_input[2]
55
+ input_value = params[name]
56
+ input = Goaltender::Input.new(self, name, type, input_value, options)
57
+ self.class.__send__(:attr_accessor, input.variable_name)
58
+ instance_variable_set("@#{input.variable_name.to_s}", input.parsed_value)
59
+ all_inputs << input
62
60
  end
63
61
  end
64
- all_inputs
65
62
  end
63
+ all_inputs
64
+ end
66
65
 
67
- def valid_form?
68
- valid? && object.valid?
69
- end
66
+ def valid_form?
67
+ valid? && object.valid?
68
+ end
70
69
 
71
- def persist!
72
- object.save
73
- end
70
+ def persist!
71
+ object.save
72
+ end
74
73
 
75
- # METHODS FOR CHILDREN
74
+ # METHODS FOR CHILDREN
76
75
 
77
- def after_init(args)
78
- # this method is optionally implemented by children to
79
- # override default initialization behavior
80
- end
76
+ def after_init(args)
77
+ # this method is optionally implemented by children to
78
+ # override default initialization behavior
79
+ end
81
80
 
82
- def object
83
- # optionally implemented by children
84
- end
81
+ def object
82
+ # optionally implemented by children
83
+ end
85
84
 
86
- def after_save
87
- # optionally implemented by children
88
- end
85
+ def after_save
86
+ # optionally implemented by children
87
+ end
89
88
 
90
- def before_save
91
- # optionally implemented by children
92
- end
89
+ def before_save
90
+ # optionally implemented by children
91
+ end
93
92
 
94
- end
95
93
  end
@@ -0,0 +1,23 @@
1
+ module Goaltender
2
+ module BaseModule
3
+
4
+ class << self
5
+ def included(base)
6
+ base.extend ClassMethods
7
+ end
8
+ end
9
+
10
+ module ClassMethods
11
+ def input(name, type = nil, options = {})
12
+ @@input_definitions ||= {}
13
+ array = @@input_definitions[self.name].present? ? @@input_definitions[self.name] : []
14
+ array << [name, type, options]
15
+ @@input_definitions[self.name] = array
16
+ end
17
+
18
+ def input_definitions
19
+ @@input_definitions
20
+ end
21
+ end
22
+ end
23
+ end
@@ -12,11 +12,11 @@ module Goaltender
12
12
  @parse_format = options[:parse_format]
13
13
  @form_path = options[:form_path]
14
14
  @form_class = generate_form_class
15
- @variable_name = @name
15
+ @variable_name = options[:variable_name] || @name
16
16
  end
17
17
 
18
18
  def value_parser
19
- @value_parser ||= "Goaltender::ValueParser::#{type.to_s.classify}".constantize.new({
19
+ @value_parser ||= "FormParse::ValueParser::#{type.to_s.classify}".constantize.new({
20
20
  input_value: input_value,
21
21
  parse_format: parse_format,
22
22
  form_class: form_class,
@@ -1,6 +1,6 @@
1
1
  module Goaltender
2
2
  class ValueParser
3
- class Date < ValueParser
3
+ class Datetime < ValueParser
4
4
 
5
5
  attr_reader :input_format
6
6
 
@@ -1,3 +1,12 @@
1
+ require 'goaltender/value_parser/belongs_to'
2
+ require 'goaltender/value_parser/boolean'
3
+ require 'goaltender/value_parser/date'
4
+ require 'goaltender/value_parser/datetime'
5
+ require 'goaltender/value_parser/float'
6
+ require 'goaltender/value_parser/has_many'
7
+ require 'goaltender/value_parser/integer'
8
+ require 'goaltender/value_parser/string'
9
+
1
10
  module Goaltender
2
11
  class ValueParser
3
12
 
@@ -1,3 +1,3 @@
1
1
  module Goaltender
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
data/lib/goaltender.rb CHANGED
@@ -1,25 +1,9 @@
1
- require "goaltender/version"
2
- require 'goaltender/base'
3
-
4
1
  module Goaltender
5
2
 
6
- class << self
7
- def included(base)
8
- base.extend ClassMethods
9
- end
10
- end
11
-
12
- module ClassMethods
13
- def input(name, type = nil, options = {})
14
- @@input_definitions ||= {}
15
- array = @@input_definitions[self.name].present? ? @@input_definitions[self.name] : []
16
- array << [name, type, options]
17
- @@input_definitions[self.name] = array
18
- end
19
-
20
- def input_definitions
21
- @@input_definitions
22
- end
23
- end
24
-
25
3
  end
4
+
5
+ require "goaltender/version"
6
+ require "goaltender/base_module"
7
+ require 'goaltender/value_parser'
8
+ require 'goaltender/input'
9
+ require 'goaltender/base'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: goaltender
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Francis
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-06-13 00:00:00.000000000 Z
11
+ date: 2015-08-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -54,9 +54,11 @@ files:
54
54
  - Rakefile
55
55
  - bin/console
56
56
  - bin/setup
57
+ - goaltender-0.0.1.gem
57
58
  - goaltender.gemspec
58
59
  - lib/goaltender.rb
59
60
  - lib/goaltender/base.rb
61
+ - lib/goaltender/base_module.rb
60
62
  - lib/goaltender/input.rb
61
63
  - lib/goaltender/value_parser.rb
62
64
  - lib/goaltender/value_parser/belongs_to.rb
@@ -89,7 +91,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
89
91
  version: '0'
90
92
  requirements: []
91
93
  rubyforge_project:
92
- rubygems_version: 2.2.2
94
+ rubygems_version: 2.4.8
93
95
  signing_key:
94
96
  specification_version: 4
95
97
  summary: Rails form parser