make 0.1.2 → 0.1.3
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/lib/make.rb +9 -7
- data/lib/make/{builder.rb → form.rb} +1 -4
- data/lib/make/header.rb +5 -0
- data/lib/make/table.rb +116 -0
- metadata +8 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 358db4322a2767db4c9dd0c00e99ee89ca7951a1
|
4
|
+
data.tar.gz: b50babfd88a375ca57b3d86a7844e442a9c59c0d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 51f33682f3ec11e429d66a596ccf475741fc91940b23fd88a48f56284fbf65af61218215527b11fdb0e24afb9954f56373ec39f8dcba5297adede38a46727732
|
7
|
+
data.tar.gz: 53c09c37b3e70b2456c529610c7e85b8be709c06b73b75caeb2c40856132e000ae40fb5da1792b41c5fb3794e7b19b54cb8a4946bc74745bedfcb0f7e9e701fd
|
data/lib/make.rb
CHANGED
@@ -1,17 +1,19 @@
|
|
1
|
-
require 'make/
|
1
|
+
require 'make/header.rb'
|
2
|
+
require 'make/form.rb'
|
3
|
+
require 'make/table.rb'
|
4
|
+
|
2
5
|
module Make
|
3
|
-
def initialize
|
4
|
-
@thead=''
|
5
|
-
@tbody=''
|
6
|
-
end
|
7
6
|
def self.header(title = 'title here')
|
8
|
-
string =
|
7
|
+
string = Header.header(title)
|
9
8
|
string = string.html_safe
|
10
9
|
return string
|
11
10
|
end
|
12
11
|
def self.form(input, options = {})
|
13
|
-
string =
|
12
|
+
string = Form.form(input.to_s, input.column_names, options)
|
14
13
|
string = string.html_safe
|
15
14
|
return string
|
16
15
|
end
|
16
|
+
def self.table
|
17
|
+
return Table.new
|
18
|
+
end
|
17
19
|
end
|
@@ -1,7 +1,4 @@
|
|
1
|
-
module
|
2
|
-
def self.header(title)
|
3
|
-
return '<meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><title>'+title+'</title><meta name="description" content=""><meta name="viewport" content="width=device-width, initial-scale=1">'
|
4
|
-
end
|
1
|
+
module Form
|
5
2
|
def self.form(model, columnNames, options = {})
|
6
3
|
# Convert given model into String
|
7
4
|
controller=model.to_s.downcase+"s"
|
data/lib/make/header.rb
ADDED
data/lib/make/table.rb
ADDED
@@ -0,0 +1,116 @@
|
|
1
|
+
class Table
|
2
|
+
def initialize
|
3
|
+
@thead=''
|
4
|
+
@tbody=''
|
5
|
+
# These are the table keys to ignore when rendering table
|
6
|
+
@keys_to_ignore=['id','created_at','updated_at']
|
7
|
+
@keys_to_show=[]
|
8
|
+
@combination=[]
|
9
|
+
end
|
10
|
+
|
11
|
+
# Assigns desired column names to be combined
|
12
|
+
def combo cols
|
13
|
+
cols.each { |result,parts|
|
14
|
+
@combination=parts
|
15
|
+
@keys_to_ignore+=parts
|
16
|
+
@keys_to_show.push(result)
|
17
|
+
}
|
18
|
+
return self
|
19
|
+
end
|
20
|
+
|
21
|
+
# Assigns previously hidden column names as to be shown
|
22
|
+
def show *to_show
|
23
|
+
@keys_to_ignore-=to_show
|
24
|
+
return self
|
25
|
+
end
|
26
|
+
|
27
|
+
# Must provide model as a String, uppercase
|
28
|
+
def model model,*rest
|
29
|
+
controller=model.downcase+"s"
|
30
|
+
# Convert given model String into Object
|
31
|
+
model=model.constantize.all
|
32
|
+
columns=@keys_to_show+model.column_names-@keys_to_ignore
|
33
|
+
|
34
|
+
# HEADER
|
35
|
+
# Makes default headers based on column names
|
36
|
+
columns.each {|key|
|
37
|
+
if key[-3..-1]=='_id'
|
38
|
+
key=key[0...-3]
|
39
|
+
end
|
40
|
+
@thead+="\n\t\t\t<th>"+key.gsub('_',' ').titleize+'</th>'
|
41
|
+
}
|
42
|
+
@thead+="\n\t\t\t<th>Action</th>"
|
43
|
+
|
44
|
+
# BODY
|
45
|
+
# Makes table from given model and row limit, if any
|
46
|
+
if rest.length
|
47
|
+
limit=model.length-1
|
48
|
+
# Set limit to custom value if not nil, 0, or model.length
|
49
|
+
if ![nil,0,model.length].include?(rest[1])
|
50
|
+
limit=rest[1]-1
|
51
|
+
end
|
52
|
+
|
53
|
+
# Makes <tr>s from models array until specified or default limit
|
54
|
+
model[0..limit].each {|user|
|
55
|
+
@tbody+="\n\t\t<tr>"
|
56
|
+
# Makes merged columns, if specified
|
57
|
+
if @combination.length!=0
|
58
|
+
all_vals=[]
|
59
|
+
@combination.each { |col| all_vals.push(user.attributes[col].to_s) }
|
60
|
+
@tbody+="\n\t\t\t<td>"+all_vals.join(" ")+'</td>'
|
61
|
+
end
|
62
|
+
|
63
|
+
# Makes <td>s
|
64
|
+
user.attributes.except(*@keys_to_ignore).each {|key,val|
|
65
|
+
if key[-3..-1]=='_id'
|
66
|
+
# Use '.keys' & '.values' to get certain # key or value from hash
|
67
|
+
val=key[0...-3].capitalize.constantize.find(val).attributes.values[val]
|
68
|
+
elsif key=='created_at' || key=='updated_at'
|
69
|
+
val=val.strftime("%b %d, %Y %I:%M %p")
|
70
|
+
end
|
71
|
+
@tbody+="\n\t\t\t<td>"+val.to_s+'</td>'
|
72
|
+
}
|
73
|
+
|
74
|
+
# Generates (C)RUD links
|
75
|
+
crud="\n\t\t\t<td><a href=\"/"+controller+"/"+user.id.to_s+"\">Show</a> | <a href=\"/"+controller+"/"+user.id.to_s+"/edit\">Edit</a> | <a href=\"/"+controller+"/"+user.id.to_s+"\" data-method=\"delete\">Delete</a></td>"
|
76
|
+
@tbody+=crud+"\n\t\t</tr>"
|
77
|
+
}
|
78
|
+
end
|
79
|
+
return self
|
80
|
+
end
|
81
|
+
|
82
|
+
# Makes custom headers
|
83
|
+
def th *ths
|
84
|
+
@thead=''
|
85
|
+
ths.each { |custom_header| @thead+="\n\t\t\t<th>%s</th>" % custom_header }
|
86
|
+
return self
|
87
|
+
end
|
88
|
+
|
89
|
+
# Makes custom-sized table; send in 0 for default col/row #
|
90
|
+
def custom columns,rows
|
91
|
+
for row in 1..rows
|
92
|
+
@tbody+="\n\t\t<tr>"
|
93
|
+
for column in 1..columns
|
94
|
+
@tbody+="\n\t\t\t<td></td>"
|
95
|
+
end
|
96
|
+
@tbody+="\n\t\t</tr>"
|
97
|
+
end
|
98
|
+
return self
|
99
|
+
end
|
100
|
+
|
101
|
+
# Writes table html code to 'table_html.txt' file located in application's root folder
|
102
|
+
def file
|
103
|
+
File.open('table_html.txt', 'w') { |f| f.write(("<table>\n\t<thead>\n\t\t<tr>"+@thead+"\n\t\t</tr>\n\t</thead>\n\t<tbody>"+@tbody+"\n\t</tbody>\n</table>")) }
|
104
|
+
return self
|
105
|
+
end
|
106
|
+
|
107
|
+
# Generates for loop code in 'table_html.txt'
|
108
|
+
def for!
|
109
|
+
# "<table>\n\t<thead>\n\t\t<tr>"+@thead+"\n\t\t</tr>\n\t</thead>\n\t<tbody><% for |row| in "++"\n\t</tbody>\n</table>"
|
110
|
+
end
|
111
|
+
|
112
|
+
# Place table code into view
|
113
|
+
def now!
|
114
|
+
return ('<table><thead><tr>'+@thead+'</tr></thead><tbody>'+@tbody+'</tbody></table>').html_safe
|
115
|
+
end
|
116
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: make
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sara Wong
|
@@ -9,13 +9,13 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-02-
|
12
|
+
date: 2014-02-09 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: A gem that shortcuts typing out forms for SQL users. Assuming your model
|
15
|
-
is named
|
15
|
+
is named Model_Name, just type <%= Make.form(Model) %> wherever in your Rails view
|
16
16
|
and it will return an html-safe string from your column names for creating a new
|
17
|
-
record. In addition, you can type <%= Make.table(
|
18
|
-
generate a table. More functions to follow!
|
17
|
+
record. In addition, you can type <%= Make.table.model("Table_Name").now! %> to
|
18
|
+
automatically generate a table. More functions to follow!
|
19
19
|
email:
|
20
20
|
- swong2@wellesley.edu
|
21
21
|
- utemoc@gmail.com
|
@@ -25,7 +25,9 @@ extensions: []
|
|
25
25
|
extra_rdoc_files: []
|
26
26
|
files:
|
27
27
|
- lib/make.rb
|
28
|
-
- lib/make/
|
28
|
+
- lib/make/header.rb
|
29
|
+
- lib/make/form.rb
|
30
|
+
- lib/make/table.rb
|
29
31
|
- bin/make
|
30
32
|
homepage: http://rubygems.org/gems/make
|
31
33
|
licenses:
|