ponytail 0.0.5 → 0.1.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: d4860fce199d282dff06bc5b4911950a090aca57
4
- data.tar.gz: 7ff4d13fa13bffe3837a43aa54203ae8dac58061
3
+ metadata.gz: 6bd123ad0381ca9e4b1a1cda1776119edb61bb0b
4
+ data.tar.gz: ce92b6c142949b2bbede6e943ca4f3331403a950
5
5
  SHA512:
6
- metadata.gz: ce4733c9df76043623e1e3654d68a0f22852c18c8d14c722002869a8ba3ee5632d5617d5702e5b2b02d2ff089e5a3c93733c22e29cb388382d34d4d46ec93943
7
- data.tar.gz: d736ba57fa0667af73b60ce55b6560b965f3c7a6a9839c90df61edb6e804a581fa3a9303978d66d1c987bc1bf3e59242919de97e1ccfceb13fb7df492c635642
6
+ metadata.gz: dad876d0050fc6a7f9ba642f70315bddf7bd68270ae18631cf767178df876d96a6dd5768739574765c73bf6dfaa79d9e6ca808aa3b6ab79a120830c1464c4f7b
7
+ data.tar.gz: f25774e73631379a6d76b3ace3f161bbe9bf1ee388d54e1822cd30cb296a5c88fee08999eddd29ca7b2546c0575d0dfdd2b77933b22ad78c21663774c9628188
data/Gemfile CHANGED
@@ -2,7 +2,3 @@ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in ponytail.gemspec
4
4
  gemspec
5
-
6
- group :test do
7
- gem 'coveralls', require: false
8
- end
@@ -0,0 +1,13 @@
1
+ function CreateTable() {
2
+ this.tableName = "";
3
+ }
4
+ CreateTable.prototype = {
5
+ setTableName: function(tableName) {
6
+ this.tableName = tableName;
7
+ },
8
+ toString: function() {
9
+ return ["create_table :" + this.tableName + " do |t|",
10
+ " t.timestamps",
11
+ "end"].join("\n");
12
+ }
13
+ };
@@ -0,0 +1,24 @@
1
+ function toggleMigrationRawContent() {
2
+ var elems = document.querySelectorAll(".pt_migration .pt_migration_header");
3
+ var func = function() {
4
+ var content = this.nextElementSibling;
5
+ content.style.display = content.style.display === "" ? "block" : "";
6
+ };
7
+ for(var i = 0; i < elems.length; i++) {
8
+ elems[i].onclick = func;
9
+ }
10
+ }
11
+
12
+ function closeNotice() {
13
+ var elem = document.querySelectorAll(".pt_close_notice")[0];
14
+ if (elem !== undefined) {
15
+ elem.onclick = function() {
16
+ this.parentElement.style.display = "none";
17
+ };
18
+ }
19
+ }
20
+
21
+ function setupMigrations() {
22
+ toggleMigrationRawContent();
23
+ closeNotice();
24
+ }
@@ -0,0 +1,24 @@
1
+ function MigrationFile() {
2
+ this.className = "";
3
+ this.commands = [];
4
+ }
5
+ MigrationFile.prototype = {
6
+ setClassName: function(className) {
7
+ this.className = className;
8
+ },
9
+ toString: function() {
10
+ return ["class " + this.className + " < ActiveRecord::Migration",
11
+ " def change",
12
+ this.toStringOfCommands(),
13
+ " end",
14
+ "end"].join("\n");
15
+ },
16
+ addCommand: function(command) {
17
+ this.commands.push(command);
18
+ },
19
+ toStringOfCommands: function() {
20
+ return this.commands.map(function(command) {
21
+ return command.toString();
22
+ }).join("\n").replace(/^/, " ").replace(/\n/g, "\n ");
23
+ }
24
+ };
@@ -0,0 +1,69 @@
1
+ function toggleEditRawContent() {
2
+ var elem = document.querySelectorAll(".pt_checkbox")[0];
3
+ elem.onclick = function() {
4
+ var raw_content = document.querySelectorAll(".pt_raw_content");
5
+ var text_area = raw_content[0].children[0];
6
+ text_area.disabled = !(text_area.disabled);
7
+ };
8
+ }
9
+
10
+ function getMigrationClassName() {
11
+ var elem = document.querySelectorAll(".pt_class_name input")[0];
12
+ return elem.value;
13
+ }
14
+
15
+ function getNewTableName() {
16
+ var elem = document.querySelectorAll(".pt_new_class_name input")[0];
17
+ return elem.value;
18
+ }
19
+
20
+ function inputClassName() {
21
+ var elems = document.querySelectorAll(".pt_class_name input");
22
+ elems[0].onkeyup = function() {
23
+ var file = new MigrationFile();
24
+ file.setClassName(this.value);
25
+ var command = new CreateTable();
26
+ command.setTableName(getNewTableName());
27
+ file.addCommand(command);
28
+ var area = document.querySelectorAll(".pt_raw_content textarea")[0];
29
+ area.value = file.toString();
30
+ };
31
+ }
32
+
33
+ function clickNewTable() {
34
+ var elem = document.querySelectorAll(".pt_new_table")[0];
35
+ elem.onclick = function() {
36
+ this.style.display = "none";
37
+ var form = document.querySelectorAll(".pt_new_table_form")[0];
38
+ form.style.display = "block";
39
+ };
40
+ }
41
+
42
+ function inputNewTableName() {
43
+ var elem = document.querySelectorAll(".pt_new_class_name input")[0];
44
+ elem.onkeyup = function() {
45
+ var file = new MigrationFile();
46
+ file.setClassName(getMigrationClassName());
47
+ var command = new CreateTable();
48
+ command.setTableName(this.value);
49
+ file.addCommand(command);
50
+ var area = document.querySelectorAll(".pt_raw_content textarea")[0];
51
+ area.value = file.toString();
52
+ };
53
+ }
54
+
55
+ function clickSubmitButton() {
56
+ var elem = document.querySelectorAll(".pt_submit")[0];
57
+ elem.onclick = function() {
58
+ var text_area = document.querySelectorAll(".pt_raw_content textarea")[0];
59
+ text_area.disabled = false;
60
+ };
61
+ }
62
+
63
+ function setupNewMigration() {
64
+ toggleEditRawContent();
65
+ inputClassName();
66
+ clickNewTable();
67
+ inputNewTableName();
68
+ clickSubmitButton();
69
+ }
@@ -34,7 +34,7 @@
34
34
  <%= f.text_area :raw_content, size: '60x20', disabled: true %>
35
35
  </div>
36
36
 
37
- <%= f.submit 'Update' %>
37
+ <%= f.submit 'Create File', class: :pt_submit %>
38
38
  <% end %>
39
39
 
40
40
  <%= button_to 'Cancel', migrations_path, method: :get %>
@@ -1,3 +1,3 @@
1
1
  module Ponytail
2
- VERSION = "0.0.5"
2
+ VERSION = "0.1.0"
3
3
  end
data/ponytail.gemspec CHANGED
@@ -24,4 +24,5 @@ Gem::Specification.new do |spec|
24
24
  spec.add_development_dependency "rake"
25
25
  spec.add_development_dependency "rspec"
26
26
  spec.add_development_dependency "jasmine"
27
+ spec.add_development_dependency "coveralls"
27
28
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ponytail
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - sinsoku
@@ -80,6 +80,20 @@ dependencies:
80
80
  - - '>='
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: coveralls
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
83
97
  description: Ponytail is a Rails engine that shows the migrations.
84
98
  email:
85
99
  - sinsoku.listy@gmail.com
@@ -96,7 +110,10 @@ files:
96
110
  - README.md
97
111
  - Rakefile
98
112
  - app/assets/javascripts/ponytail/application.js
99
- - app/assets/javascripts/ponytail/migrations.js
113
+ - app/assets/javascripts/ponytail/create_table.js
114
+ - app/assets/javascripts/ponytail/index.js
115
+ - app/assets/javascripts/ponytail/migration_file.js
116
+ - app/assets/javascripts/ponytail/new.js
100
117
  - app/assets/stylesheets/ponytail/application.css
101
118
  - app/controllers/ponytail/migrations_controller.rb
102
119
  - app/views/layouts/ponytail/application.html.erb
@@ -116,7 +133,7 @@ files:
116
133
  - ponytail.gemspec
117
134
  - spec/controllers/migrations_controller_spec.rb
118
135
  - spec/javascripts/helpers/.keep
119
- - spec/javascripts/ponytail/MigrationSpec.js
136
+ - spec/javascripts/ponytail/migration_file_spec.js
120
137
  - spec/javascripts/support/jasmine.yml
121
138
  - spec/javascripts/support/jasmine_helper.rb
122
139
  - spec/ponytail/migration_spec.rb
@@ -151,7 +168,7 @@ summary: Ponytail is a Rails engine that shows the migrations.
151
168
  test_files:
152
169
  - spec/controllers/migrations_controller_spec.rb
153
170
  - spec/javascripts/helpers/.keep
154
- - spec/javascripts/ponytail/MigrationSpec.js
171
+ - spec/javascripts/ponytail/migration_file_spec.js
155
172
  - spec/javascripts/support/jasmine.yml
156
173
  - spec/javascripts/support/jasmine_helper.rb
157
174
  - spec/ponytail/migration_spec.rb
@@ -1,134 +0,0 @@
1
- function each(elems, func) {
2
- if (!elems instanceof Array) { elems = [elems]; }
3
- for (var i = elems.length; i--; ) {
4
- func(elems[i]);
5
- }
6
- }
7
-
8
- function onClick(elems, func) {
9
- each(elems, function(elem) {
10
- elem.onclick = func;
11
- });
12
- }
13
-
14
- function toggleMigrationRawContent() {
15
- var elems = document.querySelectorAll(".pt_migration .pt_migration_header");
16
- onClick(elems, function() {
17
- var content = this.nextElementSibling;
18
- content.style.display = content.style.display === "" ? "block" : "";
19
- });
20
- }
21
-
22
- function closeNotice() {
23
- var elems = document.querySelectorAll(".pt_close_notice");
24
- onClick(elems, function() {
25
- this.parentElement.style.display = "none";
26
- });
27
- }
28
-
29
- function toggleEditRawContent() {
30
- var elems = document.querySelectorAll(".pt_checkbox");
31
- onClick(elems, function() {
32
- var raw_content = document.querySelectorAll(".pt_raw_content");
33
- var text_area = raw_content[0].children[0];
34
- text_area.disabled = !(text_area.disabled);
35
- });
36
- }
37
-
38
- function MigrationFile() {
39
- this.className = "";
40
- this.commands = [];
41
- }
42
-
43
- MigrationFile.prototype.setClassName = function(className) {
44
- this.className = className;
45
- };
46
-
47
- MigrationFile.prototype.toString = function() {
48
- return ["class " + this.className + " < ActiveRecord::Migration",
49
- " def change",
50
- this.toStringOfCommands(),
51
- " end",
52
- "end"].join("\n");
53
- };
54
-
55
- MigrationFile.prototype.addCommand = function(command) {
56
- this.commands.push(command);
57
- };
58
-
59
- MigrationFile.prototype.toStringOfCommands = function() {
60
- return this.commands.map(function(command) {
61
- return command.toString();
62
- }).join("\n").replace(/^/, " ").replace(/\n/g, "\n ");
63
- };
64
-
65
- function CreateTable() {
66
- this.tableName = "";
67
- }
68
-
69
- CreateTable.prototype.setTableName = function(tableName) {
70
- this.tableName = tableName;
71
- };
72
-
73
- CreateTable.prototype.toString = function() {
74
- return ["create_table :" + this.tableName + " do |t|",
75
- " t.timestamps",
76
- "end"].join("\n");
77
- };
78
-
79
- function getMigrationClassName() {
80
- var elem = document.querySelectorAll(".pt_class_name input")[0];
81
- return elem.value;
82
- }
83
-
84
- function getNewTableName() {
85
- var elem = document.querySelectorAll(".pt_new_class_name input")[0];
86
- return elem.value;
87
- }
88
-
89
- function inputClassName() {
90
- var elems = document.querySelectorAll(".pt_class_name input");
91
- elems[0].onkeyup = function() {
92
- var file = new MigrationFile();
93
- file.setClassName(this.value);
94
- var command = new CreateTable();
95
- command.setTableName(getNewTableName());
96
- file.addCommand(command);
97
- var area = document.querySelectorAll(".pt_raw_content textarea")[0];
98
- area.value = file.toString();
99
- };
100
- }
101
-
102
- function clickNewTable() {
103
- var elem = document.querySelectorAll(".pt_new_table")[0];
104
- elem.onclick = function() {
105
- this.style.display = "none";
106
- var form = document.querySelectorAll(".pt_new_table_form")[0];
107
- form.style.display = "block";
108
- };
109
- }
110
-
111
- function inputNewTableName() {
112
- var elem = document.querySelectorAll(".pt_new_class_name input")[0];
113
- elem.onkeyup = function() {
114
- var file = new MigrationFile();
115
- file.setClassName(getMigrationClassName());
116
- var command = new CreateTable();
117
- command.setTableName(this.value);
118
- file.addCommand(command);
119
- var area = document.querySelectorAll(".pt_raw_content textarea")[0];
120
- area.value = file.toString();
121
- };
122
- }
123
-
124
- function setupMigrations() {
125
- toggleMigrationRawContent();
126
- closeNotice();
127
- }
128
-
129
- function setupNewMigration() {
130
- toggleEditRawContent();
131
- inputClassName();
132
- clickNewTable();
133
- inputNewTableName();
134
- }