mobile_workflow 0.6.27 → 0.6.31

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
  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.