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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4e3b4daec630434e859deccc5f3838979a206640
4
- data.tar.gz: e84c4c6f3769ca000797bb6d1767bfc01db5ec86
3
+ metadata.gz: 25e1f0e527d9b98b268f786ac8d8aeda305125dc
4
+ data.tar.gz: 1cd7241c0550fae725a835976ff59d2ee4d0f979
5
5
  SHA512:
6
- metadata.gz: 42e4d5e01b44993bd7b583ad096685cae471feb97ba9936b8964574fae23bcf14d69622c73a4ca8eb843df8f2dba262908dff575cd3a42bdd28300493ab4e76d
7
- data.tar.gz: 4042f6f54acb23236928ec37474a6294b14c22347d2213551403e236fc1c8afbde2278de5739ed33a94e853368266455adf855109bba0625f4763a73f895648f
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.create(
39
- created_at: Time.zone.parse("2015-22-12 08:34:14"),
40
- updated_at: Time.zone.parse("2015-22-12 08:34:14"),
41
- id: 123,
42
- email: "goedel@incompleteness.com",
43
- name: "Goedel"
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.create(
59
- created_at: Time.zone.parse("2015-22-12 08:34:14"),
60
- updated_at: Time.zone.parse("2015-22-12 08:34:14"),
61
- id: 123,
62
- email: "goedel@incompleteness.com",
63
- name: "Goedel",
64
- address: "123 Incomplete St. Princeton, New Jersey"
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.11"
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}: #{present(val)},"
15
+ "#{instance_name}.#{prop} = #{classify(val)}"
15
16
  end
16
17
 
17
18
  private
18
19
 
19
- def present(val)
20
+ def classify(val)
20
21
  if val.is_a?(String)
21
22
  "\"#{val}\""
22
23
  elsif val.is_a?(ActiveSupport::TimeWithZone)
@@ -10,19 +10,19 @@ module Goedel
10
10
  end
11
11
 
12
12
  def generate
13
- output_array = [model_create]
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 model_create
39
- "#{object.class}.create("
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
+
@@ -1,4 +1,4 @@
1
1
  module Goedel
2
- VERSION = "0.1.4"
2
+ VERSION = "0.2.0"
3
3
  end
4
4
 
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.1.4
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: '1.11'
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: '1.11'
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
- description: ' Generate activerecord create statements from activerecord data.'
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.0.14
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