goedel 0.1.4 → 0.2.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.
- checksums.yaml +4 -4
- data/README.md +16 -16
- data/goedel.gemspec +2 -1
- data/lib/goedel/line.rb +5 -4
- data/lib/goedel/statement.rb +14 -5
- data/lib/goedel/version.rb +1 -1
- metadata +32 -18
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 25e1f0e527d9b98b268f786ac8d8aeda305125dc
|
4
|
+
data.tar.gz: 1cd7241c0550fae725a835976ff59d2ee4d0f979
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 19bb6489ef77415578f07ccaeee9a3409b4a6ec1ad0bea7ea46b644ba446fe712488ca7e232f55588df2dd03c12ec76a97ce18905aa2087b1a59f77027634b79
|
7
|
+
data.tar.gz: 093b7b444bdb4ee18f7b152ec87ea23d9c1f327c4a48596eeab2c5b35847ab77f9b7cab3d783d8daadc14a79a46ad68661d2608aceac6ee930ae23d4e23286c0
|
data/README.md
CHANGED
@@ -35,16 +35,15 @@ pp last_user.attributes
|
|
35
35
|
Goedel.goedel(last_user)
|
36
36
|
|
37
37
|
# will print out activerecord create statement which can create the data object
|
38
|
-
User.
|
39
|
-
created_at
|
40
|
-
updated_at
|
41
|
-
id
|
42
|
-
email
|
43
|
-
name
|
44
|
-
|
38
|
+
my_user = User.new
|
39
|
+
my_user.created_at = Time.zone.parse("2015-22-12 08:34:14")
|
40
|
+
my_user.updated_at = Time.zone.parse("2015-22-12 08:34:14")
|
41
|
+
my_user.id = 123
|
42
|
+
my_user.email = "goedel@incompleteness.com"
|
43
|
+
my_user.name = "Goedel"
|
44
|
+
my_user.save
|
45
45
|
|
46
46
|
# and then return it as a string
|
47
|
-
=> "User.create(\n id: 123,\n email: \"goedel@incompleteness.com\",\n name: \"Goedel\", \n address: \"123 Recurse St. Princeton, New Jersey\""
|
48
47
|
|
49
48
|
# Not all a record's attributes will show up sometimes, especially those delegated through associations.
|
50
49
|
# You can force these attributes to show up
|
@@ -55,14 +54,15 @@ User.create(
|
|
55
54
|
|
56
55
|
Goedel.goedel(last_user, force_attributes: [:address])
|
57
56
|
|
58
|
-
User.
|
59
|
-
created_at
|
60
|
-
updated_at
|
61
|
-
id
|
62
|
-
email
|
63
|
-
name
|
64
|
-
address
|
65
|
-
|
57
|
+
my_user = User.new
|
58
|
+
my_user.created_at = Time.zone.parse("2015-22-12 08:34:14")
|
59
|
+
my_user.updated_at = Time.zone.parse("2015-22-12 08:34:14")
|
60
|
+
my_user.id = 123
|
61
|
+
my_user.email = "goedel@incompleteness.com"
|
62
|
+
my_user.name = "Goedel"
|
63
|
+
my_user.address = "123 Incomplete St. Princeton, New Jersey"
|
64
|
+
my_user.save
|
65
|
+
|
66
66
|
|
67
67
|
# You can also override attribute values
|
68
68
|
|
data/goedel.gemspec
CHANGED
@@ -24,8 +24,9 @@ Gem::Specification.new do |spec|
|
|
24
24
|
|
25
25
|
spec.add_dependency "activesupport", "~> 3.2"
|
26
26
|
|
27
|
-
spec.add_development_dependency "bundler", "~> 1.
|
27
|
+
spec.add_development_dependency "bundler", "~> 1.7.6"
|
28
28
|
spec.add_development_dependency "pry", "0.10.3"
|
29
29
|
spec.add_development_dependency "rake", "~> 10.0"
|
30
30
|
spec.add_development_dependency "rspec", "~> 3.0"
|
31
|
+
spec.add_development_dependency "tzinfo", "~> 1.2"
|
31
32
|
end
|
data/lib/goedel/line.rb
CHANGED
@@ -3,20 +3,21 @@ require "bigdecimal"
|
|
3
3
|
|
4
4
|
module Goedel
|
5
5
|
class Line
|
6
|
-
attr_reader :prop, :val
|
6
|
+
attr_reader :prop, :val, :instance_name
|
7
7
|
|
8
|
-
def initialize(prop, val)
|
8
|
+
def initialize(instance_name, prop, val)
|
9
|
+
@instance_name = instance_name
|
9
10
|
@prop = prop
|
10
11
|
@val = val
|
11
12
|
end
|
12
13
|
|
13
14
|
def generate
|
14
|
-
"#{prop}
|
15
|
+
"#{instance_name}.#{prop} = #{classify(val)}"
|
15
16
|
end
|
16
17
|
|
17
18
|
private
|
18
19
|
|
19
|
-
def
|
20
|
+
def classify(val)
|
20
21
|
if val.is_a?(String)
|
21
22
|
"\"#{val}\""
|
22
23
|
elsif val.is_a?(ActiveSupport::TimeWithZone)
|
data/lib/goedel/statement.rb
CHANGED
@@ -10,19 +10,19 @@ module Goedel
|
|
10
10
|
end
|
11
11
|
|
12
12
|
def generate
|
13
|
-
output_array = [
|
13
|
+
output_array = [model_instantiate]
|
14
14
|
model_attributes.each do |prop, val|
|
15
15
|
next unless val
|
16
16
|
output_array << "#{" "*indent}#{attr_line(prop, val)}"
|
17
17
|
end
|
18
|
-
output_array << "
|
18
|
+
output_array << "#{instance_name}.save"
|
19
19
|
output_array.join("\n")
|
20
20
|
end
|
21
21
|
|
22
22
|
private
|
23
23
|
|
24
24
|
def attr_line(prop, val)
|
25
|
-
Goedel::Line.new(prop, val).generate
|
25
|
+
Goedel::Line.new(instance_name, prop, val).generate
|
26
26
|
end
|
27
27
|
|
28
28
|
def model_attributes
|
@@ -35,9 +35,18 @@ module Goedel
|
|
35
35
|
obj_attr.merge(override_attributes)
|
36
36
|
end
|
37
37
|
|
38
|
-
def
|
39
|
-
"#{
|
38
|
+
def model_instantiate
|
39
|
+
"#{instance_name} = #{class_name}.new"
|
40
|
+
end
|
41
|
+
|
42
|
+
def class_name
|
43
|
+
object.class.to_s
|
44
|
+
end
|
45
|
+
|
46
|
+
def instance_name
|
47
|
+
"my_#{object.class.to_s.downcase}"
|
40
48
|
end
|
41
49
|
end
|
42
50
|
end
|
43
51
|
|
52
|
+
|
data/lib/goedel/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: goedel
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Steven Li
|
@@ -14,30 +14,30 @@ dependencies:
|
|
14
14
|
name: activesupport
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '3.2'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - ~>
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '3.2'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - ~>
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 1.7.6
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - ~>
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: 1.7.6
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: pry
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -56,40 +56,54 @@ dependencies:
|
|
56
56
|
name: rake
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - ~>
|
59
|
+
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '10.0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - ~>
|
66
|
+
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '10.0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rspec
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- - ~>
|
73
|
+
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '3.0'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- - ~>
|
80
|
+
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '3.0'
|
83
|
-
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: tzinfo
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '1.2'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '1.2'
|
97
|
+
description: " Generate activerecord create statements from activerecord data."
|
84
98
|
email:
|
85
99
|
- steven@anyperk.com
|
86
100
|
executables: []
|
87
101
|
extensions: []
|
88
102
|
extra_rdoc_files: []
|
89
103
|
files:
|
90
|
-
- .gitignore
|
91
|
-
- .rspec
|
92
|
-
- .travis.yml
|
104
|
+
- ".gitignore"
|
105
|
+
- ".rspec"
|
106
|
+
- ".travis.yml"
|
93
107
|
- CODE_OF_CONDUCT.md
|
94
108
|
- Gemfile
|
95
109
|
- LICENSE.txt
|
@@ -112,17 +126,17 @@ require_paths:
|
|
112
126
|
- lib
|
113
127
|
required_ruby_version: !ruby/object:Gem::Requirement
|
114
128
|
requirements:
|
115
|
-
- -
|
129
|
+
- - ">="
|
116
130
|
- !ruby/object:Gem::Version
|
117
131
|
version: '0'
|
118
132
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
119
133
|
requirements:
|
120
|
-
- -
|
134
|
+
- - ">="
|
121
135
|
- !ruby/object:Gem::Version
|
122
136
|
version: '0'
|
123
137
|
requirements: []
|
124
138
|
rubyforge_project:
|
125
|
-
rubygems_version: 2.
|
139
|
+
rubygems_version: 2.2.2
|
126
140
|
signing_key:
|
127
141
|
specification_version: 4
|
128
142
|
summary: Generate activerecord create statements from activerecord data
|