airake 0.4.1 → 0.4.2
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.
- data/History.txt +4 -0
- data/Manifest.txt +12 -7
- data/README.txt +18 -54
- data/app_generators/airake/airake_generator.rb +1 -2
- data/app_generators/airake/templates/README +21 -50
- data/app_generators/shared/Rakefile +1 -0
- data/app_generators/shared/airake.yml +1 -0
- data/app_generators/shared/application.mxml +2 -4
- data/app_generators/shared/descriptor_1.xml +57 -0
- data/app_generators/shared/test/Test-app.xml +4 -20
- data/html/app_generators.html +42 -0
- data/html/component_generators.html +43 -0
- data/html/copy_to_rubyforge.sh +1 -0
- data/html/index.html +130 -0
- data/html/resources.html +51 -0
- data/html/screen.css +105 -0
- data/html/tasks.html +64 -0
- data/lib/airake/commands/acompc.rb +7 -6
- data/lib/airake/commands/adl.rb +6 -5
- data/lib/airake/commands/adt.rb +27 -25
- data/lib/airake/commands/asdoc.rb +7 -6
- data/lib/airake/commands/base.rb +7 -0
- data/lib/airake/commands/fcsh.rb +25 -0
- data/lib/airake/commands/flash_player.rb +34 -0
- data/lib/airake/commands/mxmlc.rb +9 -8
- data/lib/airake/project.rb +24 -17
- data/lib/airake/tasks/air.rake +13 -2
- data/lib/airake/version.rb +1 -1
- data/test/test_airake.rb +17 -15
- data/test/test_runner.rb +17 -0
- metadata +17 -14
- data/app_generators/browsair/USAGE +0 -5
- data/app_generators/browsair/browsair_generator.rb +0 -95
- data/app_generators/browsair/templates/README +0 -11
- data/app_generators/shared/icons/MouseRunnerDotComGraphicsLicense.txt +0 -15
- data/bin/browsair +0 -12
- data/test/test_browsair_generator.rb +0 -53
@@ -7,13 +7,14 @@ module Airake #:nodoc:
|
|
7
7
|
|
8
8
|
attr_reader :asdoc_path, :asdoc_extra_opts, :src_dirs, :lib_dir, :output_dir
|
9
9
|
|
10
|
-
#
|
10
|
+
# Create ASDOC command.
|
11
11
|
#
|
12
|
-
#
|
13
|
-
#
|
14
|
-
#
|
15
|
-
#
|
16
|
-
#
|
12
|
+
# ==== Options
|
13
|
+
# +asdoc_path+:: Path to asdoc, defaults to 'asdoc'
|
14
|
+
# +src_dirs+:: Paths to source (array), defaults to [ 'src' ]
|
15
|
+
# +lib_dir+:: Path to lib directory.
|
16
|
+
# +output_dir+:: Path to output directory, defaults to "doc/asdoc"
|
17
|
+
# +asdoc_extra_opts+:: Extra options for command line
|
17
18
|
#
|
18
19
|
def initialize(options = {})
|
19
20
|
with_options(options, { :asdoc_path => "asdoc", :output_dir => "doc/asdoc" })
|
data/lib/airake/commands/base.rb
CHANGED
@@ -51,6 +51,13 @@ module Airake #:nodoc:
|
|
51
51
|
end
|
52
52
|
end
|
53
53
|
|
54
|
+
def assert_not_blank(*instance_vars)
|
55
|
+
instance_vars.each do |var|
|
56
|
+
instance = instance_variable_get("@#{var}")
|
57
|
+
raise ArgumentError, "#{var} can't be blank" if instance.blank?
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
54
61
|
def library_paths(lib_dir)
|
55
62
|
if lib_dir and File.directory?(lib_dir)
|
56
63
|
Dir["#{lib_dir}/*"].collect { |f| escape(f) if File.directory?(f) }.compact
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module Airake #:nodoc:
|
2
|
+
|
3
|
+
module Commands #:nodoc:
|
4
|
+
|
5
|
+
# Flex compiler shell.
|
6
|
+
#
|
7
|
+
# In progress, untested.
|
8
|
+
#
|
9
|
+
class FCSH < Base
|
10
|
+
|
11
|
+
def initialize(options = {})
|
12
|
+
|
13
|
+
end
|
14
|
+
|
15
|
+
def generate
|
16
|
+
command = []
|
17
|
+
command << @swf_path
|
18
|
+
process(command)
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
module Airake #:nodoc:
|
2
|
+
|
3
|
+
module Commands #:nodoc:
|
4
|
+
|
5
|
+
# Flash Player (standalone)
|
6
|
+
#
|
7
|
+
# In progress, untested.
|
8
|
+
#
|
9
|
+
class FlashPlayer < Base
|
10
|
+
|
11
|
+
attr_reader :swf_path
|
12
|
+
|
13
|
+
# Create Flash Player command.
|
14
|
+
#
|
15
|
+
# ==== Options
|
16
|
+
# +flash_player+:: Path to flash player, defaults to '/Applications/Flash Player.app/Contents/MacOS/Flash Player'
|
17
|
+
# +swf_path+:: Path to swf
|
18
|
+
#
|
19
|
+
def initialize(options = {})
|
20
|
+
with_options(options, { :flash_player => "/Applications/Flash Player.app/Contents/MacOS/Flash Player" })
|
21
|
+
end
|
22
|
+
|
23
|
+
# The flash player command
|
24
|
+
def generate
|
25
|
+
command = []
|
26
|
+
command << @swf_path
|
27
|
+
process(command)
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
@@ -8,15 +8,16 @@ module Airake #:nodoc:
|
|
8
8
|
attr_reader :mxmlc_path, :mxmlc_extra_opts, :swf_path, :mxml_path, :lib_dir, :src_dirs, :debug
|
9
9
|
attr_reader :config_name
|
10
10
|
|
11
|
-
#
|
11
|
+
# Create MXMLC command.
|
12
12
|
#
|
13
|
-
#
|
14
|
-
#
|
15
|
-
#
|
16
|
-
#
|
17
|
-
#
|
18
|
-
#
|
19
|
-
#
|
13
|
+
# ==== Options
|
14
|
+
# +mxmlc_path+:: Path to flex compiler, defaults to 'mxmlc'
|
15
|
+
# +swf_path+:: Path to generated swf (required)
|
16
|
+
# +mxml_path+:: Path to mxml (required)
|
17
|
+
# +lib_dir+:: Path to lib directory. Will load swc files from here or source directories
|
18
|
+
# +src_dirs+:: Path to source directories (required)
|
19
|
+
# +config_name+:: Config name, like 'air'
|
20
|
+
# +mxmlc_extra_opts+:: Extra options to pass to compiler
|
20
21
|
#
|
21
22
|
def initialize(options = {})
|
22
23
|
assert_required(options, [ :swf_path, :mxml_path, :src_dirs ])
|
data/lib/airake/project.rb
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
module Airake
|
2
2
|
|
3
|
-
#
|
4
3
|
# Project for AIR application
|
5
4
|
#
|
6
5
|
class Project
|
@@ -9,23 +8,31 @@ module Airake
|
|
9
8
|
attr_reader :mxml_path, :appxml_path, :air_path, :swf_path
|
10
9
|
attr_reader :debug, :assets, :certificate
|
11
10
|
|
12
|
-
#
|
11
|
+
# Create project.
|
13
12
|
#
|
14
|
-
#
|
15
|
-
#
|
16
|
-
#
|
17
|
-
#
|
18
|
-
#
|
19
|
-
#
|
20
|
-
#
|
21
|
-
#
|
22
|
-
#
|
23
|
-
#
|
24
|
-
#
|
25
|
-
#
|
13
|
+
# ==== Options:
|
14
|
+
# +env+: Environment, such as development, test, production. Defaults to ENV["AIRAKE_ENV"].
|
15
|
+
# +base_dir+: Base (project) directory. Defaults to ENV["AIRAKE_ROOT"]
|
16
|
+
# +options+: If nil, options are loaded from airake.yml in root. (All paths relative to base directory)
|
17
|
+
# - +mxml_path+: Path to the ProjectName.mxml
|
18
|
+
# - +appxml_path+: Path to application descriptor
|
19
|
+
# - +src_dirs+: Paths to source
|
20
|
+
# - +lib_dir+: Path to lib directory
|
21
|
+
# - +air_path+: Path to AIR file
|
22
|
+
# - +swf_path+: Path to SWF file
|
23
|
+
# - +debug+: "true" or "false"
|
24
|
+
# - +assets+: Path to assets
|
25
|
+
# - +certificate+: Path to certificate
|
26
26
|
#
|
27
|
-
#
|
28
|
-
#
|
27
|
+
# ==== More options:
|
28
|
+
# * mxmlc_path
|
29
|
+
# * adt_path
|
30
|
+
# * adl_path
|
31
|
+
# * asdoc_path
|
32
|
+
# * mxmlc_extra_opts
|
33
|
+
# * adt_extra_opts
|
34
|
+
# * adl_extra_opts
|
35
|
+
# * asdoc_extra_opts
|
29
36
|
#
|
30
37
|
def initialize(env = nil, base_dir = nil, options = nil)
|
31
38
|
|
@@ -96,7 +103,7 @@ module Airake
|
|
96
103
|
# ADT command for this project
|
97
104
|
def adt
|
98
105
|
options = { :air_path => @air_path, :appxml_path => @appxml_path, :swf_path => @swf_path,
|
99
|
-
:base_dir => @base_dir, :assets => @assets, :
|
106
|
+
:base_dir => @base_dir, :assets => @assets, :cert => @certificate, :adt_extra_opts => @adt_extra_opts,
|
100
107
|
:adt_path => @adt_path }
|
101
108
|
Airake::Commands::Adt.new(options)
|
102
109
|
end
|
data/lib/airake/tasks/air.rake
CHANGED
@@ -71,7 +71,7 @@ namespace :air do
|
|
71
71
|
print "Password: "
|
72
72
|
password = STDIN.gets.chomp!
|
73
73
|
|
74
|
-
Airake::Runner.run(project.adt, :
|
74
|
+
Airake::Runner.run(project.adt, :certificate, cn, pfx_file, key_type, password, optionals)
|
75
75
|
end
|
76
76
|
|
77
77
|
# Check certificate configuration for package task
|
@@ -94,7 +94,18 @@ namespace :air do
|
|
94
94
|
end
|
95
95
|
|
96
96
|
desc "Package"
|
97
|
-
task :package => [ :check_certificate, :compile, :package_only ] do
|
97
|
+
task :package => [ :check_certificate, :compile, :package_only ] do
|
98
|
+
|
99
|
+
if ENV["AIRAKE_ENV"] != "production"
|
100
|
+
puts <<-EOS
|
101
|
+
|
102
|
+
You packaged under the environment: #{ENV["AIRAKE_ENV"]}.
|
103
|
+
|
104
|
+
You might want to package by: AIRAKE_ENV=production rake air:package
|
105
|
+
|
106
|
+
EOS
|
107
|
+
end
|
108
|
+
end
|
98
109
|
|
99
110
|
desc "Package only"
|
100
111
|
task :package_only do
|
data/lib/airake/version.rb
CHANGED
data/test/test_airake.rb
CHANGED
@@ -6,26 +6,22 @@ class TestAirake < Test::Unit::TestCase
|
|
6
6
|
end
|
7
7
|
|
8
8
|
def teardown
|
9
|
-
FileUtils.rm_rf("#{
|
10
|
-
FileUtils.rm_rf("#{
|
11
|
-
end
|
12
|
-
|
13
|
-
def test_dir
|
14
|
-
File.dirname(__FILE__) + "/Test\\ App"
|
9
|
+
FileUtils.rm_rf("#{run_task_dir}/bin/*", :verbose => true)
|
10
|
+
FileUtils.rm_rf("#{run_task_dir}/doc", :verbose => true)
|
15
11
|
end
|
16
12
|
|
17
13
|
def run_task(run)
|
18
|
-
system("cd #{
|
19
|
-
end
|
14
|
+
system("cd #{run_task_dir}; rake #{run} --trace") || fail
|
15
|
+
end
|
20
16
|
|
17
|
+
def run_task_dir
|
18
|
+
File.dirname(__FILE__) + "/Test\\ App"
|
19
|
+
end
|
20
|
+
|
21
21
|
def test_adl
|
22
22
|
run_task("adl")
|
23
23
|
end
|
24
24
|
|
25
|
-
def test_acompc
|
26
|
-
run_task("acompc SOURCE=src OUTPUT=bin/Foo.swc PACKAGES=\"com.test\"")
|
27
|
-
end
|
28
|
-
|
29
25
|
def test_compile
|
30
26
|
run_task("compile")
|
31
27
|
end
|
@@ -38,6 +34,14 @@ class TestAirake < Test::Unit::TestCase
|
|
38
34
|
run_task("clean")
|
39
35
|
end
|
40
36
|
|
37
|
+
def test_docs
|
38
|
+
run_task("docs")
|
39
|
+
end
|
40
|
+
|
41
|
+
def test_acompc
|
42
|
+
run_task("acompc SOURCE=src OUTPUT=bin/Foo.swc PACKAGES=\"com.test\"")
|
43
|
+
end
|
44
|
+
|
41
45
|
def test_package
|
42
46
|
puts <<-EOS
|
43
47
|
|
@@ -47,7 +51,5 @@ class TestAirake < Test::Unit::TestCase
|
|
47
51
|
run_task("package")
|
48
52
|
end
|
49
53
|
|
50
|
-
|
51
|
-
run_task("docs")
|
52
|
-
end
|
54
|
+
|
53
55
|
end
|
data/test/test_runner.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/test_helper.rb'
|
2
|
+
|
3
|
+
class TestRunner < Test::Unit::TestCase
|
4
|
+
|
5
|
+
|
6
|
+
def test_run
|
7
|
+
|
8
|
+
adt = Airake::Commands::Adt.new
|
9
|
+
|
10
|
+
cert = adt.certificate("cm", "test.pfx", "1024-RSA", "pass")
|
11
|
+
|
12
|
+
Airake::Runner.new(cert).run
|
13
|
+
|
14
|
+
end
|
15
|
+
|
16
|
+
|
17
|
+
end
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: airake
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
5
|
-
platform:
|
4
|
+
version: 0.4.2
|
5
|
+
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gabriel Handford, Min Kim
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-
|
12
|
+
date: 2008-02-29 00:00:00 -05:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -34,7 +34,6 @@ description: Tasks and generators for Adobe AIR apps
|
|
34
34
|
email: gabrielh@gmail.com
|
35
35
|
executables:
|
36
36
|
- airake
|
37
|
-
- browsair
|
38
37
|
extensions: []
|
39
38
|
|
40
39
|
extra_rdoc_files:
|
@@ -43,10 +42,10 @@ extra_rdoc_files:
|
|
43
42
|
- Manifest.txt
|
44
43
|
- Notes.txt
|
45
44
|
- README.txt
|
46
|
-
- app_generators/shared/icons/MouseRunnerDotComGraphicsLicense.txt
|
47
45
|
files:
|
48
46
|
- History.txt
|
49
47
|
- License.txt
|
48
|
+
- MIT-LICENSE
|
50
49
|
- Manifest.txt
|
51
50
|
- Notes.txt
|
52
51
|
- README.txt
|
@@ -57,15 +56,12 @@ files:
|
|
57
56
|
- app_generators/airake/USAGE
|
58
57
|
- app_generators/airake/airake_generator.rb
|
59
58
|
- app_generators/airake/templates/README
|
60
|
-
- app_generators/browsair/USAGE
|
61
|
-
- app_generators/browsair/browsair_generator.rb
|
62
|
-
- app_generators/browsair/templates/README
|
63
59
|
- app_generators/shared/Rakefile
|
64
60
|
- app_generators/shared/airake.yml
|
65
61
|
- app_generators/shared/application.mxml
|
62
|
+
- app_generators/shared/descriptor_1.xml
|
66
63
|
- app_generators/shared/descriptor_M5.xml
|
67
64
|
- app_generators/shared/descriptor_M6.xml
|
68
|
-
- app_generators/shared/icons/MouseRunnerDotComGraphicsLicense.txt
|
69
65
|
- app_generators/shared/icons/Web.png
|
70
66
|
- app_generators/shared/lib/corelib-08.30.2007.swc
|
71
67
|
- app_generators/shared/lib/flexunit-08.30.2007.swc
|
@@ -73,15 +69,23 @@ files:
|
|
73
69
|
- app_generators/shared/test/Test.mxml
|
74
70
|
- app_generators/shared/test/suite/AllTests.as
|
75
71
|
- bin/airake
|
76
|
-
- bin/browsair
|
77
72
|
- config/hoe.rb
|
78
73
|
- config/requirements.rb
|
74
|
+
- html/app_generators.html
|
75
|
+
- html/component_generators.html
|
76
|
+
- html/copy_to_rubyforge.sh
|
77
|
+
- html/index.html
|
78
|
+
- html/resources.html
|
79
|
+
- html/screen.css
|
80
|
+
- html/tasks.html
|
79
81
|
- lib/airake.rb
|
80
82
|
- lib/airake/commands/acompc.rb
|
81
83
|
- lib/airake/commands/adl.rb
|
82
84
|
- lib/airake/commands/adt.rb
|
83
85
|
- lib/airake/commands/asdoc.rb
|
84
86
|
- lib/airake/commands/base.rb
|
87
|
+
- lib/airake/commands/fcsh.rb
|
88
|
+
- lib/airake/commands/flash_player.rb
|
85
89
|
- lib/airake/commands/mxmlc.rb
|
86
90
|
- lib/airake/core_ext/blank.rb
|
87
91
|
- lib/airake/daemonize.rb
|
@@ -102,11 +106,10 @@ files:
|
|
102
106
|
- tasks/website.rake
|
103
107
|
- test/test_airake.rb
|
104
108
|
- test/test_airake_generator.rb
|
105
|
-
- test/test_browsair_generator.rb
|
106
109
|
- test/test_class_generator.rb
|
107
110
|
- test/test_generator_helper.rb
|
108
111
|
- test/test_helper.rb
|
109
|
-
-
|
112
|
+
- test/test_runner.rb
|
110
113
|
has_rdoc: true
|
111
114
|
homepage: http://airake.rubyforge.org
|
112
115
|
post_install_message:
|
@@ -130,14 +133,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
130
133
|
requirements: []
|
131
134
|
|
132
135
|
rubyforge_project: airake
|
133
|
-
rubygems_version: 0.
|
136
|
+
rubygems_version: 1.0.1
|
134
137
|
signing_key:
|
135
138
|
specification_version: 2
|
136
139
|
summary: Tasks and generators for Adobe AIR apps
|
137
140
|
test_files:
|
138
141
|
- test/test_airake.rb
|
139
142
|
- test/test_airake_generator.rb
|
140
|
-
- test/test_browsair_generator.rb
|
141
143
|
- test/test_class_generator.rb
|
142
144
|
- test/test_generator_helper.rb
|
143
145
|
- test/test_helper.rb
|
146
|
+
- test/test_runner.rb
|
@@ -1,95 +0,0 @@
|
|
1
|
-
class BrowsairGenerator < RubiGen::Base
|
2
|
-
|
3
|
-
DEFAULT_SHEBANG = File.join(Config::CONFIG['bindir'],
|
4
|
-
Config::CONFIG['ruby_install_name'])
|
5
|
-
|
6
|
-
attr_reader :name, :app_name, :url, :title, :description, :icon_src_path, :show_buttons
|
7
|
-
|
8
|
-
def initialize(runtime_args, runtime_options = {})
|
9
|
-
super
|
10
|
-
usage if args.empty? || args.size < 2
|
11
|
-
@destination_root = File.expand_path(args.shift)
|
12
|
-
@name = base_name
|
13
|
-
@app_name = @name.gsub(/\s+/, "")
|
14
|
-
@url = args.shift
|
15
|
-
@title = "#{@name} - #{@url}"
|
16
|
-
@description = "AIR Browser for #{@url}"
|
17
|
-
@icon_src_path = File.expand_path(args.shift) unless args.empty?
|
18
|
-
extract_options
|
19
|
-
|
20
|
-
@source_root = File.join(File.dirname(__FILE__), "..", "shared")
|
21
|
-
end
|
22
|
-
|
23
|
-
def manifest
|
24
|
-
record do |m|
|
25
|
-
m.directory ""
|
26
|
-
|
27
|
-
# Root
|
28
|
-
m.file "../browsair/templates/README", "README"
|
29
|
-
m.template "Rakefile", "Rakefile"
|
30
|
-
|
31
|
-
# Bin
|
32
|
-
m.directory "bin"
|
33
|
-
|
34
|
-
# Lib
|
35
|
-
m.directory "lib"
|
36
|
-
m.file "lib/flexunit-08.30.2007.swc", "lib/flexunit-08.30.2007.swc"
|
37
|
-
|
38
|
-
# Test
|
39
|
-
m.directory "test"
|
40
|
-
m.file "test/Test-app.xml", "test/Test-app.xml"
|
41
|
-
m.file "test/Test.mxml", "test/Test.mxml"
|
42
|
-
m.directory "test/suite"
|
43
|
-
m.file "test/suite/AllTests.as", "test/suite/AllTests.as"
|
44
|
-
|
45
|
-
# Source
|
46
|
-
m.directory "src"
|
47
|
-
m.template "descriptor_M6.xml", "src/#{app_name}-app.xml"
|
48
|
-
m.template "application.mxml", "src/#{app_name}.mxml"
|
49
|
-
m.template "airake.yml", "airake.yml"
|
50
|
-
|
51
|
-
# Icons
|
52
|
-
if icon_src_path.blank?
|
53
|
-
m.directory "src/assets/app_icons"
|
54
|
-
m.file "icons/Web.png", "src/assets/app_icons/icon_128.png"
|
55
|
-
m.file "icons/MouseRunnerDotComGraphicsLicense.txt", "src/assets/app_icons/MouseRunnerDotComGraphicsLicense.txt"
|
56
|
-
else
|
57
|
-
icon_dest_path = destination_path("src/assets/app_icons/icon_128.png")
|
58
|
-
FileUtils.mkdir_p(destination_path("src/assets/app_icons"))
|
59
|
-
FileUtils.cp(icon_src_path, icon_dest_path)
|
60
|
-
end
|
61
|
-
|
62
|
-
m.dependency "install_rubigen_scripts", [destination_root, "air", "browsair"], :shebang => options[:shebang]
|
63
|
-
|
64
|
-
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
|
-
protected
|
69
|
-
def banner
|
70
|
-
<<-EOS
|
71
|
-
Create an AIR browser for a specific URL.
|
72
|
-
|
73
|
-
USAGE: #{spec.name} [path/to/Project] [http://the.url] [path/to/icon_128.png (optional)]
|
74
|
-
EOS
|
75
|
-
end
|
76
|
-
|
77
|
-
def add_options!(opts)
|
78
|
-
opts.separator ''
|
79
|
-
opts.separator 'Options:'
|
80
|
-
# For each option below, place the default
|
81
|
-
# at the top of the file next to "default_options"
|
82
|
-
# opts.on("-a", "--author=\"Your Name\"", String,
|
83
|
-
# "Some comment about this option",
|
84
|
-
# "Default: none") { |options[:author]| }
|
85
|
-
opts.on("-v", "--version", "Show the #{File.basename($0)} version number and quit.")
|
86
|
-
opts.on("-b", "--buttons", "Build with back/forward/home buttons")
|
87
|
-
end
|
88
|
-
|
89
|
-
def extract_options
|
90
|
-
# for each option, extract it into a local variable (and create an "attr_reader :author" at the top)
|
91
|
-
# Templates can access these value via the attr_reader-generated methods, but not the
|
92
|
-
# raw instance variable value.
|
93
|
-
@show_buttons = options[:buttons]
|
94
|
-
end
|
95
|
-
end
|