mobile_workflow 0.6.27 → 0.6.31

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
  SHA256:
3
- metadata.gz: 6f9084def0ec77b8ee7203822dd7236004818b1baa9b9bed967ac1788ab9a0f4
4
- data.tar.gz: 975a6a50f67d3803def2b1292cc45bada6e48e91dc0f4bd1955cf3beaba9ff8f
3
+ metadata.gz: 37eb1d708549f31b01aca9e6cb6c68b2e0778f647c326c6f2ed54e55f64c58c0
4
+ data.tar.gz: 5b23a0cd92a3b8c3a9931651c9eb37322fdd693f44700aac1da684764fc8b5ef
5
5
  SHA512:
6
- metadata.gz: 5a1a5570d254f1ed00165ce6cf76a5579788a9a18780cd5c5d3063244072aefb6b5d6133f19294428e2ea655c73a5c47737c8a031776a9a82561675356ea6386
7
- data.tar.gz: ee6e9a984dffaa11c24aa53236df91cb38b7cbf3319f69c438a782bb4a599ee818bcabf699e1fda5af3a43774963f0f24607f6781cd41527ce7558704dacbe00
6
+ metadata.gz: 1c345303b25a33807e58ca50e4ea1cea90853c896361f90b492f80d55306e45552fea574a28b0e548f1318e225519e478d3bb102e8a5f36d06ee773750aacded
7
+ data.tar.gz: 232110a1e208baddf77c246e4d7727cb6fb4f21ae06689e54a2e43be2db2fab0b3e48a99a25bf64a9759e1b904584b707d6bf2e0c134da616459dee6b8c0e3b6
data/README.md CHANGED
@@ -4,6 +4,11 @@ Short description and motivation.
4
4
  ## Usage
5
5
  How to use my plugin.
6
6
 
7
+ ## Uploads Design
8
+ This gem includes an engine to add and process S3 attachments. The design is as follows:
9
+
10
+ ![Uploads Design](https://github.com/FutureWorkshops/mobile_workflow/blob/master/uploads_design.png?raw=true)
11
+
7
12
  ## Installation
8
13
  Add this line to your application's Gemfile:
9
14
 
@@ -8,18 +8,18 @@ module MobileWorkflow
8
8
  CONTENT_MODE_OPTIONS = [:scale_aspect_fill, :scale_aspect_fit]
9
9
  QUESTION_STYLES = [:single_choice, :multiple_choice]
10
10
 
11
- def mw_list_item(id: self.id, text:, detail_text: nil, sf_symbol_name: nil, image_attachment: nil)
12
- mw_list_item = {id: id, text: text, detailText: detail_text, sfSymbolName: sf_symbol_name}
13
- mw_list_item[:imageURL] = preview_url(image_attachment, options: { resize_to_fill: [100, 100] }) if image_attachment
11
+ def mw_list_item(id: self.id, text:, detail_text: nil, sf_symbol_name: nil, material_icon_name: nil, image_attachment: nil)
12
+ mw_list_item = {id: id, text: text, detailText: detail_text, sfSymbolName: sf_symbol_name, materialIconName: material_icon_name}
13
+ mw_list_item[:imageURL] = preview_url(image_attachment, options: { resize_to_fill: [200, 200] }) if image_attachment
14
14
  mw_list_item.compact
15
15
  end
16
16
 
17
- def mw_list_search_suggestion(id:, text:, section_name:, sf_symbol_name: nil)
18
- {id: id, text: text, sectionName: section_name, sfSymbolName: sf_symbol_name}.compact
17
+ def mw_list_search_suggestion(id: self.id, text:, section_name:, sf_symbol_name: nil)
18
+ {id: id.to_s, text: text, sectionName: section_name, sfSymbolName: sf_symbol_name}.compact
19
19
  end
20
20
 
21
21
  def mw_map_item(id: self.id, text:, detail_text: nil, latitude:, longitude:)
22
- {id: id, text: text, detailText: detail_text, latitude: latitude, longitude: longitude}.compact
22
+ {id: id.to_s, text: text, detailText: detail_text, latitude: latitude, longitude: longitude}.compact
23
23
  end
24
24
 
25
25
  def mw_pie_chart_item(id: self.id, label:, value:)
@@ -30,7 +30,7 @@ module MobileWorkflow
30
30
  {type: :text, label: label, text: text.to_s}.compact
31
31
  end
32
32
 
33
- def mw_display_image(attachment, content_mode: :scale_aspect_fill, options: { resize_to_fill: [600, 1200] })
33
+ def mw_display_image(attachment, content_mode: :scale_aspect_fill, options: { resize_to_fill: [1200, 600] })
34
34
  validate_content_mode!(content_mode)
35
35
 
36
36
  {type: :image, contentMode: content_mode.to_s.camelize(:lower), previewURL: preview_url(attachment, options: options), url: attachment_url(attachment)}
@@ -73,7 +73,7 @@ module MobileWorkflow
73
73
 
74
74
  def mw_display_system_url_button(label:, apple_system_url: nil, android_deep_link: nil, style: :primary, sf_symbol_name: nil, material_icon_name: nil)
75
75
  validate_button_style!(style)
76
- raise 'Invalid android_deep_link' unless android_deep_link.start_with?('http')
76
+ raise 'Invalid android_deep_link' if android_deep_link && !android_deep_link.start_with?('http')
77
77
 
78
78
  {type: :button, label: label, appleSystemURL: apple_system_url, androidDeepLink: android_deep_link, style: style, sfSymbolName: sf_symbol_name, materialIconName: material_icon_name}.compact
79
79
  end
@@ -110,12 +110,12 @@ module MobileWorkflow
110
110
  { id: id, text: text, type: :smallSection }
111
111
  end
112
112
 
113
- def mw_grid_item(id: self.id, text:, image_attachment: nil)
113
+ def mw_grid_item(id: self.id, text:, image_attachment: nil, options: { resize_to_fill: [1560, 877.5] })
114
114
  raise 'Missing id' if id.nil?
115
115
  raise 'Missing text' if text.nil?
116
116
 
117
117
  item = { id: id, text: text, type: :item }
118
- item[:imageURL] = preview_url(image_attachment, options: { resize_to_fill: [1224, 760] }) if image_attachment
118
+ item[:imageURL] = preview_url(image_attachment, options: options) if image_attachment
119
119
  item
120
120
  end
121
121
 
@@ -155,7 +155,7 @@ module MobileWorkflow
155
155
  end
156
156
 
157
157
  def attachment_host
158
- "https://#{ENV['HEROKU_APP_NAME']}.herokuapp.com"
158
+ "https://#{ENV.fetch('HEROKU_APP_NAME')}.herokuapp.com"
159
159
  end
160
160
  end
161
161
  end
@@ -35,7 +35,7 @@ module MobileWorkflow
35
35
  migration_template "create_users.rb", "db/migrate/create_users.rb"
36
36
 
37
37
  generate 'doorkeeper:install'
38
- gsub_file 'config/initializers/doorkeeper.rb', 'raise "Please configure doorkeeper resource_owner_authenticator block located in #{__FILE__}"', 'User.find_by_id(session[:user_id]) || redirect_to(new_session_url(return_to: request.fullpath))'
38
+ gsub_file 'config/initializers/doorkeeper.rb', 'raise "Please configure doorkeeper resource_owner_authenticator block located in #{__FILE__}"', 'User.find_by_id(session.delete(:user_id)) || redirect_to(new_session_url(return_to: request.fullpath))'
39
39
  generate 'doorkeeper:migration'
40
40
  generate 'doorkeeper:pkce'
41
41
  template("user.rb.erb", "app/models/user.rb")
@@ -4,13 +4,13 @@ git_source(:github) { |repo| "https://github.com/#{repo}.git" }
4
4
  ruby '<%= MobileWorkflow::RUBY_VERSION %>'
5
5
 
6
6
  # Core Gems
7
- gem 'rails', '~> <%= MobileWorkflow::RAILS_VERSION %>'
7
+ gem 'rails', '<%= MobileWorkflow::RAILS_VERSION %>'
8
8
  gem 'puma', '~> 5.0'
9
9
  gem 'sass-rails', '>= 6'
10
10
  gem 'turbolinks', '~> 5'
11
11
 
12
12
  # Mobile Workflow
13
- gem 'mobile_workflow', '~> <%= MobileWorkflow::VERSION %>'
13
+ gem 'mobile_workflow', '<%= MobileWorkflow::VERSION %>'
14
14
 
15
15
  # Authorisation / Authentication
16
16
  <%- if options[:doorkeeper_oauth] %>
@@ -32,7 +32,7 @@ gem 'aws-sdk-sns', '~> 1.23'
32
32
  <%- end %>
33
33
 
34
34
  # FFI for Mac M1
35
- gem 'ffi', github: 'ffi/ffi'
35
+ gem 'ffi', '~> 1.15.1'
36
36
 
37
37
  group :development do
38
38
  gem 'web-console', '>= 3.3.0'
@@ -1 +1 @@
1
- web: bundle exec rackup config.ru -p $PORT
1
+ web: bin/rails s -p $PORT
@@ -1,9 +1,10 @@
1
- desc "Add S3 storage to your environment"
1
+ desc "Add S3 storage to a Heroku app"
2
2
  task add_heroku_s3_storage: :environment do
3
3
  require 'mobile_workflow/cli'
4
4
  app_name = ENV['APP_NAME']
5
- aws = MobileWorkflow::Cli::AwsBackend.new(app_name: app_name)
6
- heroku = MobileWorkflow::Cli::HerokuBackend(app_name: app_name)
5
+ aws_region = ENV['AWS_REGION'] || 'us-east-1'
6
+ aws = MobileWorkflow::Cli::AwsBackend.new(app_name: app_name, region: aws_region)
7
+ heroku = MobileWorkflow::Cli::HerokuBackend.new(app_name: app_name)
7
8
  aws.create
8
9
  aws.create_topic_subscription(heroku.notifications_endpoint)
9
10
  end
@@ -1,3 +1,4 @@
1
1
  <%- if options[:doorkeeper_oauth] %>
2
- Doorkeeper::Application.create! name: 'Main App', redirect_uri: 'mww://callback', scopes: 'public'
2
+ # You can set the OAuth client ID and client secret in your ENV in order to avoid them being reset each time you reset the database.
3
+ Doorkeeper::Application.create! name: 'Main App', redirect_uri: 'mww://callback', scopes: 'public', uid: ENV['OAUTH_CLIENT_ID'], secret: ENV['OAUTH_CLIENT_SECRET']
3
4
  <%- end %>
@@ -6,15 +6,10 @@ class SessionsController < ApplicationController
6
6
  @user = User.find_by("LOWER(email)= ?", params[:email].downcase)
7
7
  if @user && @user.authenticate(params[:password])
8
8
  session[:user_id] = @user.id
9
- redirect_to params[:return_to] || root_url, notice: "Logged in!"
9
+ redirect_to params[:return_to] || root_url
10
10
  else
11
11
  flash[:warning] = "You have entered incorrect email and/or password."
12
12
  render :new
13
13
  end
14
14
  end
15
-
16
- def destroy
17
- session.delete(:user_id)
18
- redirect_to root_path
19
- end
20
15
  end
@@ -44,15 +44,18 @@ def env_set(path)
44
44
  File.write(app_json_path, app_json.to_json)
45
45
  end
46
46
 
47
- namespace :env_set do
48
- desc 'Update Android app.json to use new env'
49
- task :android do
50
- env_set(File.join('app', 'src', 'main', 'res', 'raw', 'app.json'))
51
- end
47
+ namespace :mw do
48
+ namespace :set_env do
49
+ desc 'Update Android app.json to use new env'
50
+ task :android do
51
+ env_set(File.join('app', 'src', 'main', 'res', 'raw', 'app.json'))
52
+ end
52
53
 
53
- desc 'Update iOS app.json to use new env'
54
- task :ios do
55
- project_name = ENV["PROJECT_NAME"]
56
- env_set(File.join(project_name, project_name, "Resources", "app.json"))
57
- end
54
+ desc 'Update iOS app.json to use new env'
55
+ task :ios do
56
+ project_name = ENV["PROJECT_NAME"]
57
+ env_set(File.join(project_name, project_name, "Resources", "app.json"))
58
+ end
59
+ end
58
60
  end
61
+
@@ -1,5 +1,5 @@
1
1
  module MobileWorkflow
2
- VERSION = '0.6.27'
3
- RUBY_VERSION = '2.7.2'
4
- RAILS_VERSION = '6.1.0'
2
+ VERSION = '0.6.31'
3
+ RUBY_VERSION = '2.7.3'
4
+ RAILS_VERSION = '6.1.3.1'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mobile_workflow
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.27
4
+ version: 0.6.31
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Brooke-Smith
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-05-10 00:00:00.000000000 Z
11
+ date: 2021-07-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 6.1.0
19
+ version: 6.1.3.1
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 6.1.0
26
+ version: 6.1.3.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: sqlite3
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -138,7 +138,7 @@ files:
138
138
  - lib/mobile_workflow/engine.rb
139
139
  - lib/mobile_workflow/open_api_spec/parser.rb
140
140
  - lib/mobile_workflow/railtie.rb
141
- - lib/mobile_workflow/tasks/env_set.rake
141
+ - lib/mobile_workflow/tasks/set_env.rake
142
142
  - lib/mobile_workflow/version.rb
143
143
  homepage: https://github.com/futureworkshops/mobile_workflow
144
144
  licenses:
@@ -152,14 +152,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
152
152
  requirements:
153
153
  - - ">="
154
154
  - !ruby/object:Gem::Version
155
- version: 2.7.2
155
+ version: 2.7.3
156
156
  required_rubygems_version: !ruby/object:Gem::Requirement
157
157
  requirements:
158
158
  - - ">="
159
159
  - !ruby/object:Gem::Version
160
160
  version: '0'
161
161
  requirements: []
162
- rubygems_version: 3.1.4
162
+ rubygems_version: 3.1.6
163
163
  signing_key:
164
164
  specification_version: 4
165
165
  summary: A Rails engine to provide API support for Mobile Workflow Apps.