faalis 0.26.3 → 1.0.0.alpha0
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/README.md +35 -6
- data/Rakefile +2 -25
- data/app/assets/javascripts/faalis/angular-manifest.js +8 -2
- data/app/assets/javascripts/faalis/application.js +0 -3
- data/app/assets/javascripts/faalis/dashboard/application.js.erb +0 -5
- data/app/assets/javascripts/faalis/dashboard/functions.js.erb +9 -0
- data/app/assets/javascripts/faalis/dashboard/init.js +1 -1
- data/app/assets/javascripts/faalis/dashboard/modules/auth/group.js +0 -6
- data/app/assets/javascripts/faalis/dashboard/modules/fields/fields.js +1 -1
- data/app/assets/javascripts/faalis/dashboard/modules/fields/image.js +115 -0
- data/app/assets/javascripts/faalis/dashboard/modules/fields/tag.js +76 -0
- data/app/assets/javascripts/faalis/dashboard/variables.js.erb +1 -1
- data/app/assets/locale/templates.pot +282 -0
- data/app/assets/stylesheets/faalis/dashboard/dashboard.css.scss +4 -0
- data/app/assets/stylesheets/faalis/dashboard/ltr/application.css +4 -4
- data/app/assets/stylesheets/faalis/dashboard/rtl/application.css +4 -4
- data/app/assets/stylesheets/faalis/dashboard/rtl/base.css.scss.erb +2 -2
- data/app/controllers/faalis/api/v1/permissions_controller.rb +8 -39
- data/app/controllers/faalis/api/v1/users_controller.rb +7 -7
- data/app/models/ability.rb +4 -6
- data/app/models/faalis/concerns/assignment.rb +2 -2
- data/app/models/faalis/group.rb +18 -4
- data/app/models/faalis/permission.rb +11 -2
- data/app/models/faalis/permissions/auth.rb +3 -2
- data/app/models/faalis/user.rb +27 -73
- data/app/models/faalis/user/auth_definitions.rb +94 -0
- data/app/models/faalis/user/mongoid_fields.rb +76 -0
- data/app/models/faalis/user/permission.rb +21 -0
- data/app/views/angularjs_templates/auth/groups/new.html +0 -20
- data/app/views/angularjs_templates/fields/image/image.html +1 -0
- data/app/views/angularjs_templates/fields/relation/relation.html +3 -1
- data/app/views/angularjs_templates/fields/tag/tag.html +1 -0
- data/app/views/angularjs_templates/nav.html.erb +0 -1
- data/app/views/faalis/api/v1/users/index.json.jbuilder +1 -1
- data/app/views/layouts/faalis/application.html.erb +2 -0
- data/app/views/layouts/faalis/dashboard.html.erb +1 -0
- data/app/views/layouts/faalis/simple.html.erb +1 -0
- data/config/initializers/devise.rb +0 -7
- data/db/migrate/20131013091000_devise_create_faalis_users.rb +3 -2
- data/db/migrate/20140613120923_add_users_groups_table.rb +8 -0
- data/db/migrate/20140617124019_faalis_groups_users.rb +4 -0
- data/db/seeds.rb +39 -11
- data/lib/faalis.rb +5 -4
- data/lib/faalis/concerns.rb +7 -0
- data/lib/faalis/concerns/authorizable.rb +76 -0
- data/lib/faalis/discovery.rb +8 -0
- data/lib/faalis/discovery/permissions.rb +51 -0
- data/lib/faalis/engine.rb +19 -5
- data/lib/faalis/extensions.rb +18 -0
- data/lib/faalis/extensions/base.rb +29 -0
- data/lib/faalis/fake_assets.rb +7 -0
- data/lib/faalis/generators/dashboard_scaffold.rb +23 -5
- data/lib/faalis/omniauth.rb +3 -0
- data/lib/faalis/orm.rb +29 -0
- data/lib/faalis/{active_record.rb → patches/models.rb} +1 -3
- data/lib/faalis/version.rb +1 -1
- data/lib/generators/faalis/install_generator.rb +7 -3
- data/lib/{faalis/plugins.rb → generators/faalis/js/install_i18n_generator.rb} +20 -17
- data/lib/generators/faalis/scaffold_generator.rb +139 -0
- data/lib/generators/faalis/templates/application.js +1 -1
- data/lib/generators/faalis/templates/i18n/Gruntfile.js.erb +30 -0
- data/lib/generators/faalis/templates/i18n/README +13 -0
- data/lib/generators/faalis/templates/i18n/fa.js +3 -0
- data/lib/generators/faalis/templates/js/list_view/README +1 -1
- data/lib/tasks/faalis_tasks.rake +26 -20
- data/lib/tasks/grunt/Gruntfile.js +7 -2
- data/spec/dummy/config/initializers/faalis.rb +40 -0
- metadata +134 -44
- data/app/assets/javascripts/faalis/dashboard/lib/angular-gettext.js +0 -202
- data/app/assets/javascripts/faalis/dashboard/lib/ng-grid.js +0 -3260
- data/app/assets/javascripts/faalis/dashboard/lib/ng-quick-date.js +0 -297
- data/app/assets/javascripts/faalis/dashboard/lib/restangular.js +0 -1066
- data/app/assets/javascripts/faalis/dashboard/lib/select2.js +0 -3255
- data/app/assets/javascripts/faalis/dashboard/lib/ui.select2.js +0 -217
- data/app/assets/stylesheets/faalis/dashboard/ng-grid.css.scss +0 -442
- data/app/assets/stylesheets/faalis/dashboard/ng-quick-date-default-theme.css.scss +0 -20
- data/app/assets/stylesheets/faalis/dashboard/ng-quick-date.css.scss +0 -19
- data/app/assets/stylesheets/faalis/dashboard/select2.css.scss.erb +0 -618
- data/app/controllers/faalis/api/v1/#conversations_controller.rb# +0 -120
- data/app/models/faalis/workflow.rb +0 -4
- data/db/migrate/20140413180202_create_faalis_workflows.rb +0 -9
- data/lib/faalis/permissions.rb +0 -72
- data/lib/faalis/workflows.rb +0 -7
- data/lib/faalis/workflows/base.rb +0 -70
- data/lib/faalis/workflows/discovery.rb +0 -42
- data/lib/generators/faalis/js_scaffold_generator.rb +0 -113
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
require_dependency 'faalis/application_controller'
|
|
2
|
-
|
|
3
|
-
module Faalis
|
|
4
|
-
class API::V1::ConversationsController < ::APIController
|
|
5
|
-
before_filter :authenticate_user!
|
|
6
|
-
helper_method :mailbox, :conversation
|
|
7
|
-
|
|
8
|
-
def create
|
|
9
|
-
#binding.pry
|
|
10
|
-
recipient_emails = message_params(:recipients).split(',')
|
|
11
|
-
recipients = User.where(email: recipient_emails).all
|
|
12
|
-
|
|
13
|
-
@conversation = current_user.
|
|
14
|
-
send_message(recipients, *message_params(:body, :subject)).conversation
|
|
15
|
-
|
|
16
|
-
respond_with(@conversation)
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
def reply
|
|
20
|
-
@conversation = current_user.reply_to_conversation(conversation, *message_params(:body, :subject))
|
|
21
|
-
respond_with(@conversation)
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
def trash
|
|
25
|
-
ids = params[:id].split(",")
|
|
26
|
-
ids.each do |id|
|
|
27
|
-
conversation = current_user.mailbox.conversations.find(params[:id])
|
|
28
|
-
conversation.move_to_trash(current_user)
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
def untrash
|
|
33
|
-
ids = params[:id].split(",")
|
|
34
|
-
ids.each do |id|
|
|
35
|
-
conversation = current_user.mailbox.conversations.find(params[:id])
|
|
36
|
-
conversation.untrash(current_user)
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
def destroy
|
|
42
|
-
ids = params[:id].split(",")
|
|
43
|
-
ids.each do |id|
|
|
44
|
-
conversation = current_user.mailbox.conversations.find(params[:id])
|
|
45
|
-
current_user.mark_as_deleted conversation
|
|
46
|
-
#conversation.mark_as_deleted(current_user)
|
|
47
|
-
end
|
|
48
|
-
respond_with
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
def index
|
|
52
|
-
if params[:box] == "inbox"
|
|
53
|
-
box = "inbox"
|
|
54
|
-
elsif params[:box] == "sentbox"
|
|
55
|
-
box = "sentbox"
|
|
56
|
-
elsif params[:box] == "trash"
|
|
57
|
-
box = "trash"
|
|
58
|
-
else
|
|
59
|
-
respond_to do |f|
|
|
60
|
-
f.any { head :not_found }
|
|
61
|
-
end
|
|
62
|
-
returng
|
|
63
|
-
end
|
|
64
|
-
# puts current_user.mailbox.sent.to_json
|
|
65
|
-
@mailbox ||= current_user.mailbox.send(box.to_sym)
|
|
66
|
-
respond_with @mailbox
|
|
67
|
-
end
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
def show
|
|
71
|
-
#def conversation
|
|
72
|
-
@conversations ||= current_user.mailbox.conversations.find(params[:id])
|
|
73
|
-
@current_user = current_user
|
|
74
|
-
# @conversation = {}
|
|
75
|
-
# conversations.each do |conversation|
|
|
76
|
-
# tmp = {
|
|
77
|
-
# :receipts => conversation.receipts,
|
|
78
|
-
# :body => conversation.messages.body,
|
|
79
|
-
# :is_read => conversation.is_read,
|
|
80
|
-
# :trashed => conversation.trashed,
|
|
81
|
-
# :deleted => conversation.deleted,
|
|
82
|
-
# :recipients => conversation.recipients
|
|
83
|
-
# }
|
|
84
|
-
#unless @conversation.include? conversation.id
|
|
85
|
-
# @conversation[conversation.id] = tmp
|
|
86
|
-
#end
|
|
87
|
-
#end
|
|
88
|
-
|
|
89
|
-
end
|
|
90
|
-
private
|
|
91
|
-
|
|
92
|
-
def mailbox
|
|
93
|
-
@mailbox ||= current_user.mailbox
|
|
94
|
-
end
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
def conversation
|
|
98
|
-
@conversation ||= mailbox.conversations.find(params[:id])
|
|
99
|
-
end
|
|
100
|
-
|
|
101
|
-
def conversation_params(*keys)
|
|
102
|
-
fetch_params(:conversation, *keys)
|
|
103
|
-
end
|
|
104
|
-
|
|
105
|
-
def message_params(*keys)
|
|
106
|
-
fetch_params(:message, *keys)
|
|
107
|
-
end
|
|
108
|
-
|
|
109
|
-
def fetch_params(key, *subkeys)
|
|
110
|
-
params[key].instance_eval do
|
|
111
|
-
case subkeys.size
|
|
112
|
-
when 0 then self
|
|
113
|
-
when 1 then
|
|
114
|
-
self[subkeys.first]
|
|
115
|
-
else subkeys.map{|k| self[k] }
|
|
116
|
-
end
|
|
117
|
-
end
|
|
118
|
-
end
|
|
119
|
-
end
|
|
120
|
-
end
|
data/lib/faalis/permissions.rb
DELETED
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
module Faalis
|
|
2
|
-
module Permissions
|
|
3
|
-
extend ActiveSupport::Concern
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
module ClassMethods
|
|
7
|
-
|
|
8
|
-
# Default permission hash
|
|
9
|
-
@@permissions = {
|
|
10
|
-
:read => nil,
|
|
11
|
-
:update => nil,
|
|
12
|
-
:create => nil,
|
|
13
|
-
:destroy => nil,
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
@@only_owner = false
|
|
17
|
-
|
|
18
|
-
# @return an array of strings representation of permissions
|
|
19
|
-
def permission_strings(model)
|
|
20
|
-
strings = []
|
|
21
|
-
model_name = model.to_s
|
|
22
|
-
humanize_name = ActiveModel::Name.new(model).human
|
|
23
|
-
if model.respond_to? :model_name
|
|
24
|
-
model_name = model.model_name
|
|
25
|
-
humanize_name = model_name.human
|
|
26
|
-
end
|
|
27
|
-
@@permissions.each do |key, value|
|
|
28
|
-
strings << {
|
|
29
|
-
:name => "#{key}|#{model_name}",
|
|
30
|
-
:string => _("can %s %s") % [_(key.to_s), humanize_name]
|
|
31
|
-
}
|
|
32
|
-
end
|
|
33
|
-
strings
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
def possible_permissions
|
|
37
|
-
@@permissions.keys
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
# Define permissions using this method
|
|
41
|
-
def permissions(*args)
|
|
42
|
-
|
|
43
|
-
args.each do |permission|
|
|
44
|
-
if permission.class == Symbol
|
|
45
|
-
if not @@permissions.include? permission
|
|
46
|
-
@@permission[permission] = nil
|
|
47
|
-
|
|
48
|
-
elsif permission.class == Hash
|
|
49
|
-
|
|
50
|
-
permission.each do |key, value|
|
|
51
|
-
@@permissions[key.to_sym] = value
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
end
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
end
|
|
59
|
-
end
|
|
60
|
-
|
|
61
|
-
# This force user to have access to resources which is his.
|
|
62
|
-
def only_his_objects
|
|
63
|
-
@@only_owner = true
|
|
64
|
-
end
|
|
65
|
-
|
|
66
|
-
def only_his_objects?
|
|
67
|
-
@@only_owner
|
|
68
|
-
end
|
|
69
|
-
|
|
70
|
-
end
|
|
71
|
-
end
|
|
72
|
-
end
|
data/lib/faalis/workflows.rb
DELETED
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
module Faalis
|
|
2
|
-
module Workflows
|
|
3
|
-
|
|
4
|
-
# Base class for all the workflows in a `Faalis application`
|
|
5
|
-
class Base
|
|
6
|
-
|
|
7
|
-
attr_reader :id
|
|
8
|
-
|
|
9
|
-
@@default_values = {:title => self.class.to_s.underscore,
|
|
10
|
-
:icon => nil,
|
|
11
|
-
:image => nil,
|
|
12
|
-
:permissions => []}
|
|
13
|
-
|
|
14
|
-
def initialize(model_instance)
|
|
15
|
-
@id = model_instance.id
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
# class method to set the title of current workflow
|
|
19
|
-
def self.title(name)
|
|
20
|
-
define_method :title do
|
|
21
|
-
name || self.to_s.underscore
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
# Set the current workflow icon if any
|
|
27
|
-
def self.icon(icon)
|
|
28
|
-
define_method :icon do
|
|
29
|
-
icon
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
def icon?
|
|
35
|
-
return true if defined? :icon
|
|
36
|
-
false
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
# Set the current workflow image if any
|
|
41
|
-
def self.image(image)
|
|
42
|
-
define_method :image do
|
|
43
|
-
image
|
|
44
|
-
end
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
def image?
|
|
48
|
-
return true if defined? :image
|
|
49
|
-
false
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
# Use this class method to add any permission that is neeeded
|
|
53
|
-
# for this workflow to work
|
|
54
|
-
def self.permissions(*args)
|
|
55
|
-
define_method :permissions do
|
|
56
|
-
args || []
|
|
57
|
-
end
|
|
58
|
-
end
|
|
59
|
-
|
|
60
|
-
def method_missing(m, *args, &block)
|
|
61
|
-
if @@default_values.include? m
|
|
62
|
-
@@default_values[m]
|
|
63
|
-
else
|
|
64
|
-
super
|
|
65
|
-
end
|
|
66
|
-
end
|
|
67
|
-
|
|
68
|
-
end
|
|
69
|
-
end
|
|
70
|
-
end
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
module Faalis
|
|
2
|
-
module Workflows
|
|
3
|
-
# Discover all the workflows in current application in addition to
|
|
4
|
-
# gem files and add them to database for future reference.
|
|
5
|
-
class Discovery
|
|
6
|
-
# A class method to use in `seed.rb` to create all workflows in
|
|
7
|
-
# database
|
|
8
|
-
def self.build_table_list
|
|
9
|
-
# Get all gem by requiring them
|
|
10
|
-
all_gems = Bundler.require
|
|
11
|
-
|
|
12
|
-
# Discover all model files in gem files and load them
|
|
13
|
-
all_gems.each do |gem|
|
|
14
|
-
if gem.groups.include?(Rails.env.to_sym) || \
|
|
15
|
-
gem.groups.include?(:default)
|
|
16
|
-
|
|
17
|
-
puts "Gem name: #{gem.name}"
|
|
18
|
-
spec = Gem::Specification.find_by_name gem.name
|
|
19
|
-
discover spec.gem_dir
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
# Discover models in current rails app and load them
|
|
24
|
-
discover Rails.root
|
|
25
|
-
|
|
26
|
-
# Create a content type entry for all Models
|
|
27
|
-
Faalis::Workflows::Base.subclasses.each do |workflow|
|
|
28
|
-
Faalis::Workflow.find_or_create_by(name: workflow.to_s)
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
private
|
|
33
|
-
|
|
34
|
-
def self.discover(path)
|
|
35
|
-
Dir["#{path}/app/workflows/**/*.rb"].each do |workflow_file|
|
|
36
|
-
puts "File matched: #{workflow_file}"
|
|
37
|
-
load workflow_file
|
|
38
|
-
end
|
|
39
|
-
end
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
end
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
# -----------------------------------------------------------------------------
|
|
2
|
-
# Faalis - Basic website skel engine
|
|
3
|
-
# Copyright (C) 2012-2013 Yellowen
|
|
4
|
-
#
|
|
5
|
-
# This program is free software; you can redistribute it and/or modify
|
|
6
|
-
# it under the terms of the GNU General Public License as published by
|
|
7
|
-
# the Free Software Foundation; either version 2 of the License, or
|
|
8
|
-
# (at your option) any later version.
|
|
9
|
-
#
|
|
10
|
-
# This program is distributed in the hope that it will be useful,
|
|
11
|
-
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
-
# GNU General Public License for more details.
|
|
14
|
-
#
|
|
15
|
-
# You should have received a copy of the GNU General Public License along
|
|
16
|
-
# with this program; if not, write to the Free Software Foundation, Inc.,
|
|
17
|
-
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
18
|
-
# -----------------------------------------------------------------------------
|
|
19
|
-
|
|
20
|
-
module Faalis
|
|
21
|
-
module Generators
|
|
22
|
-
# `js_scaffold` main class
|
|
23
|
-
class JsScaffoldGenerator < Faalis::Generators::DashboardScaffold
|
|
24
|
-
# We keep this class to keep backward compatiblity
|
|
25
|
-
puts "[DEPRECATED]: This generator will be removed soon, Use faalis:js:list_view instead."
|
|
26
|
-
# TODO: Remove this ater a while
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
# templates path
|
|
30
|
-
source_root File.expand_path('../templates', __FILE__)
|
|
31
|
-
|
|
32
|
-
# Field name to use as title of each object
|
|
33
|
-
class_option :title_field, :type => :string, :default => "name", :desc => "Field name to use as title of each object"
|
|
34
|
-
|
|
35
|
-
# Don't copy the new.html template
|
|
36
|
-
class_option :no_new_template, :type => :boolean, :default => false, :desc => "Don't copy the new.html template"
|
|
37
|
-
|
|
38
|
-
desc "Create a new resource for client side application"
|
|
39
|
-
def create_module
|
|
40
|
-
unless options[:only_controller]
|
|
41
|
-
unless options[:only_specs]
|
|
42
|
-
template "angularjs/module.js.erb", "#{angularjs_app_path}modules/#{resource_path}.js"
|
|
43
|
-
end
|
|
44
|
-
end
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
def create_template
|
|
48
|
-
unless options[:only_controller]
|
|
49
|
-
unless options[:only_specs]
|
|
50
|
-
template "angularjs/index.html.erb", "app/views/angularjs_templates/#{resource.underscore}/index.html"
|
|
51
|
-
unless options[:no_new_template]
|
|
52
|
-
template "angularjs/new.html.erb", "app/views/angularjs_templates/#{resource.underscore}/new.html"
|
|
53
|
-
end
|
|
54
|
-
template "angularjs/details.html.erb", "app/views/angularjs_templates/#{resource.underscore}/details.html"
|
|
55
|
-
end
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
unless options[:only_specs]
|
|
59
|
-
template "views/index.json.jbuilder.erb", "app/views/api/v1/#{resource.pluralize.underscore}/index.json.jbuilder"
|
|
60
|
-
template "views/show.json.jbuilder.erb", "app/views/api/v1/#{resource.pluralize.underscore}/show.json.jbuilder"
|
|
61
|
-
template "views/create.json.jbuilder.erb", "app/views/api/v1/#{resource.pluralize.underscore}/create.json.jbuilder"
|
|
62
|
-
template "views/destroy.json.jbuilder.erb", "app/views/api/v1/#{resource.pluralize.underscore}/destroy.json.jbuilder"
|
|
63
|
-
template "views/update.json.jbuilder.erb", "app/views/api/v1/#{resource.pluralize.underscore}/update.json.jbuilder"
|
|
64
|
-
end
|
|
65
|
-
end
|
|
66
|
-
|
|
67
|
-
def create_api
|
|
68
|
-
unless options[:only_specs]
|
|
69
|
-
template "api/controller.rb.erb", "app/controllers/api/v1/#{resource.pluralize.underscore}_controller.rb"
|
|
70
|
-
end
|
|
71
|
-
end
|
|
72
|
-
|
|
73
|
-
def create_specs
|
|
74
|
-
unless options[:without_specs]
|
|
75
|
-
template "features/api.feature", "features/#{resource.underscore}.api.feature"
|
|
76
|
-
template "features/api.step.rb", "features/step_definitions/#{resource.underscore}.rb"
|
|
77
|
-
end
|
|
78
|
-
end
|
|
79
|
-
|
|
80
|
-
def show_readme
|
|
81
|
-
readme "js_scaffold.README" if behavior == :invoke
|
|
82
|
-
end
|
|
83
|
-
|
|
84
|
-
# PRIVATES --------------------------------------------
|
|
85
|
-
private
|
|
86
|
-
|
|
87
|
-
def is_in_engine?
|
|
88
|
-
false
|
|
89
|
-
end
|
|
90
|
-
|
|
91
|
-
def random_json_data
|
|
92
|
-
data = {}
|
|
93
|
-
fields.each do |field, type|
|
|
94
|
-
case type
|
|
95
|
-
when "belongs_to"
|
|
96
|
-
data["#{field}_id"] = 1
|
|
97
|
-
when "integer"
|
|
98
|
-
data[field] = 1+ rand(1000)
|
|
99
|
-
else
|
|
100
|
-
data[field] = random_string
|
|
101
|
-
end
|
|
102
|
-
end
|
|
103
|
-
data.to_json.to_s
|
|
104
|
-
end
|
|
105
|
-
|
|
106
|
-
def random_string
|
|
107
|
-
o = [('a'..'z'), ('A'..'Z')].map { |i| i.to_a }.flatten
|
|
108
|
-
(0...50).map{ o[rand(o.length)] }.join
|
|
109
|
-
end
|
|
110
|
-
|
|
111
|
-
end
|
|
112
|
-
end
|
|
113
|
-
end
|