schema_reader 0.0.4 → 0.0.5

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: dfa28583350f38f71cb357ef0eec362e82bc8041
4
- data.tar.gz: 08e08c0ecca1d043490d8e6c0041ae6fd80b4d9a
3
+ metadata.gz: 82239b56344297db887c8f6e598db2c216bde474
4
+ data.tar.gz: 9f374935ab0404e7012c8c094fd14ffb2f7bc668
5
5
  SHA512:
6
- metadata.gz: 61f14334fc266159320d5d0c54bcc5616c1ac03c73ee6c879e305d9e1fe52e4c07ebca6e18590b51fa73fc6861f10e36c086faa71d2514d1f8ca2f93d217eea1
7
- data.tar.gz: d192de6013b9ad4d3faa08984946fbe445de1266650e9619496810876de15d985eeabb9b80584019e2205728a69347730f6817b367d650152222930743c8e0ec
6
+ metadata.gz: b280cdb4e09bb509410d62819e68769c95d6122bb2595ac6de52ed8d22acd7b4224100d529769338a14142bafceee5e291f32b23e7d58ec2a611f2820567fc65
7
+ data.tar.gz: df4fd0de0e15d5c33d290740b3e1937d1a58c54dee68d0ccdb93e7f65163119dd6fe75e6409602335ee8cccdc5e848489d45c6a266e2296ce4c74339dd8e68f1
data/lib/schema_reader.rb CHANGED
@@ -5,9 +5,9 @@ module SchemaReader
5
5
  base.extend(ClassMethods)
6
6
  end
7
7
 
8
- def initialize(options = {})
9
- update(options)
10
- end
8
+ #def initialize(options = {})
9
+ # update(options)
10
+ #end
11
11
 
12
12
  def update(options = {})
13
13
  options.each do |attribute, value|
@@ -18,6 +18,14 @@ module SchemaReader
18
18
 
19
19
  module ClassMethods
20
20
 
21
+ def pass_attributes_to_new(bool=true)
22
+ if bool
23
+ define_method("initialize") do |options|
24
+ update(options)
25
+ end
26
+ end
27
+ end
28
+
21
29
  def attr_schema(options = {})
22
30
  table = options.fetch(:table)
23
31
  file = options.fetch(:file)
@@ -1,3 +1,3 @@
1
1
  module SchemaReader
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
@@ -22,6 +22,7 @@ Gem::Specification.new do |spec|
22
22
  spec.add_development_dependency "bundler", "~> 1.3"
23
23
  spec.add_development_dependency "rake", "~>10.1"
24
24
  spec.add_development_dependency "rspec", "~>2.14"
25
+ spec.add_development_dependency 'active_hash', '1.2.3'
25
26
  #spec.add_development_dependency "debase", "~>0.0"
26
27
  #spec.add_development_dependency "ruby-debug-ide", "~>0.4"
27
28
 
@@ -1,4 +1,5 @@
1
1
  require 'rspec'
2
+ require 'active_hash'
2
3
  require_relative '../../lib/schema_reader'
3
4
 
4
5
  describe SchemaReader do
@@ -53,11 +54,53 @@ describe SchemaReader do
53
54
 
54
55
  end
55
56
 
57
+ describe 'pass_attributes_to_new' do
58
+
59
+ it 'has arg of true' do
60
+
61
+ class CommentPassableTrue
62
+ include SchemaReader
63
+ pass_attributes_to_new true
64
+ attr_schema table: 'comments',
65
+ file: File.new('schema.rb', 'r')
66
+ end
67
+
68
+ expect(CommentPassableTrue.new(comment: "comment").comment).to eq('comment')
69
+
70
+ end
71
+
72
+ it 'has arg of false' do
73
+ class CommentPassableFalse
74
+ include SchemaReader
75
+ pass_attributes_to_new false
76
+ attr_schema table: 'comments',
77
+ file: File.new('schema.rb', 'r')
78
+ end
79
+
80
+ expect { CommentPassableFalse.new(comment: "comment").comment }.to raise_error(ArgumentError)
81
+
82
+ end
83
+
84
+ it 'has a default if method not called of false' do
85
+
86
+ class CommentPassableDefault
87
+ include SchemaReader
88
+ attr_schema table: 'comments',
89
+ file: File.new('schema.rb', 'r')
90
+ end
91
+
92
+ expect { CommentPassableDefault.new(comment: "comment").comment }.to raise_error(ArgumentError)
93
+
94
+ end
95
+
96
+ end
97
+
56
98
  describe 'associations' do
57
99
 
58
100
  before do
59
101
  class Comment
60
102
  include SchemaReader
103
+ pass_attributes_to_new :true
61
104
  attr_schema table: 'comments',
62
105
  file: File.new('schema.rb', 'r')
63
106
  end
@@ -80,4 +123,19 @@ describe SchemaReader do
80
123
 
81
124
  end
82
125
 
126
+ describe 'compatibility with ActiveHash' do
127
+
128
+ before do
129
+ class ActiveUser < ActiveHash::Base
130
+ include SchemaReader
131
+ pass_attributes_to_new false
132
+ fields *read_schema('users', File.new('schema.rb', 'r'))
133
+ end
134
+ end
135
+
136
+ it 'will have attributes from the schema file' do
137
+ expect(ActiveUser.create(name: 'Joe').name).to eq 'Joe'
138
+ end
139
+ end
140
+
83
141
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: schema_reader
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dustin Zeisler
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - ~>
53
53
  - !ruby/object:Gem::Version
54
54
  version: '2.14'
55
+ - !ruby/object:Gem::Dependency
56
+ name: active_hash
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '='
60
+ - !ruby/object:Gem::Version
61
+ version: 1.2.3
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '='
67
+ - !ruby/object:Gem::Version
68
+ version: 1.2.3
55
69
  description: Reads Rails Database schema and creates a class from selected table with
56
70
  getters and setters.
57
71
  email: