freeRangeEggs 0.0.4.beta → 0.0.5.beta

Sign up to get free protection for your applications and to get access to all the features.
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