conjoin 0.0.7 → 0.0.8

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: ac1323a2c159994b3c2e7a58f0f8b85e42e392df
4
- data.tar.gz: 726ed880c4471213259ddfa3c6f3bf8126a5e6e9
3
+ metadata.gz: 37b3b3e0dea3d26b4c82214d197eb158e543c5da
4
+ data.tar.gz: 3b309564ec3d2a4cf8077d104f9cdeb8a39f1c79
5
5
  SHA512:
6
- metadata.gz: 623b8011f05b0e4582542f387d2787c07949e85aa97108bccd853edaa7326ad9ec032f9c6b58c127b8516320aec4a3cbf471e8c58ca981e242ada3463de98391
7
- data.tar.gz: 33c5837e860eb51212f2049f0b3db5b1a68a062f7a7f330e0cee5c58a3823a60c66a820cccd8662df5623bcc6df20d3ec1a1f63a60ed1b5123f8449d31e42f3d
6
+ metadata.gz: 017d486d53c6159088e8d2facb64e9956519d9d81852688c4e20ea209d4debf43d884b1e5de2dd4407425eb3334041d2790559cc8767cfd5e21afd6f7a617f6b
7
+ data.tar.gz: fa8ddf1a40b6035986e16799695891208c6d2f09b1adaaafc1adb73ce8966cb6ae3211ab0aa6947f491c7771fac27d5fc33a925ba00866bb56552050007bb92e
data/lib/conjoin.rb CHANGED
@@ -25,6 +25,10 @@ module Conjoin
25
25
  autoload :I18N , "conjoin/i18n"
26
26
  autoload :Widgets , "conjoin/widgets"
27
27
  autoload :Csrf , "conjoin/csrf"
28
+ autoload :As , "conjoin/as"
29
+ autoload :Ui , "conjoin/ui"
30
+ autoload :JQuery , "conjoin/jquery"
31
+ autoload :Nav , "conjoin/nav"
28
32
  # ActionMailer
29
33
  # https://gist.github.com/acwright/1944639
30
34
  # DelayedJob
data/lib/conjoin/as.rb ADDED
@@ -0,0 +1,38 @@
1
+ module Conjoin
2
+ module As
3
+ # Public: Sugar to do some common response tasks
4
+ #
5
+ # http_code - Response status code (default: 200)
6
+ # extra_headers - Extra headers hash (default: {})
7
+ #
8
+ # Examples:
9
+ #
10
+ # on post, "users" do
11
+ # as 201 do
12
+ # "User successfully created!"
13
+ # end
14
+ # end
15
+ def as(http_code = 200, extra_headers = {}, &block)
16
+ res.status = http_code
17
+ res.headers.merge! extra_headers
18
+ yield if block
19
+ end
20
+
21
+ # Public: Sugar to do some common response tasks as_json
22
+ #
23
+ # http_code - Response status code (default: 200)
24
+ # extra_headers - Extra headers hash (default: {})
25
+ # Examples:
26
+ #
27
+ # on post, "users" do
28
+ # as_json 201 do
29
+ # "User successfully created!"
30
+ # end
31
+ # end
32
+ def as_json(http_code = 200, extra_headers = {}, &block)
33
+ require 'json'
34
+ extra_headers["Content-Type"] ||= "application/json"
35
+ as(http_code, extra_headers) { yield.to_json if block }
36
+ end
37
+ end
38
+ end
@@ -81,13 +81,13 @@ module Conjoin
81
81
  Assets.app.settings[:assets]
82
82
  end
83
83
 
84
- def links_for type, opts = {}
84
+ def links_for type, opts = {}
85
85
  method = :link
86
86
  path = :href
87
87
  extention = :css
88
88
 
89
89
  options = {
90
- 'data-turbolinks-track' => true
90
+ 'data-turbolinks-track' => 'true'
91
91
  }
92
92
 
93
93
  case type
data/lib/conjoin/auth.rb CHANGED
@@ -30,7 +30,7 @@ module Conjoin
30
30
 
31
31
  def current_user
32
32
  if not Conjoin.env.mounted?
33
- authenticated(VendorWizard::User)
33
+ authenticated(Subro::Models::User)
34
34
  else
35
35
  req.env['warden'].authenticate(scope: :user)
36
36
  end
data/lib/conjoin/cuba.rb CHANGED
@@ -64,7 +64,7 @@ module Conjoin
64
64
  end
65
65
 
66
66
  def partial template, locals = {}
67
- partial_template = template.gsub(/([a-zA-Z_]+)$/, '_\1')
67
+ partial_template = template.to_s.gsub(/([a-zA-Z_]+)$/, '_\1')
68
68
  render(template_path(partial_template), locals, settings[:render][:options])
69
69
  end
70
70
  end
@@ -3,9 +3,9 @@ require "rack/csrf"
3
3
  module Conjoin
4
4
  module FormBuilder
5
5
  INPUTS = [
6
- :boolean, :checkbox, :date, :decimal, :file, :hidden,
7
- :integer, :password, :radio, :select, :state, :string,
8
- :time
6
+ :boolean , :checkbox , :date , :decimal , :file , :hidden ,
7
+ :integer , :password , :radio , :select , :state , :string ,
8
+ :display , :datetime , :time , :year
9
9
  ]
10
10
 
11
11
  def self.setup app
@@ -0,0 +1,11 @@
1
+ module Conjoin
2
+ module FormBuilder
3
+ class DatetimeInput < Input
4
+ def display
5
+ options[:date] = true
6
+ options[:value] = R18n.l options[:value]
7
+ super
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,16 @@
1
+ module Conjoin
2
+ module FormBuilder
3
+ class DisplayInput < Input
4
+ def display
5
+ options[:class].gsub!(/form-control/, '')
6
+ options[:class] += ' form-control-static'
7
+
8
+ mab do
9
+ p class: options[:class] do
10
+ text options[:value]
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -7,25 +7,25 @@ module Conjoin
7
7
 
8
8
  radios = options[:radios] || [:yes, :no]
9
9
 
10
- opts = options.dup
11
-
12
10
  mab do
13
- div class: 'form-control' do
14
- radios.each_with_index do |name, i|
15
- name = name.to_s
16
- opts[:value] = name
17
- opts[:id] = "#{options[:id]}_#{i}"
11
+ radios.each_with_index do |name, i|
12
+ opts = options.dup
13
+
14
+ name = name.to_s
15
+ opts[:value] = name
16
+ opts[:id] = "#{options[:id]}_#{i}"
18
17
 
19
- if (opts[:value] == 'no' and data.value == false) \
20
- or (opts[:value] == 'yes' and data.value == true) \
21
- or (opts[:value] == data.value)
22
- opts[:checked] = 'checked'
23
- else
24
- opts.delete :checked
25
- end
18
+ if (opts[:value] == 'no' and data.value == 'no') \
19
+ or (opts[:value] == 'yes' and data.value == 'yes') \
20
+ or (opts[:value] == data.value)
21
+ opts[:checked] = 'checked'
22
+ else
23
+ opts.delete :checked
24
+ end
26
25
 
26
+ label class: 'radio-inline' do
27
27
  input opts
28
- span name.humanize
28
+ text! name.humanize
29
29
  end
30
30
  end
31
31
  end
@@ -1,30 +1,31 @@
1
1
  module Conjoin
2
2
  module FormBuilder
3
3
  class SelectInput < Input
4
- @select_options = {}
5
-
6
4
  def display
7
- mab do
5
+ append_button = options.delete :append_button
6
+
7
+ content = mab do
8
8
  # automatically add a prompt by default
9
- options[:prompt] = true unless options.key? :prompt
10
- options[:class] += ' select2'
9
+ options[:prompt] = 'true' unless options.key? :prompt
10
+ options[:class] += ' selectize'
11
11
  selected_value = options.delete :value
12
12
 
13
13
  select options do
14
+ opts = {
15
+ value: ''
16
+ }
17
+
14
18
  if prompt = options.delete(:prompt)
15
- opts = {
16
- value: ''
17
- }
18
19
  opts['selected'] = 'selected' unless selected_value
19
20
  option opts do
20
- text prompt.to_s == 'true' ? 'Please Choose One.' : prompt
21
+ text! prompt.to_s == 'true' ? 'Please Choose One.' : prompt
21
22
  end
22
23
  end
23
24
 
24
25
  if not options[:group]
25
- select_options.each do |name, value|
26
+ select_options.invert.each do |name, value|
26
27
  option render_opts(value, selected_value, opts) do
27
- text name.titleize
28
+ text (name != name.upcase ? name.titleize : name)
28
29
  end
29
30
  end
30
31
  else
@@ -40,6 +41,21 @@ module Conjoin
40
41
  end
41
42
  end
42
43
  end
44
+
45
+ if not append_button
46
+ content
47
+ else
48
+ mab do
49
+ div class: 'input-group' do
50
+ text! content
51
+ div class: 'input-group-btn' do
52
+ button class: 'btn btn-primary', type: 'button', 'on-click-get' => append_button[:href] do
53
+ text append_button[:text]
54
+ end
55
+ end
56
+ end
57
+ end
58
+ end
43
59
  end
44
60
 
45
61
  def render_opts value, selected_value, opts
@@ -49,19 +65,11 @@ module Conjoin
49
65
  if selected_value.is_a? ActiveRecord::Associations::CollectionProxy
50
66
  opts['selected'] = 'selected' if selected_value.map(&:id).include? value
51
67
  else
52
- opts['selected'] = 'selected' if selected_value == value.to_s
68
+ opts['selected'] = 'selected' if selected_value.to_s == value.to_s
53
69
  end
54
70
 
55
71
  opts
56
72
  end
57
-
58
- def self.select_options
59
- @select_options
60
- end
61
-
62
- def select_options
63
- self.class.select_options.invert
64
- end
65
73
  end
66
74
  end
67
75
  end
@@ -3,66 +3,68 @@ require_relative 'select'
3
3
  module Conjoin
4
4
  module FormBuilder
5
5
  class StateInput < SelectInput
6
- @select_options = {
7
- 'AL' => 'Alabama',
8
- 'AK' => 'Alaska',
9
- 'AS' => 'America Samoa',
10
- 'AZ' => 'Arizona',
11
- 'AR' => 'Arkansas',
12
- 'CA' => 'California',
13
- 'CO' => 'Colorado',
14
- 'CT' => 'Connecticut',
15
- 'DE' => 'Delaware',
16
- 'DC' => 'District of Columbia',
17
- 'FM' => 'Micronesia',
18
- 'FL' => 'Florida',
19
- 'GA' => 'Georgia',
20
- 'GU' => 'Guam',
21
- 'HI' => 'Hawaii',
22
- 'ID' => 'Idaho',
23
- 'IL' => 'Illinois',
24
- 'IN' => 'Indiana',
25
- 'IA' => 'Iowa',
26
- 'KS' => 'Kansas',
27
- 'KY' => 'Kentucky',
28
- 'LA' => 'Louisiana',
29
- 'ME' => 'Maine',
30
- 'MH' => 'Islands',
31
- 'MD' => 'Maryland',
32
- 'MA' => 'Massachusetts',
33
- 'MI' => 'Michigan',
34
- 'MN' => 'Minnesota',
35
- 'MS' => 'Mississippi',
36
- 'MO' => 'Missouri',
37
- 'MT' => 'Montana',
38
- 'NE' => 'Nebraska',
39
- 'NV' => 'Nevada',
40
- 'NH' => 'New Hampshire',
41
- 'NJ' => 'New Jersey',
42
- 'NM' => 'New Mexico',
43
- 'NY' => 'New York',
44
- 'NC' => 'North Carolina',
45
- 'ND' => 'North Dakota',
46
- 'OH' => 'Ohio',
47
- 'OK' => 'Oklahoma',
48
- 'OR' => 'Oregon',
49
- 'PW' => 'Palau',
50
- 'PA' => 'Pennsylvania',
51
- 'PR' => 'Puerto Rico',
52
- 'RI' => 'Rhode Island',
53
- 'SC' => 'South Carolina',
54
- 'SD' => 'South Dakota',
55
- 'TN' => 'Tennessee',
56
- 'TX' => 'Texas',
57
- 'UT' => 'Utah',
58
- 'VT' => 'Vermont',
59
- 'VI' => 'Virgin Island',
60
- 'VA' => 'Virginia',
61
- 'WA' => 'Washington',
62
- 'WV' => 'West Virginia',
63
- 'WI' => 'Wisconsin',
64
- 'WY' => 'Wyoming'
65
- }
6
+ def select_options
7
+ {
8
+ 'AL' => 'Alabama',
9
+ 'AK' => 'Alaska',
10
+ 'AS' => 'America Samoa',
11
+ 'AZ' => 'Arizona',
12
+ 'AR' => 'Arkansas',
13
+ 'CA' => 'California',
14
+ 'CO' => 'Colorado',
15
+ 'CT' => 'Connecticut',
16
+ 'DE' => 'Delaware',
17
+ 'DC' => 'District of Columbia',
18
+ 'FM' => 'Micronesia',
19
+ 'FL' => 'Florida',
20
+ 'GA' => 'Georgia',
21
+ 'GU' => 'Guam',
22
+ 'HI' => 'Hawaii',
23
+ 'ID' => 'Idaho',
24
+ 'IL' => 'Illinois',
25
+ 'IN' => 'Indiana',
26
+ 'IA' => 'Iowa',
27
+ 'KS' => 'Kansas',
28
+ 'KY' => 'Kentucky',
29
+ 'LA' => 'Louisiana',
30
+ 'ME' => 'Maine',
31
+ 'MH' => 'Islands',
32
+ 'MD' => 'Maryland',
33
+ 'MA' => 'Massachusetts',
34
+ 'MI' => 'Michigan',
35
+ 'MN' => 'Minnesota',
36
+ 'MS' => 'Mississippi',
37
+ 'MO' => 'Missouri',
38
+ 'MT' => 'Montana',
39
+ 'NE' => 'Nebraska',
40
+ 'NV' => 'Nevada',
41
+ 'NH' => 'New Hampshire',
42
+ 'NJ' => 'New Jersey',
43
+ 'NM' => 'New Mexico',
44
+ 'NY' => 'New York',
45
+ 'NC' => 'North Carolina',
46
+ 'ND' => 'North Dakota',
47
+ 'OH' => 'Ohio',
48
+ 'OK' => 'Oklahoma',
49
+ 'OR' => 'Oregon',
50
+ 'PW' => 'Palau',
51
+ 'PA' => 'Pennsylvania',
52
+ 'PR' => 'Puerto Rico',
53
+ 'RI' => 'Rhode Island',
54
+ 'SC' => 'South Carolina',
55
+ 'SD' => 'South Dakota',
56
+ 'TN' => 'Tennessee',
57
+ 'TX' => 'Texas',
58
+ 'UT' => 'Utah',
59
+ 'VT' => 'Vermont',
60
+ 'VI' => 'Virgin Island',
61
+ 'VA' => 'Virginia',
62
+ 'WA' => 'Washington',
63
+ 'WV' => 'West Virginia',
64
+ 'WI' => 'Wisconsin',
65
+ 'WY' => 'Wyoming'
66
+ }
67
+ end
66
68
  end
67
69
  end
68
70
  end
@@ -0,0 +1,18 @@
1
+ require_relative 'select'
2
+
3
+ module Conjoin
4
+ module FormBuilder
5
+ class YearInput < SelectInput
6
+ def select_options
7
+ years_select = {}
8
+ years = (1900..(Date.today.year+2)).to_a.reverse!
9
+
10
+ years.each do |year|
11
+ years_select[year] = year.to_s
12
+ end
13
+
14
+ years_select
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,50 @@
1
+ module Conjoin
2
+ class JQuery
3
+ JS_ESCAPE = { '\\' => '\\\\', '</' => '<\/', "\r\n" => '\n', "\n" => '\n', "\r" => '\n', '"' => '\\"', "'" => "\\'" }
4
+
5
+ attr_accessor :html, :selector, :options
6
+
7
+ def initialize selector, options = {}
8
+ @html = ''
9
+ @selector = selector
10
+ @options = options
11
+
12
+ @options.empty? \
13
+ ? @html += "$('#{selector}')" \
14
+ : @html += "$('#{selector}', #{options.to_json})"
15
+ end
16
+
17
+ def method_missing(m, *args, &block)
18
+ elem = args.first
19
+
20
+ case elem
21
+ when JQuery
22
+ content = elem.to_s.chomp(';')
23
+ when String
24
+ content = "'#{escape elem}'"
25
+ when Hash, OpenStruct
26
+ content = elem.to_json
27
+ else
28
+ content = elem
29
+ end
30
+
31
+ @html += ".#{m.to_s.camelize(:lower)}(#{content})"
32
+
33
+ self
34
+ end
35
+
36
+ def to_s
37
+ return_html = html.dup.to_s
38
+ @html = "$('#{selector}')"
39
+ "#{return_html};"
40
+ end
41
+
42
+ def escape js
43
+ Conjoin::JQuery.escape js
44
+ end
45
+
46
+ def self.escape js
47
+ js.to_s.gsub(/(\\|<\/|\r\n|\\3342\\2200\\2250|[\n\r"'])/) {|match| JS_ESCAPE[match] }
48
+ end
49
+ end
50
+ end
@@ -26,9 +26,11 @@ module Conjoin
26
26
  if Conjoin.env.test? or Conjoin.env.development?
27
27
  require 'better_errors'
28
28
  use BetterErrors::Middleware
29
- # require 'pry'
30
- # require 'pry-rescue'
31
- # use PryRescue::Rack
29
+ if ENV['PRY_RESCUE']
30
+ require 'pry'
31
+ require 'pry-rescue'
32
+ use PryRescue::Rack
33
+ end
32
34
  end
33
35
 
34
36
  # continue running the application
@@ -0,0 +1,63 @@
1
+ module Conjoin
2
+ module Nav
3
+ def self.setup app
4
+ @settings = OpenStruct.new({
5
+ navs: OpenStruct.new,
6
+ icon_class: 'ico',
7
+ active_class: 'active open'
8
+ })
9
+ require "#{app.root}/config/nav.rb"
10
+ end
11
+
12
+ def self.settings
13
+ @settings
14
+ end
15
+
16
+ def self.config &block
17
+ Config.new(block, self).run
18
+ end
19
+
20
+ def nav name, &block
21
+ Config.new(block, self).load_nav name
22
+ end
23
+
24
+ class Config < Struct.new(:block, :app)
25
+ def run
26
+ self.instance_eval(&block)
27
+ end
28
+
29
+ def add_menu name, links
30
+ config.navs[name] ||= []
31
+ config.navs[name].concat links
32
+ end
33
+
34
+ def load_nav name
35
+ if links = config.navs[name]
36
+ loaded_links = []
37
+
38
+ links.each do |link|
39
+ link = OpenStruct.new(link)
40
+
41
+ if !link.if or app.instance_exec(&link.if)
42
+ link.icon = config.icon_class + '-' + link.icon if link.icon
43
+ link.active = app.req.env['REQUEST_PATH'][link.path]
44
+ link.active_class = link.active ? config.active_class : false
45
+
46
+ if link.active_class or !link.hidden
47
+ loaded_links << link
48
+ end
49
+ end
50
+ end
51
+ else
52
+ raise "There isn't a nav called: #{name}"
53
+ end
54
+
55
+ block.call loaded_links
56
+ end
57
+
58
+ def config
59
+ Conjoin::Nav.settings
60
+ end
61
+ end
62
+ end
63
+ end
data/lib/conjoin/ui.rb ADDED
@@ -0,0 +1,25 @@
1
+ module Conjoin
2
+ module Ui
3
+ def panel options = {}, &block
4
+ helper = self
5
+
6
+ mab do
7
+ div class: 'panel panel-default', id: options[:id] do
8
+ if options.key? :header
9
+ div class: 'panel-heading' do
10
+ h3 class: 'panel-title' do
11
+ if options.key? :icon
12
+ fa_icon options[:icon]
13
+ end
14
+ text! options[:header]
15
+ end
16
+ end
17
+ end
18
+ div class: "panel-body #{options.key?(:no_padding) ? 'no-padding' : ''}" do
19
+ text! helper.instance_exec(&block)
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -1,3 +1,3 @@
1
1
  module Conjoin
2
- VERSION = "0.0.7"
2
+ VERSION = "0.0.8"
3
3
  end
@@ -74,7 +74,7 @@ module Conjoin
74
74
 
75
75
  def url_for_event event, options = {}
76
76
  widget_name = req.env[:widget_name]
77
- "#{Conjoin.env.mounted?? settings[:mounted_url] : ''}/widgets?widget_event=#{event}&widget_name=#{widget_name}&" + URI.encode_www_form(options)
77
+ "#{Conjoin.env.mounted?? settings[:mounted_url] : ''}/widgets?widget_event=#{event}&widget_name=#{widget_name}" + (options.any?? '&' + URI.encode_www_form(options) : '')
78
78
  end
79
79
 
80
80
  def load_widgets
@@ -184,7 +184,9 @@ module Conjoin
184
184
 
185
185
  res.write '$("' + selector + '").replaceWith("' + escape(content) + '");'
186
186
  # scroll to the top of the page just as if we went to the url directly
187
- res.write 'window.scrollTo(0, 0);'
187
+ # if opts[:scroll_to_top]
188
+ # res.write 'window.scrollTo(0, 0);'
189
+ # end
188
190
  end
189
191
 
190
192
  def hide selector
@@ -209,6 +211,11 @@ module Conjoin
209
211
  js.to_s.gsub(/(\\|<\/|\r\n|\\3342\\2200\\2250|[\n\r"'])/) {|match| JS_ESCAPE[match] }
210
212
  end
211
213
 
214
+ def trigger event, data = {}
215
+ req.env[:widget_name] = req.params['widget_name']
216
+ trigger_event event, req.env[:widget_name], data.to_ostruct
217
+ end
218
+
212
219
  def trigger_event event, widget_name, data = {}
213
220
  if events = self.class.events
214
221
  events.each do |class_event, opts|
@@ -233,6 +240,15 @@ module Conjoin
233
240
  render state: widget_state
234
241
  end
235
242
 
243
+ def partial view, options
244
+ render view, options
245
+ end
246
+
247
+ def partial template, locals = {}
248
+ locals[:partial] = template
249
+ render locals
250
+ end
251
+
236
252
  def render *args
237
253
  if args.first.kind_of? Hash
238
254
  locals = args.first
@@ -252,20 +268,26 @@ module Conjoin
252
268
  end
253
269
  end
254
270
 
255
- if locals.key?(:state) and state.to_s == view.to_s
256
- return send state
271
+ if locals.key?(:state) and state and state.to_s == view.to_s
272
+ if method(state).parameters.length > 0
273
+ send(state, locals)
274
+ else
275
+ send(state)
276
+ end
257
277
  end
258
278
 
259
279
  tmpl_engine = settings[:render][:template_engine]
260
280
 
261
281
  if (req_helper_methods = req.env[:widgets][folder][:req_helper_methods]) \
262
282
  and (!options.key?(:cache))
263
- locals.merge! req_helper_methods
283
+ locals.reverse_merge! req_helper_methods
264
284
  else
265
285
  req.env[:widgets][folder][:req_helper_methods] = {}
266
286
 
267
287
  helper_methods.each do |method|
268
- req.env[:widgets][folder][:req_helper_methods][method] = locals[method] = self.send method
288
+ unless locals.key? method
289
+ req.env[:widgets][folder][:req_helper_methods][method] = locals[method] = self.send method
290
+ end
269
291
  end
270
292
  end
271
293
 
@@ -274,7 +296,8 @@ module Conjoin
274
296
 
275
297
  locals[:w] = locals[:widget] = self
276
298
 
277
- app.render "#{app.widgets_root}/#{folder}/#{view}.#{tmpl_engine}", locals
299
+ view_folder = self.class.to_s.gsub(/\w+::Widgets::/, '').split('::').map(&:underscore).join('/')
300
+ app.render "#{app.widgets_root}/#{view_folder}/#{view}.#{tmpl_engine}", locals
278
301
  end
279
302
 
280
303
  private
@@ -321,6 +344,7 @@ module Conjoin
321
344
  App.plugin Conjoin::I18N
322
345
  App.plugin Conjoin::FormBuilder
323
346
  App.plugin Conjoin::Widgets
347
+ App.plugin Conjoin::Ui
324
348
 
325
349
  App
326
350
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: conjoin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - cj
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-04-09 00:00:00.000000000 Z
11
+ date: 2014-04-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cuba
@@ -319,6 +319,7 @@ files:
319
319
  - conjoin.gemspec
320
320
  - lib/conjoin.rb
321
321
  - lib/conjoin/active_record.rb
322
+ - lib/conjoin/as.rb
322
323
  - lib/conjoin/assets.rb
323
324
  - lib/conjoin/auth.rb
324
325
  - lib/conjoin/class_methods.rb
@@ -330,7 +331,9 @@ files:
330
331
  - lib/conjoin/inputs/boolean.rb
331
332
  - lib/conjoin/inputs/checkbox.rb
332
333
  - lib/conjoin/inputs/date.rb
334
+ - lib/conjoin/inputs/datetime.rb
333
335
  - lib/conjoin/inputs/decimal.rb
336
+ - lib/conjoin/inputs/display.rb
334
337
  - lib/conjoin/inputs/file.rb
335
338
  - lib/conjoin/inputs/hidden.rb
336
339
  - lib/conjoin/inputs/integer.rb
@@ -340,12 +343,16 @@ files:
340
343
  - lib/conjoin/inputs/state.rb
341
344
  - lib/conjoin/inputs/string.rb
342
345
  - lib/conjoin/inputs/time.rb
346
+ - lib/conjoin/inputs/year.rb
347
+ - lib/conjoin/jquery.rb
343
348
  - lib/conjoin/middleware.rb
349
+ - lib/conjoin/nav.rb
344
350
  - lib/conjoin/recursive_ostruct.rb
345
351
  - lib/conjoin/seeds.rb
346
352
  - lib/conjoin/tasks.rb
347
353
  - lib/conjoin/tasks/migrate.rake
348
354
  - lib/conjoin/tasks/migrate.rb
355
+ - lib/conjoin/ui.rb
349
356
  - lib/conjoin/version.rb
350
357
  - lib/conjoin/widgets.rb
351
358
  homepage: ''