dima-ruboss4ruby 1.0.5 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (106) hide show
  1. data/History.txt +2 -3
  2. data/Manifest.txt +46 -37
  3. data/README.rdoc +12 -10
  4. data/Rakefile +37 -0
  5. data/app_generators/ruboss_app/USAGE +13 -0
  6. data/app_generators/ruboss_app/ruboss_app_generator.rb +88 -0
  7. data/{merb_generators/templates/ruboss_config → app_generators/ruboss_app/templates}/actionscript.properties +1 -1
  8. data/{merb_generators/templates/ruboss_config → app_generators/ruboss_app/templates}/actionscriptair.properties +0 -0
  9. data/app_generators/ruboss_app/templates/default_tasks.rake +51 -0
  10. data/{merb_generators/templates/ruboss_config → app_generators/ruboss_app/templates}/expressInstall.swf +0 -0
  11. data/{merb_generators/templates/ruboss_config → app_generators/ruboss_app/templates}/flex.properties +0 -0
  12. data/app_generators/ruboss_app/templates/generate.rb +21 -0
  13. data/{merb_generators/templates/ruboss_config → app_generators/ruboss_app/templates}/html-template/AC_OETags.js +0 -0
  14. data/{merb_generators/templates/ruboss_config → app_generators/ruboss_app/templates}/html-template/history/history.css +0 -0
  15. data/{merb_generators/templates/ruboss_config → app_generators/ruboss_app/templates}/html-template/history/history.js +0 -0
  16. data/{merb_generators/templates/ruboss_config → app_generators/ruboss_app/templates}/html-template/history/historyFrame.html +0 -0
  17. data/{merb_generators/templates/ruboss_config → app_generators/ruboss_app/templates}/html-template/index.template.html +0 -0
  18. data/{merb_generators/templates/ruboss_config → app_generators/ruboss_app/templates}/html-template/playerProductInstall.swf +0 -0
  19. data/{merb_generators/templates/ruboss_config → app_generators/ruboss_app/templates}/index.html.erb +2 -2
  20. data/{merb_generators/templates/ruboss_config → app_generators/ruboss_app/templates}/mainair-app.xml +3 -3
  21. data/app_generators/ruboss_app/templates/mainapp-config.xml +21 -0
  22. data/{merb_generators/templates/ruboss_flex_app → app_generators/ruboss_app/templates}/mainapp.mxml +6 -9
  23. data/app_generators/ruboss_app/templates/project-textmate.erb +52 -0
  24. data/{merb_generators/templates/ruboss_config → app_generators/ruboss_app/templates}/project.properties +0 -0
  25. data/{merb_generators/templates/ruboss_config → app_generators/ruboss_app/templates}/projectair.properties +0 -0
  26. data/{merb_generators/templates/ruboss_config → app_generators/ruboss_app/templates}/swfobject.js +0 -0
  27. data/bin/ruboss-gen +17 -0
  28. data/generators/ruboss_config/USAGE +5 -0
  29. data/generators/ruboss_config/ruboss_config_generator.rb +24 -0
  30. data/generators/ruboss_controller/USAGE +10 -0
  31. data/generators/ruboss_controller/ruboss_controller_generator.rb +34 -0
  32. data/{merb_generators/templates/ruboss_controller → generators/ruboss_controller/templates}/controller.as.erb +0 -4
  33. data/generators/ruboss_main_app/USAGE +8 -0
  34. data/generators/ruboss_main_app/ruboss_main_app_generator.rb +46 -0
  35. data/generators/ruboss_main_app/templates/mainapp.mxml +31 -0
  36. data/generators/ruboss_scaffold/USAGE +29 -0
  37. data/generators/ruboss_scaffold/ruboss_scaffold_generator.rb +117 -0
  38. data/generators/ruboss_scaffold/templates/component.mxml.erb +149 -0
  39. data/generators/ruboss_scaffold/templates/model.as.erb +42 -0
  40. data/generators/ruboss_yaml_scaffold/USAGE +7 -0
  41. data/generators/ruboss_yaml_scaffold/ruboss_yaml_scaffold_generator.rb +43 -0
  42. data/lib/ruboss4ruby/active_foo.rb +0 -64
  43. data/lib/ruboss4ruby/active_record_default_methods.rb +54 -0
  44. data/lib/ruboss4ruby/configuration.rb +13 -28
  45. data/lib/ruboss4ruby/datamapper_foo.rb +1 -1
  46. data/lib/ruboss4ruby/rails/recipes.rb +58 -0
  47. data/lib/ruboss4ruby/rails/swf_helper.rb +59 -0
  48. data/lib/ruboss4ruby/tasks.rb +1 -1
  49. data/lib/ruboss4ruby.rb +35 -15
  50. data/rails_generators/ruboss_config/ruboss_config_generator.rb +2 -2
  51. data/rails_generators/ruboss_config/templates/mainair-app.xml +2 -2
  52. data/rails_generators/ruboss_controller/USAGE +1 -2
  53. data/rails_generators/ruboss_controller/ruboss_controller_generator.rb +1 -1
  54. data/rails_generators/ruboss_scaffold/ruboss_scaffold_generator.rb +1 -1
  55. data/rails_generators/ruboss_scaffold/templates/component.mxml.erb +69 -69
  56. data/rails_generators/ruboss_scaffold/templates/model.as.erb +1 -1
  57. data/ruboss4ruby.gemspec +43 -0
  58. data/spec/ruboss4ruby_spec.rb +7 -0
  59. data/spec/spec_helper.rb +16 -0
  60. data/test/rails/controllers/application.rb +15 -0
  61. data/test/rails/controllers/locations_controller.rb +93 -0
  62. data/test/rails/controllers/notes_controller.rb +96 -0
  63. data/test/rails/controllers/projects_controller.rb +93 -0
  64. data/test/rails/controllers/tasks_controller.rb +93 -0
  65. data/test/rails/controllers/users_controller.rb +93 -0
  66. data/test/rails/database.yml +4 -0
  67. data/test/rails/fixtures/locations.yml +8 -0
  68. data/test/rails/fixtures/notes.yml +17 -0
  69. data/test/rails/fixtures/projects.yml +25 -0
  70. data/test/rails/fixtures/simple_properties.yml +19 -0
  71. data/test/rails/fixtures/tasks.yml +46 -0
  72. data/test/rails/fixtures/users.yml +13 -0
  73. data/test/rails/helpers/functional_test_helper.rb +21 -0
  74. data/test/rails/helpers/test_helper.rb +61 -0
  75. data/test/rails/helpers/unit_test_helper.rb +30 -0
  76. data/test/rails/model.yml +35 -0
  77. data/test/rails/models/location.rb +4 -0
  78. data/test/rails/models/note.rb +3 -0
  79. data/test/rails/models/project.rb +4 -0
  80. data/test/rails/models/simple_property.rb +2 -0
  81. data/test/rails/models/task.rb +20 -0
  82. data/test/rails/models/user.rb +22 -0
  83. data/test/rails/playing_around_in_a_console.txt +71 -0
  84. data/test/rails/schema.rb +77 -0
  85. data/test/rails/test.swf +1 -0
  86. data/test/rails/test_active_foo.rb +81 -0
  87. data/test/rails/test_ruboss_rails_integration_functional.rb +22 -0
  88. data/test/rails/test_to_fxml.rb +77 -0
  89. data/test/rails/test_to_json.rb +23 -0
  90. data/test/rails/views/notes/empty_params_action.html.erb +1 -0
  91. data/test/rails/views/notes/index.html.erb +1 -0
  92. metadata +121 -92
  93. data/Generators +0 -7
  94. data/lib/ruboss4ruby/generated_attribute.rb +0 -61
  95. data/merb_generators/ruboss_config.rb +0 -103
  96. data/merb_generators/ruboss_controller.rb +0 -59
  97. data/merb_generators/ruboss_flex_app.rb +0 -67
  98. data/merb_generators/ruboss_resource.rb +0 -37
  99. data/merb_generators/ruboss_resource_controller.rb +0 -80
  100. data/merb_generators/ruboss_scaffold.rb +0 -157
  101. data/merb_generators/templates/ruboss_config/ruboss.yml +0 -16
  102. data/merb_generators/templates/ruboss_resource_controller/controller_ar.rb.erb +0 -49
  103. data/merb_generators/templates/ruboss_resource_controller/controller_dm.rb.erb +0 -46
  104. data/merb_generators/templates/ruboss_resource_controller/spec/controllers/%file_name%_spec.rb +0 -7
  105. data/merb_generators/templates/ruboss_resource_controller/spec/requests/%file_name%_spec.rb +0 -1
  106. data/merb_generators/templates/ruboss_resource_controller/test/controllers/%file_name%_test.rb +0 -17
@@ -1,41 +1,26 @@
1
1
  class String
2
- def capitalize_without_downcasing
2
+ def ucfirst
3
3
  self[0,1].capitalize + self[1..-1]
4
4
  end
5
5
 
6
- def downcase_first_letter
6
+ def dcfirst
7
7
  self[0,1].downcase + self[1..-1]
8
8
  end
9
-
10
- def camelcase(first_letter = :upper)
11
- case first_letter
12
- when :upper then self.camelize(true)
13
- when :lower then self.camelize(false)
14
- end
15
- end
16
-
17
- def camelize(first_letter_in_uppercase = true)
18
- if first_letter_in_uppercase
19
- self.gsub(/\/(.?)/) { "::#{$1.upcase}" }.gsub(/(?:^|_)(.)/) { $1.upcase }
20
- else
21
- self[0,1].downcase + self.camelize[1..-1]
22
- end
23
- end
24
-
25
- def underscore
26
- self.gsub(/::/, '/').gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
27
- gsub(/([a-z\d])([A-Z])/,'\1_\2').tr("-", "_").downcase
28
- end
29
9
  end
30
10
 
31
- module Ruboss
11
+ module Ruboss4Ruby
32
12
  module Configuration
33
- APP_ROOT = defined?(RAILS_ROOT) ? RAILS_ROOT : Merb.root
34
-
35
- def extract_names
36
- project_name = APP_ROOT.split("/").last.camelcase.gsub(/\s/, '')
37
- project_name_downcase = project_name.downcase
13
+ APP_ROOT = defined?(RAILS_ROOT) ? RAILS_ROOT : defined?(Merb) ? Merb.root : File.expand_path(".")
38
14
 
15
+ def extract_names(project = nil)
16
+ if project
17
+ project_name = project.camelcase.gsub(/\s/, '')
18
+ project_name_downcase = project_name.downcase
19
+ else
20
+ project_name = APP_ROOT.split("/").last.camelcase.gsub(/\s/, '')
21
+ project_name_downcase = project_name.downcase
22
+ end
23
+
39
24
  begin
40
25
  config = YAML.load(File.open("#{APP_ROOT}/config/ruboss.yml"))
41
26
  base_package = config['base-package'] || project_name_downcase
@@ -1,5 +1,5 @@
1
1
  require 'builder'
2
- require Ruboss::LIB_DIR + 'configuration'
2
+ require Ruboss4Ruby::LIB_DIR + 'configuration'
3
3
 
4
4
  module DataMapper
5
5
  module Validate
@@ -0,0 +1,58 @@
1
+ require 'find'
2
+
3
+ # To use these recipes, add the following to your Capfile:
4
+ # require 'ruboss4ruby/rails/recipes'
5
+
6
+ Capistrano::Configuration.instance(:must_exist).load do
7
+ after "deploy:setup", "deploy:flex:setup"
8
+
9
+ namespace :db do
10
+ desc "runs db:refresh in the latest release directory."
11
+ task :refresh, :roles => :db do
12
+ run("cd #{latest_release} && rake db:refresh RAILS_ENV=production")
13
+ end
14
+ end
15
+
16
+ namespace :deploy do
17
+ namespace :flex do
18
+
19
+ desc "Creates the flex_files directory in the shared directory"
20
+ task :setup do
21
+ flex_dir = File.join(shared_path, 'flex_files')
22
+ run "#{try_sudo} mkdir -p #{flex_dir} && #{try_sudo} chmod g+w #{flex_dir}"
23
+ end
24
+
25
+ desc "uploads everything in public/bin up to the server"
26
+ task :via_dumb_copy, :roles => :app do
27
+ # the -p flag on mkdir makes intermediate directories (i.e. both /bin and /bin/history),
28
+ # and doesn't raise an error if any of the directories already exist.
29
+ rails_root = Dir.pwd # You have to run cap tasks from RAILS_ROOT anyways
30
+ base_dir = File.join(rails_root, 'public', 'bin')
31
+ ec2_base_dir = File.join(shared_path, 'flex_files')
32
+
33
+ Find.find(base_dir) do |file|
34
+ filename_without_base_dir = file.sub(base_dir, '')
35
+ if File.directory?(file)
36
+ run "mkdir -p #{File.join(ec2_base_dir, filename_without_base_dir)}"
37
+ else
38
+ content = File.open(file, 'rb') {|f| f.read}
39
+ put content, File.join(ec2_base_dir, filename_without_base_dir)
40
+ end
41
+ end
42
+ end
43
+
44
+ desc "synchronizes the local and remote public/bin directories using rsync"
45
+ task :via_rsync, :roles => :app do
46
+ username = user || ENV['USER']
47
+ rails_root = Dir.pwd # You have to run cap tasks from RAILS_ROOT anyways
48
+ execute_on_servers do |server|
49
+ `rsync -r -p -v -e \"ssh -i #{ssh_options[:keys]}\" #{File.join(rails_root, 'public', 'bin')}/ #{username}@#{server}:#{File.join(shared_path, 'flex_files')}/`
50
+ end
51
+ end
52
+
53
+ task :make_symlink, :roles => :app do
54
+ run "ln -s #{shared_path}/flex_files #{release_path}/public/bin"
55
+ end
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,59 @@
1
+ module SWFHelper
2
+
3
+ # Creates a swfObject Javascript call. You must include swfobject.js to use this.
4
+ # See http://code.google.com/p/swfobject/wiki/documentation for full details and documentation
5
+ # of the swfobject js library.
6
+ def swfobject(swf_url, params = {})
7
+ params.reverse_merge!({:width => '100%',
8
+ :height => '100%',
9
+ :id => 'flashContent',
10
+ :version => '9.0.0',
11
+ :express_install_swf => '/expressInstall.swf',
12
+ :flash_vars => nil,
13
+ :params => nil,
14
+ :attributes => nil,
15
+ :create_div => false,
16
+ :include_authenticity_token => true,
17
+ :include_session_token => true
18
+ })
19
+ arg_order = [:id, :width, :height, :version, :express_install_swf]
20
+ js_params = ["'#{swf_url}?#{rails_asset_id(swf_url)}'"]
21
+ js_params += arg_order.collect {|arg| "'#{params[arg]}'" }
22
+
23
+ # Add authenticity_token and the session key to flashVars. This will only work if flashVars is a Hash or nil
24
+ # If it's a string representing the name of a Javascript variable, then you need to add them yourself
25
+ # like this:
26
+ # <script>
27
+ # ... other code that defines flashVars and sets some of its parameters
28
+ # flashVars['authenticity_token'] = <%= form_authenticity_token -%>
29
+ # flashVars['session_token'] = <%= session.session_id -%>
30
+ # </script>
31
+ # If you include an authenticity_token parameter in flashVars,
32
+ # then the Flex app will add it to Ruboss.defaultMetadata, so that it will be sent
33
+ # back up to your Rails app with every request.
34
+ params[:flash_vars] ||= {}
35
+ if params[:flash_vars].is_a?(Hash)
36
+ if params[:include_authenticity_token] && ActionController::Base.allow_forgery_protection
37
+ params[:flash_vars].reverse_merge!(:authenticity_token => form_authenticity_token)
38
+ end
39
+ if params[:include_session_token]
40
+ params[:flash_vars].reverse_merge!(:session_token => session.session_id)
41
+ end
42
+ end
43
+
44
+ js_params += [params[:flash_vars], params[:params], params[:attributes]].collect do |hash_or_string|
45
+ if hash_or_string.is_a?(Hash)
46
+ hash_or_string.to_json
47
+ else # If it's not a hash, then it should be a string giving the name of the Javascript variable to use
48
+ hash_or_string
49
+ end
50
+ end.compact
51
+
52
+ swf_tag = javascript_tag do
53
+ "swfobject.embedSWF(#{js_params.join(',')})"
54
+ end
55
+ swf_tag += content_tag(:div, nil, :id => params[:id]) if params[:create_div]
56
+ swf_tag
57
+ end
58
+
59
+ end
@@ -3,7 +3,7 @@ require 'ftools'
3
3
  require 'rexml/document'
4
4
  require File.join(File.dirname(__FILE__), 'configuration')
5
5
 
6
- APP_ROOT = Ruboss::Configuration::APP_ROOT
6
+ APP_ROOT = Ruboss4Ruby::Configuration::APP_ROOT
7
7
 
8
8
  namespace :ruboss do
9
9
  def compile_app(executable, destination, opts = '')
data/lib/ruboss4ruby.rb CHANGED
@@ -1,38 +1,58 @@
1
- module Ruboss
2
- VERSION = '1.0.5'
3
- RUBOSS_FRAMEWORK_VERSION = '1.0.5'
4
-
1
+ module Ruboss4Ruby
2
+
3
+ # :stopdoc:
4
+ VERSION = '1.1.0'
5
+ RUBOSS_FRAMEWORK_VERSION = '1.1.0'
5
6
  LIB_DIR = File.join(File.dirname(__FILE__), 'ruboss4ruby/')
7
+ # :startdoc:
8
+
9
+ # Returns the version string for the library.
10
+ #
11
+ def self.version
12
+ VERSION
13
+ end
14
+
15
+ # Utility method used to require all files ending in .rb that lie in the
16
+ # directory below this file that has the same name as the filename passed
17
+ # in. Optionally, a specific _directory_ name can be passed in such that
18
+ # the _filename_ does not have to be equivalent to the directory.
19
+ #
20
+ def self.require_all_libs_relative_to( fname, dir = nil )
21
+ dir ||= ::File.basename(fname, '.*')
22
+ search_me = ::File.expand_path(
23
+ ::File.join(::File.dirname(fname), dir, '*', '*.rb'))
24
+
25
+ Dir.glob(search_me).sort.each {|rb| require rb}
26
+ end
27
+
6
28
  end
7
29
 
8
- # Merb specific handling
30
+ require Ruboss4Ruby::LIB_DIR + 'configuration'
31
+
9
32
  # make sure we're running inside Merb
10
33
  if defined?(Merb::Plugins)
11
34
  Merb::Plugins.add_rakefiles 'ruboss4ruby/tasks'
12
35
 
13
36
  Merb::BootLoader.before_app_loads do
14
- require Ruboss::LIB_DIR + 'configuration'
15
37
 
16
38
  if defined?(ActiveRecord::Base)
17
39
  Merb.add_mime_type(:fxml, :to_fxml, %w[application/xml text/xml application/x-xml], :charset => "utf-8")
18
- require Ruboss::LIB_DIR + 'active_foo'
40
+ ['active_foo', 'active_record_default_methods'].each { |lib| require Ruboss4Ruby::LIB_DIR + lib }
19
41
  Merb::Plugins.add_rakefiles 'ruboss4ruby/active_record_tasks'
20
42
  else
21
43
  Merb.add_mime_type(:fxml, :to_xml, %w[application/xml text/xml application/x-xml], :charset => "utf-8")
22
44
  if defined?(Merb::Orms::DataMapper)
23
- require Ruboss::LIB_DIR + 'datamapper_foo'
45
+ require Ruboss4Ruby::LIB_DIR + 'datamapper_foo'
24
46
  end
25
47
  end
26
48
  end
27
49
  elsif defined?(ActionController::Base)
28
- # if we are not running in Merb, we've got to be running in Rails
50
+ # if we are not running in Merb, try to hook up Rails
29
51
  Mime::Type.register_alias "application/xml", :fxml
30
52
 
31
- ['configuration', 'active_foo', 'rails/ruboss_helper',
32
- 'rails/ruboss_test_helpers'].each { |lib| require Ruboss::LIB_DIR + lib }
53
+ ['active_foo', 'active_record_default_methods', 'rails/swf_helper'].each { |lib| require Ruboss4Ruby::LIB_DIR + lib }
33
54
 
34
- ActionView::Base.send :include, RubossHelper unless ActionView::Base.included_modules.include?(RubossHelper)
35
- Test::Unit::TestCase.send :include, RubossTestHelpers unless Test::Unit::TestCase.included_modules.include?(RubossTestHelpers)
55
+ ActionView::Base.send :include, SWFHelper unless ActionView::Base.included_modules.include?(SWFHelper)
36
56
 
37
57
  module ActionController
38
58
  class Base
@@ -52,7 +72,7 @@ elsif defined?(ActionController::Base)
52
72
  end
53
73
  end
54
74
 
55
- module RubossController
75
+ module Ruboss4RubyController
56
76
  private
57
77
 
58
78
  # Extract any keys named _metadata from the models in the params hash
@@ -76,7 +96,7 @@ elsif defined?(ActionController::Base)
76
96
  end
77
97
  end
78
98
 
79
- ActionController::Base.send :include, RubossController
99
+ ActionController::Base.send :include, Ruboss4RubyController
80
100
  ActionController::Base.send :prepend_before_filter, :extract_metadata_from_params
81
101
 
82
102
  # temporarily disable forgery protection site-wise
@@ -1,7 +1,7 @@
1
1
  require 'open-uri'
2
2
 
3
3
  class RubossConfigGenerator < Rails::Generator::Base
4
- include Ruboss::Configuration
4
+ include Ruboss4Ruby::Configuration
5
5
 
6
6
  attr_reader :project_name,
7
7
  :flex_project_name,
@@ -73,7 +73,7 @@ class RubossConfigGenerator < Rails::Generator::Base
73
73
 
74
74
  m.directory "app/flex/#{base_folder}/components/generated"
75
75
 
76
- framework_release = Ruboss::RUBOSS_FRAMEWORK_VERSION
76
+ framework_release = Ruboss4Ruby::RUBOSS_FRAMEWORK_VERSION
77
77
  framework_distribution_url = "http://ruboss.com/releases/ruboss-#{framework_release}.swc"
78
78
  framework_destination_file = "lib/ruboss-#{framework_release}.swc"
79
79
 
@@ -60,10 +60,10 @@
60
60
  <!-- <resizable></resizable> -->
61
61
 
62
62
  <!-- The window's initial width. Optional. -->
63
- <!-- <width></width> -->
63
+ <width>800</width>
64
64
 
65
65
  <!-- The window's initial height. Optional. -->
66
- <!-- <height></height> -->
66
+ <height>600</height>
67
67
 
68
68
  <!-- The window's initial x position. Optional. -->
69
69
  <!-- <x></x> -->
@@ -1,7 +1,6 @@
1
1
  Description:
2
2
  Generates/updates the main Flex application controller, typically
3
- app/flex/<yourappname>/controllers/<YourAppName>Controller.as, e.g.
4
- app/flex/pomodo/controllers/PomodoController.as
3
+ app/flex/<yourappname>/controllers/ApplicationController.as
5
4
 
6
5
  It pulls out all available models and commands from respective
7
6
  folders and makes sure they'll be pulled into the Flex application
@@ -1,5 +1,5 @@
1
1
  class RubossControllerGenerator < Rails::Generator::Base
2
- include Ruboss::Configuration
2
+ include Ruboss4Ruby::Configuration
3
3
 
4
4
  attr_reader :project_name,
5
5
  :flex_project_name,
@@ -62,7 +62,7 @@ module Rails
62
62
  end
63
63
 
64
64
  class RubossScaffoldGenerator < Rails::Generator::NamedBase
65
- include Ruboss::Configuration
65
+ include Ruboss4Ruby::Configuration
66
66
 
67
67
  attr_reader :project_name,
68
68
  :flex_project_name,
@@ -1,106 +1,106 @@
1
1
  <?xml version="1.0" encoding="utf-8"?>
2
2
  <mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" label="<%= class_name %>"
3
3
  xmlns:rcomponents="org.ruboss.components.*">
4
- <mx:Script><![CDATA[
5
- import org.ruboss.Ruboss;
6
- import org.ruboss.utils.RubossUtils;
7
- import <%= base_package %>.models.<%= class_name %>;
4
+ <mx:Script><![CDATA[
5
+ import org.ruboss.Ruboss;
6
+ import org.ruboss.utils.RubossUtils;
7
+ import <%= base_package %>.models.<%= class_name %>;
8
8
  <% for model in belongs_tos -%>
9
- import <%= base_package %>.models.<%= model.camelcase %>;
9
+ import <%= base_package %>.models.<%= model.camelcase %>;
10
10
  <% end -%>
11
11
 
12
- [Bindable]
13
- private var _<%= class_name.downcase_first_letter %>:<%= class_name %> = new <%= class_name %>();
12
+ [Bindable]
13
+ private var _<%= class_name.dcfirst %>:<%= class_name %> = new <%= class_name %>();
14
14
 
15
- private function new<%= class_name %>():void {
16
- _<%= class_name.downcase_first_letter %> = new <%= class_name %>();
17
- <%= class_name.downcase_first_letter.pluralize %>List.selectedIndex = -1;
18
- }
15
+ private function new<%= class_name %>():void {
16
+ _<%= class_name.dcfirst %> = new <%= class_name %>();
17
+ <%= class_name.dcfirst.pluralize %>List.selectedIndex = -1;
18
+ }
19
19
 
20
- private function save<%= class_name %>():void {
21
- if (_<%= class_name.downcase_first_letter %>.id) {
22
- update<%= class_name %>();
23
- } else {
24
- create<%= class_name %>();
20
+ private function save<%= class_name %>():void {
21
+ if (_<%= class_name.dcfirst %>.id) {
22
+ update<%= class_name %>();
23
+ } else {
24
+ create<%= class_name %>();
25
+ }
25
26
  }
26
- }
27
27
 
28
- private function create<%= class_name %>():void {
29
- var <%= class_name.downcase_first_letter %>:<%= class_name %> = new <%= class_name %>();
28
+ private function create<%= class_name %>():void {
29
+ var <%= class_name.dcfirst %>:<%= class_name %> = new <%= class_name %>();
30
30
  <% for attribute in attributes -%>
31
31
  <% if attribute.type == :boolean -%>
32
- <%= class_name.downcase_first_letter %>.<%= attribute.flex_name %> = <%= attribute.flex_name %>CheckBox.selected;
32
+ <%= class_name.dcfirst %>.<%= attribute.flex_name %> = <%= attribute.flex_name %>CheckBox.selected;
33
33
  <% elsif attribute.type == :string -%>
34
- <%= class_name.downcase_first_letter %>.<%= attribute.flex_name %> = <%= attribute.flex_name %>TextInput.text;
34
+ <%= class_name.dcfirst %>.<%= attribute.flex_name %> = <%= attribute.flex_name %>TextInput.text;
35
35
  <% elsif attribute.type == :text -%>
36
- <%= class_name.downcase_first_letter %>.<%= attribute.flex_name %> = <%= attribute.flex_name %>TextArea.text;
36
+ <%= class_name.dcfirst %>.<%= attribute.flex_name %> = <%= attribute.flex_name %>TextArea.text;
37
37
  <% elsif attribute.type == :datetime || attribute.type == :time -%>
38
- <%= class_name.downcase_first_letter %>.<%= attribute.flex_name %> = <%= attribute.flex_name %>DateTimeTextInput.date;
38
+ <%= class_name.dcfirst %>.<%= attribute.flex_name %> = <%= attribute.flex_name %>DateTimeTextInput.date;
39
39
  <% elsif attribute.type == :date -%>
40
- <%= class_name.downcase_first_letter %>.<%= attribute.flex_name %> = <%= attribute.flex_name %>DateField.selectedDate;
40
+ <%= class_name.dcfirst %>.<%= attribute.flex_name %> = <%= attribute.flex_name %>DateField.selectedDate;
41
41
  <% else -%>
42
- <%= class_name.downcase_first_letter %>.<%= attribute.flex_name %> = <%= attribute.flex_type %>(<%= attribute.flex_name %>TextInput.text);
42
+ <%= class_name.dcfirst %>.<%= attribute.flex_name %> = <%= attribute.flex_type %>(<%= attribute.flex_name %>TextInput.text);
43
43
  <% end -%>
44
44
  <% end -%>
45
45
 
46
46
  <% for model in belongs_tos -%>
47
- <%= class_name.downcase_first_letter %>.<%= model.camelcase(:lower) %> = <%= model.camelcase %>(<%= model.camelcase(:lower) %>ComboBox.selectedItem);
47
+ <%= class_name.dcfirst %>.<%= model.camelcase(:lower) %> = <%= model.camelcase %>(<%= model.camelcase(:lower) %>ComboBox.selectedItem);
48
48
  <% end -%>
49
- <%= class_name.downcase_first_letter %>.create({onSuccess: on<%= class_name %>Create});
50
- }
49
+ <%= class_name.dcfirst %>.create({onSuccess: on<%= class_name %>Create});
50
+ }
51
51
 
52
- private function update<%= class_name %>():void {
52
+ private function update<%= class_name %>():void {
53
53
  <% for attribute in attributes -%>
54
54
  <% if attribute.type == :boolean -%>
55
- _<%= class_name.downcase_first_letter %>.<%= attribute.flex_name %> = <%= attribute.flex_name %>CheckBox.selected;
55
+ _<%= class_name.dcfirst %>.<%= attribute.flex_name %> = <%= attribute.flex_name %>CheckBox.selected;
56
56
  <% elsif attribute.type == :string -%>
57
- _<%= class_name.downcase_first_letter %>.<%= attribute.flex_name %> = <%= attribute.flex_name %>TextInput.text;
57
+ _<%= class_name.dcfirst %>.<%= attribute.flex_name %> = <%= attribute.flex_name %>TextInput.text;
58
58
  <% elsif attribute.type == :text -%>
59
- _<%= class_name.downcase_first_letter %>.<%= attribute.flex_name %> = <%= attribute.flex_name %>TextArea.text;
59
+ _<%= class_name.dcfirst %>.<%= attribute.flex_name %> = <%= attribute.flex_name %>TextArea.text;
60
60
  <% elsif attribute.type == :datetime || attribute.type == :time -%>
61
- _<%= class_name.downcase_first_letter %>.<%= attribute.flex_name %> = <%= attribute.flex_name %>DateTimeTextInput.date;
61
+ _<%= class_name.dcfirst %>.<%= attribute.flex_name %> = <%= attribute.flex_name %>DateTimeTextInput.date;
62
62
  <% elsif attribute.type == :date -%>
63
- _<%= class_name.downcase_first_letter %>.<%= attribute.flex_name %> = <%= attribute.flex_name %>DateField.selectedDate;
63
+ _<%= class_name.dcfirst %>.<%= attribute.flex_name %> = <%= attribute.flex_name %>DateField.selectedDate;
64
64
  <% else -%>
65
- _<%= class_name.downcase_first_letter %>.<%= attribute.flex_name %> = <%= attribute.flex_type %>(<%= attribute.flex_name %>TextInput.text);
65
+ _<%= class_name.dcfirst %>.<%= attribute.flex_name %> = <%= attribute.flex_type %>(<%= attribute.flex_name %>TextInput.text);
66
66
  <% end -%>
67
67
  <% end -%>
68
68
 
69
69
  <% for model in belongs_tos -%>
70
- _<%= class_name.downcase_first_letter %>.<%= model.camelcase(:lower) %> = <%= model.camelcase %>(<%= model.camelcase(:lower) %>ComboBox.selectedItem);
70
+ _<%= class_name.dcfirst %>.<%= model.camelcase(:lower) %> = <%= model.camelcase %>(<%= model.camelcase(:lower) %>ComboBox.selectedItem);
71
71
  <% end -%>
72
- _<%= class_name.downcase_first_letter %>.update({onSuccess: on<%= class_name %>Update});
73
- }
72
+ _<%= class_name.dcfirst %>.update({onSuccess: on<%= class_name %>Update});
73
+ }
74
74
 
75
- private function destroy<%= class_name %>():void {
76
- _<%= class_name.downcase_first_letter %>.destroy({onSuccess: on<%= class_name %>Destroy});
77
- }
75
+ private function destroy<%= class_name %>():void {
76
+ _<%= class_name.dcfirst %>.destroy({onSuccess: on<%= class_name %>Destroy});
77
+ }
78
78
 
79
- private function on<%= class_name %>Select():void {
80
- _<%= class_name.downcase_first_letter %> = RubossUtils.clone(<%= class_name.downcase_first_letter.pluralize %>List.selectedItem) as <%= class_name %>;
81
- }
79
+ private function on<%= class_name %>Select():void {
80
+ _<%= class_name.dcfirst %> = RubossUtils.clone(<%= class_name.dcfirst.pluralize %>List.selectedItem) as <%= class_name %>;
81
+ }
82
82
 
83
- private function on<%= class_name %>Create(<%= class_name.downcase_first_letter %>:<%= class_name %>):void {
84
- _<%= class_name.downcase_first_letter %> = new <%= class_name %>;
85
- }
83
+ private function on<%= class_name %>Create(<%= class_name.dcfirst %>:<%= class_name %>):void {
84
+ _<%= class_name.dcfirst %> = new <%= class_name %>;
85
+ }
86
86
 
87
- private function on<%= class_name %>Update(<%= class_name.downcase_first_letter %>:<%= class_name %>):void {
88
- <%= class_name.downcase_first_letter.pluralize %>List.selectedItem = <%= class_name.downcase_first_letter %>;
89
- _<%= class_name.downcase_first_letter %> = RubossUtils.clone(<%= class_name.downcase_first_letter %>) as <%= class_name %>;
90
- }
87
+ private function on<%= class_name %>Update(<%= class_name.dcfirst %>:<%= class_name %>):void {
88
+ <%= class_name.dcfirst.pluralize %>List.selectedItem = <%= class_name.dcfirst %>;
89
+ _<%= class_name.dcfirst %> = RubossUtils.clone(<%= class_name.dcfirst %>) as <%= class_name %>;
90
+ }
91
91
 
92
- private function on<%= class_name %>Destroy(<%= class_name.downcase_first_letter %>:<%= class_name %>):void {
93
- on<%= class_name %>Create(<%= class_name.downcase_first_letter %>);
94
- }
92
+ private function on<%= class_name %>Destroy(<%= class_name.dcfirst %>:<%= class_name %>):void {
93
+ on<%= class_name %>Create(<%= class_name.dcfirst %>);
94
+ }
95
95
 
96
- private function canDelete<%= class_name %>(<%= class_name.downcase_first_letter %>:<%= class_name %>):Boolean {
97
- return <%= class_name.downcase_first_letter %> != null && <%= class_name.downcase_first_letter %>.id != 0;
98
- }
99
- ]]></mx:Script>
100
- <mx:Panel id="<%= class_name.downcase_first_letter.pluralize %>Panel"
96
+ private function canDelete<%= class_name %>(<%= class_name.dcfirst %>:<%= class_name %>):Boolean {
97
+ return <%= class_name.dcfirst %> != null && !RubossUtils.isEmpty(<%= class_name.dcfirst %>.id);
98
+ }
99
+ ]]></mx:Script>
100
+ <mx:Panel id="<%= class_name.dcfirst.pluralize %>Panel"
101
101
  title="<%= class_name.pluralize %>" cornerRadius="0" dropShadowEnabled="false" borderStyle="solid"
102
102
  borderThickness="1" backgroundColor="#EEEEEE" width="25%" height="100%">
103
- <mx:List id="<%= class_name.downcase_first_letter.pluralize %>List"
103
+ <mx:List id="<%= class_name.dcfirst.pluralize %>List"
104
104
  width="100%" height="100%"
105
105
  dataProvider="{Ruboss.models.index(<%= class_name %>)}"
106
106
  change="on<%= class_name %>Select()"/>
@@ -113,19 +113,19 @@
113
113
  borderThickness="1" backgroundColor="#EEEEEE" width="75%" height="100%">
114
114
  <mx:Form width="100%" height="100%">
115
115
  <% for attribute in attributes -%>
116
- <mx:FormItem label="<%= attribute.flex_name.capitalize_without_downcasing %>" width="100%">
116
+ <mx:FormItem label="<%= attribute.flex_name.ucfirst %>" width="100%">
117
117
  <% if attribute.type == :boolean -%>
118
- <mx:CheckBox id="<%= attribute.flex_name %>CheckBox" selected="{_<%= class_name.downcase_first_letter %>.<%= attribute.flex_name %>}"/>
118
+ <mx:CheckBox id="<%= attribute.flex_name %>CheckBox" selected="{_<%= class_name.dcfirst %>.<%= attribute.flex_name %>}"/>
119
119
  <% elsif attribute.type == :string -%>
120
- <mx:TextInput id="<%= attribute.flex_name %>TextInput" width="100%" text="{_<%= class_name.downcase_first_letter %>.<%= attribute.flex_name %>}"/>
120
+ <mx:TextInput id="<%= attribute.flex_name %>TextInput" width="100%" text="{_<%= class_name.dcfirst %>.<%= attribute.flex_name %>}"/>
121
121
  <% elsif attribute.type == :text -%>
122
- <mx:TextArea id="<%= attribute.flex_name %>TextArea" width="100%" height="200" text="{_<%= class_name.downcase_first_letter %>.<%= attribute.flex_name %>}"/>
122
+ <mx:TextArea id="<%= attribute.flex_name %>TextArea" width="100%" height="200" text="{_<%= class_name.dcfirst %>.<%= attribute.flex_name %>}"/>
123
123
  <% elsif attribute.type == :datetime || attribute.type == :time -%>
124
- <rcomponents:DateTimeTextInput id="<%= attribute.flex_name %>DateTimeTextInput" width="200" date="{_<%= class_name.downcase_first_letter %>.<%= attribute.flex_name %>}"/>
124
+ <rcomponents:DateTimeTextInput id="<%= attribute.flex_name %>DateTimeTextInput" width="200" date="{_<%= class_name.dcfirst %>.<%= attribute.flex_name %>}"/>
125
125
  <% elsif attribute.type == :date -%>
126
- <mx:DateField id="<%= attribute.flex_name %>DateField" selectedDate="{_<%= class_name.downcase_first_letter %>.<%= attribute.flex_name %>}"/>
126
+ <mx:DateField id="<%= attribute.flex_name %>DateField" selectedDate="{_<%= class_name.dcfirst %>.<%= attribute.flex_name %>}"/>
127
127
  <% else -%>
128
- <mx:TextInput id="<%= attribute.flex_name %>TextInput" width="100%" text="{_<%= class_name.downcase_first_letter %>.<%= attribute.flex_name %>}"/>
128
+ <mx:TextInput id="<%= attribute.flex_name %>TextInput" width="100%" text="{_<%= class_name.dcfirst %>.<%= attribute.flex_name %>}"/>
129
129
  <% end -%>
130
130
  </mx:FormItem>
131
131
  <% end -%>
@@ -134,7 +134,7 @@
134
134
  <mx:ComboBox id="<%= model.camelcase(:lower) %>ComboBox" width="200"
135
135
  labelField="{<%= model.camelcase %>.LABEL}"
136
136
  dataProvider="{Ruboss.models.index(<%= model.camelcase %>)}" prompt="<%= model.camelcase %> ..."
137
- selectedItem="{_<%= class_name.downcase_first_letter %>.<%= model.camelcase(:lower) %>}" />
137
+ selectedItem="{_<%= class_name.dcfirst %>.<%= model.camelcase(:lower) %>}" />
138
138
  </mx:FormItem>
139
139
  <% end -%>
140
140
  </mx:Form>
@@ -142,7 +142,7 @@
142
142
  <mx:Button label="Save <%= class_name %>" width="50%" height="30"
143
143
  click="save<%= class_name %>()"/>
144
144
  <mx:Button label="Delete <%= class_name %>" width="50%" height="30"
145
- enabled="{canDelete<%= class_name %>(_<%= class_name.downcase_first_letter %>)}"
145
+ enabled="{canDelete<%= class_name %>(_<%= class_name.dcfirst %>)}"
146
146
  click="destroy<%= class_name %>()"/>
147
147
  </mx:ControlBar>
148
148
  </mx:Panel>
@@ -1,6 +1,6 @@
1
1
  package <%= base_package %>.models {
2
2
  <% if has_manies.length > 0 -%>
3
- import org.ruboss.models.ModelsCollection;
3
+ import org.ruboss.collections.ModelsCollection;
4
4
  <% end -%>
5
5
  import org.ruboss.models.RubossModel;
6
6
 
@@ -0,0 +1,43 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = %q{ruboss4ruby}
5
+ s.version = "1.1.0"
6
+
7
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
+ s.authors = ["Dima Berastau"]
9
+ s.date = %q{2008-12-26}
10
+ s.default_executable = %q{ruboss-gen}
11
+ s.description = %q{Ruboss Framework Code Generation Engine / Rails 2.1+ and Merb 1.0 Integration Support}
12
+ s.email = %q{dima@ruboss.com}
13
+ s.executables = ["ruboss-gen"]
14
+ s.extra_rdoc_files = ["History.txt", "README.rdoc", "bin/ruboss-gen", "gpl-3.0.txt", "rcl-1.0.txt", "test/rails/playing_around_in_a_console.txt"]
15
+ s.files = ["History.txt", "Manifest.txt", "README.rdoc", "Rakefile", "app_generators/ruboss_app/USAGE", "app_generators/ruboss_app/ruboss_app_generator.rb", "app_generators/ruboss_app/templates/actionscript.properties", "app_generators/ruboss_app/templates/actionscriptair.properties", "app_generators/ruboss_app/templates/default_tasks.rake", "app_generators/ruboss_app/templates/expressInstall.swf", "app_generators/ruboss_app/templates/flex.properties", "app_generators/ruboss_app/templates/generate.rb", "app_generators/ruboss_app/templates/html-template/AC_OETags.js", "app_generators/ruboss_app/templates/html-template/history/history.css", "app_generators/ruboss_app/templates/html-template/history/history.js", "app_generators/ruboss_app/templates/html-template/history/historyFrame.html", "app_generators/ruboss_app/templates/html-template/index.template.html", "app_generators/ruboss_app/templates/html-template/playerProductInstall.swf", "app_generators/ruboss_app/templates/index.html.erb", "app_generators/ruboss_app/templates/mainair-app.xml", "app_generators/ruboss_app/templates/mainapp-config.xml", "app_generators/ruboss_app/templates/mainapp.mxml", "app_generators/ruboss_app/templates/project-textmate.erb", "app_generators/ruboss_app/templates/project.properties", "app_generators/ruboss_app/templates/projectair.properties", "app_generators/ruboss_app/templates/swfobject.js", "bin/ruboss-gen", "generators/ruboss_config/USAGE", "generators/ruboss_config/ruboss_config_generator.rb", "generators/ruboss_controller/USAGE", "generators/ruboss_controller/ruboss_controller_generator.rb", "generators/ruboss_controller/templates/controller.as.erb", "generators/ruboss_main_app/USAGE", "generators/ruboss_main_app/ruboss_main_app_generator.rb", "generators/ruboss_main_app/templates/mainapp.mxml", "generators/ruboss_scaffold/USAGE", "generators/ruboss_scaffold/ruboss_scaffold_generator.rb", "generators/ruboss_scaffold/templates/component.mxml.erb", "generators/ruboss_scaffold/templates/model.as.erb", "generators/ruboss_yaml_scaffold/USAGE", "generators/ruboss_yaml_scaffold/ruboss_yaml_scaffold_generator.rb", "gpl-3.0.txt", "lib/ruboss4ruby.rb", "lib/ruboss4ruby/active_foo.rb", "lib/ruboss4ruby/active_record_default_methods.rb", "lib/ruboss4ruby/active_record_tasks.rb", "lib/ruboss4ruby/configuration.rb", "lib/ruboss4ruby/datamapper_foo.rb", "lib/ruboss4ruby/rails/recipes.rb", "lib/ruboss4ruby/rails/swf_helper.rb", "lib/ruboss4ruby/tasks.rb", "rails_generators/ruboss_config/USAGE", "rails_generators/ruboss_config/ruboss_config_generator.rb", "rails_generators/ruboss_config/templates/actionscript.properties", "rails_generators/ruboss_config/templates/actionscriptair.properties", "rails_generators/ruboss_config/templates/expressInstall.swf", "rails_generators/ruboss_config/templates/flex.properties", "rails_generators/ruboss_config/templates/html-template/AC_OETags.js", "rails_generators/ruboss_config/templates/html-template/history/history.css", "rails_generators/ruboss_config/templates/html-template/history/history.js", "rails_generators/ruboss_config/templates/html-template/history/historyFrame.html", "rails_generators/ruboss_config/templates/html-template/index.template.html", "rails_generators/ruboss_config/templates/html-template/playerProductInstall.swf", "rails_generators/ruboss_config/templates/index.html.erb", "rails_generators/ruboss_config/templates/mainair-app.xml", "rails_generators/ruboss_config/templates/mainapp-config.xml", "rails_generators/ruboss_config/templates/mainapp.mxml", "rails_generators/ruboss_config/templates/project-textmate.erb", "rails_generators/ruboss_config/templates/project.properties", "rails_generators/ruboss_config/templates/projectair.properties", "rails_generators/ruboss_config/templates/ruboss.yml", "rails_generators/ruboss_config/templates/ruboss_tasks.rake", "rails_generators/ruboss_config/templates/swfobject.js", "rails_generators/ruboss_controller/USAGE", "rails_generators/ruboss_controller/ruboss_controller_generator.rb", "rails_generators/ruboss_controller/templates/controller.as.erb", "rails_generators/ruboss_scaffold/USAGE", "rails_generators/ruboss_scaffold/ruboss_scaffold_generator.rb", "rails_generators/ruboss_scaffold/templates/component.mxml.erb", "rails_generators/ruboss_scaffold/templates/controller.rb.erb", "rails_generators/ruboss_scaffold/templates/fixtures.yml.erb", "rails_generators/ruboss_scaffold/templates/migration.rb.erb", "rails_generators/ruboss_scaffold/templates/model.as.erb", "rails_generators/ruboss_scaffold/templates/model.rb.erb", "rails_generators/ruboss_yaml_scaffold/USAGE", "rails_generators/ruboss_yaml_scaffold/ruboss_yaml_scaffold_generator.rb", "rcl-1.0.txt", "ruboss4ruby.gemspec", "spec/ruboss4ruby_spec.rb", "spec/spec_helper.rb", "tasks/ann.rake", "tasks/bones.rake", "tasks/gem.rake", "tasks/git.rake", "tasks/manifest.rake", "tasks/notes.rake", "tasks/post_load.rake", "tasks/rdoc.rake", "tasks/rubyforge.rake", "tasks/setup.rb", "tasks/spec.rake", "tasks/svn.rake", "tasks/test.rake", "test/rails/controllers/application.rb", "test/rails/controllers/locations_controller.rb", "test/rails/controllers/notes_controller.rb", "test/rails/controllers/projects_controller.rb", "test/rails/controllers/tasks_controller.rb", "test/rails/controllers/users_controller.rb", "test/rails/database.yml", "test/rails/fixtures/locations.yml", "test/rails/fixtures/notes.yml", "test/rails/fixtures/projects.yml", "test/rails/fixtures/simple_properties.yml", "test/rails/fixtures/tasks.yml", "test/rails/fixtures/users.yml", "test/rails/helpers/controllers.log", "test/rails/helpers/functional_test_helper.rb", "test/rails/helpers/models.log", "test/rails/helpers/test_helper.rb", "test/rails/helpers/unit_test_helper.rb", "test/rails/model.yml", "test/rails/models/location.rb", "test/rails/models/note.rb", "test/rails/models/project.rb", "test/rails/models/simple_property.rb", "test/rails/models/task.rb", "test/rails/models/user.rb", "test/rails/playing_around_in_a_console.txt", "test/rails/schema.rb", "test/rails/test.sqlite3", "test/rails/test.swf", "test/rails/test_active_foo.rb", "test/rails/test_ruboss_rails_integration_functional.rb", "test/rails/test_to_fxml.rb", "test/rails/test_to_json.rb", "test/rails/views/notes/empty_params_action.html.erb", "test/rails/views/notes/index.html.erb"]
16
+ s.has_rdoc = true
17
+ s.homepage = %q{http://github.com/dima/ruboss4ruby/wikis}
18
+ s.rdoc_options = ["--main", "README.rdoc"]
19
+ s.require_paths = ["lib"]
20
+ s.rubyforge_project = %q{ruboss4ruby}
21
+ s.rubygems_version = %q{1.3.1}
22
+ s.summary = %q{Ruboss Framework Code Generation Engine / Rails 2.1+ and Merb 1.0 Integration Support}
23
+ s.test_files = ["test/rails/helpers/test_helper.rb", "test/rails/test_active_foo.rb", "test/rails/test_ruboss_rails_integration_functional.rb", "test/rails/test_to_fxml.rb", "test/rails/test_to_json.rb"]
24
+
25
+ if s.respond_to? :specification_version then
26
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
27
+ s.specification_version = 2
28
+
29
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
30
+ s.add_runtime_dependency(%q<rubigen>, [">= 1.4.0"])
31
+ s.add_runtime_dependency(%q<activesupport>, [">= 2.2.2"])
32
+ s.add_development_dependency(%q<bones>, [">= 2.1.1"])
33
+ else
34
+ s.add_dependency(%q<rubigen>, [">= 1.4.0"])
35
+ s.add_dependency(%q<activesupport>, [">= 2.2.2"])
36
+ s.add_dependency(%q<bones>, [">= 2.1.1"])
37
+ end
38
+ else
39
+ s.add_dependency(%q<rubigen>, [">= 1.4.0"])
40
+ s.add_dependency(%q<activesupport>, [">= 2.2.2"])
41
+ s.add_dependency(%q<bones>, [">= 2.1.1"])
42
+ end
43
+ end
@@ -0,0 +1,7 @@
1
+
2
+ require File.join(File.dirname(__FILE__), %w[spec_helper])
3
+
4
+ describe Ruboss4Ruby do
5
+ end
6
+
7
+ # EOF