freeRangeEggs 0.0.4.beta → 0.0.5.beta

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: 523e2ce1d5a8c6f1216ca8c8da4fa3d15728329b
4
- data.tar.gz: 12271e0ab0e2877e4854747ab56c0b07fdffcb55
3
+ metadata.gz: 4f36b0300f8561f8cf478cbd1c81a9f3460611d2
4
+ data.tar.gz: 90387d6d459b7985d771058eeaa22fae98f57853
5
5
  SHA512:
6
- metadata.gz: 06b80cbfd77d510e977580fe97ce569596d26be2a5bd93df756412454e66da3e4eae7ed2a6f1fb21309f015114b14c7059cf05202850b26384461e5e05954049
7
- data.tar.gz: 67a932adc5bb3ce523a57f3f64d153578390940ee275649feaa3ce742b95bb3186e6fa045c93863fe6e340544924f0a91aad1a5aae11cce92b63e6b6b1147e8f
6
+ metadata.gz: 26967781576a2713a3f56119d7749719bfbedf8497be6a14b89eea71a22fe6d64b03bb3d39e2c721347421cc9bd7b4ef10b9d31f15390e82d93f5607ba3fb7cd
7
+ data.tar.gz: 6bf705294d1b865487bbbc091611cd794cb2a3790611d372a19fd03804570253c8a5a16278fdbd4233e5d047f4dabf98f8249a55102bd2a14e77a6168d59d5b5
@@ -1,3 +1,3 @@
1
1
  module FreeRangeEggs
2
- VERSION = "0.0.4.beta"
2
+ VERSION = "0.0.5.beta"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: freeRangeEggs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4.beta
4
+ version: 0.0.5.beta
5
5
  platform: ruby
6
6
  authors:
7
7
  - jaxi
@@ -55,7 +55,6 @@ files:
55
55
  - freeRangeEggs.gemspec
56
56
  - lib/assets/.gitkeep
57
57
  - lib/freeRangeEggs/version.rb
58
- - lib/json_to_active_record.rb
59
58
  - lib/tasks/.gitkeep
60
59
  - lib/templates/migration.erb
61
60
  - lib/templates/model.erb
@@ -1,159 +0,0 @@
1
- module JsonToActiveRecord
2
- require 'json'
3
- require 'erb'
4
- require 'zip/zip'
5
- ID_ATTR = {
6
- 'name' => 'id',
7
- 'type' => 'Integer'
8
- }
9
-
10
- SINGLE_TEST_DATA = {
11
- 'name' => 'user',
12
- 'attrs' => [
13
- {
14
- 'name' => 'first_name',
15
- 'type' => 'string'
16
- },
17
- {
18
- 'name' => 'last_name',
19
- 'type' => 'string'
20
- },
21
- {
22
- 'name' => 'no',
23
- 'type' => 'integer'
24
- },
25
- {
26
- 'name' => 'description',
27
- 'type' => 'text'
28
- }
29
- ]
30
- }
31
-
32
- class Generator
33
- attr_accessor :name, :attrs
34
-
35
- def initialize(model)
36
- @name = model['name']
37
- @attrs = model['attrs'] + [ID_ATTR]
38
- end
39
-
40
- def to_s
41
- "#{@name}\n#{@attrs}"
42
- end
43
-
44
- def get_binding
45
- binding
46
- end
47
-
48
- def self.define_component(name)
49
-
50
- define_method('get_result') do
51
-
52
- filename = File.expand_path(
53
- "./templates/#{name.to_s}.erb",
54
- File.dirname( __FILE__ ))
55
-
56
- erb_file = ERB.new File.read(filename)
57
- erb_file.result self.get_binding
58
- end
59
- end
60
- end
61
-
62
- class MigrationGenerator < Generator
63
- define_component :migration
64
- end
65
-
66
- class ModelGenerator < Generator
67
- define_component :model
68
- end
69
-
70
- def JsonToActiveRecord.generate_project(project)
71
-
72
- models = project['models']
73
-
74
- models.each do |m|
75
- model = ModelGenerator.new m
76
- model.get_result
77
-
78
- migration = MigrationGenerator.new m
79
- migration.get_result
80
- end
81
- end
82
-
83
- class ProjectGenerator
84
-
85
- attr_accessor :username, :project, :dir, :models, :model_dir, :migration_dir
86
-
87
- def initialize(project)
88
- @username = project["username"]
89
- @project = project['project']
90
- @models = project['models']
91
-
92
- @dir = "#{Rails.root}/tmp/#{@username}/#{@project}"
93
- @model_dir = "#{@dir}/models"
94
- @migration_dir = "#{@dir}/migrations"
95
-
96
- `rm -rf #{@dir}`
97
- `rm -rf #{Rails.root}/tmp/#{@username}/#{@project}.zip`
98
- `mkdir -p #{@model_dir}`
99
- `mkdir -p #{@migration_dir}`
100
- end
101
-
102
- def generate_models
103
- @models.each do |m|
104
- model = ModelGenerator.new m
105
-
106
- File.open("#{@model_dir}/#{m['name']}.rb", "w") do |file|
107
- content = model.get_result
108
- file.write content
109
- end
110
- end
111
-
112
- @models.map do |m|
113
- "models/#{m['name']}.rb"
114
- end
115
- end
116
-
117
- def generate_migrations
118
- @models.each do |m|
119
- migration = MigrationGenerator.new m
120
-
121
- File.open("#{@migration_dir}/#{m['name'].pluralize}.rb", 'w') do |file|
122
- content = migration.get_result
123
- file.write content
124
- end
125
- end
126
-
127
- @models.map do |m|
128
- "migrations/#{m['name'].pluralize}.rb"
129
- end
130
- end
131
-
132
- def generate_project
133
- models = generate_models
134
- migrations = generate_migrations
135
-
136
- zipfile_name = "#{Rails.root}/tmp/#{@username}/#{@project}.zip"
137
-
138
- Zip::ZipFile.open(zipfile_name, Zip::ZipFile::CREATE) do |zipfile|
139
-
140
- models.each do |model|
141
- zipfile.add model, "#{@dir}/#{model}"
142
- end
143
-
144
- migrations.each do |migrations|
145
- zipfile.add migrations, "#{@dir}/#{migrations}"
146
- end
147
-
148
- end
149
- return zipfile_name
150
- end
151
- end
152
-
153
- def JsonToActiveRecord.test
154
-
155
- project = ProjectGenerator.new Project.first.hashtify
156
- project.generate_project
157
- end
158
-
159
- end