jasmine 0.4.0 → 0.4.1
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/bin/jasmine +11 -8
- data/generators/jasmine/jasmine_generator.rb +1 -1
- data/generators/jasmine/templates/spec/javascripts/support/{sources-rails.yaml → jasmine-rails.yaml} +4 -2
- data/generators/jasmine/templates/spec/javascripts/support/jasmine.yaml +10 -0
- data/generators/jasmine/templates/spec/javascripts/support/jasmine_config.rb +46 -10
- data/lib/jasmine/config.rb +54 -42
- data/lib/jasmine/server.rb +1 -1
- data/spec/config_spec.rb +25 -5
- metadata +3 -3
- data/generators/jasmine/templates/spec/javascripts/support/sources.yaml +0 -5
    
        data/bin/jasmine
    CHANGED
    
    | @@ -20,8 +20,8 @@ end | |
| 20 20 |  | 
| 21 21 | 
             
            def copy_unless_exists(relative_path, dest_path = nil)
         | 
| 22 22 | 
             
              unless File.exist?(dest_path(relative_path))
         | 
| 23 | 
            -
             | 
| 24 | 
            -
             | 
| 23 | 
            +
                File.copy(template_path(relative_path), dest_path(dest_path || relative_path))
         | 
| 24 | 
            +
              end
         | 
| 25 25 | 
             
            end
         | 
| 26 26 |  | 
| 27 27 | 
             
            if ARGV[0] == 'init'
         | 
| @@ -37,16 +37,19 @@ if ARGV[0] == 'init' | |
| 37 37 | 
             
              rails_tasks_dir = dest_path('lib/tasks')
         | 
| 38 38 | 
             
              if File.exist?(rails_tasks_dir)
         | 
| 39 39 | 
             
                copy_unless_exists('lib/tasks/jasmine.rake')
         | 
| 40 | 
            -
                copy_unless_exists('spec/javascripts/support/ | 
| 40 | 
            +
                copy_unless_exists('spec/javascripts/support/jasmine-rails.yaml', 'spec/javascripts/support/jasmine.yaml')
         | 
| 41 41 | 
             
              else
         | 
| 42 | 
            -
                copy_unless_exists('spec/javascripts/support/ | 
| 42 | 
            +
                copy_unless_exists('spec/javascripts/support/jasmine.yaml')
         | 
| 43 | 
            +
                write_mode = 'w'
         | 
| 43 44 | 
             
                if File.exist?(dest_path('Rakefile'))
         | 
| 44 45 | 
             
                  load dest_path('Rakefile')
         | 
| 46 | 
            +
                  write_mode = 'a'
         | 
| 47 | 
            +
                end
         | 
| 48 | 
            +
                unless Rake::Task.task_defined?('jasmine')
         | 
| 49 | 
            +
                  File.open(dest_path('Rakefile'), write_mode) do |f|
         | 
| 50 | 
            +
                    f.write(File.read(template_path('lib/tasks/jasmine.rake')))
         | 
| 51 | 
            +
                  end
         | 
| 45 52 | 
             
                end
         | 
| 46 | 
            -
                write_mode = Rake::Task.task_defined?('jasmine') ? 'a' : 'w'
         | 
| 47 | 
            -
                    File.open(dest_path('Rakefile'), write_mode) do |f|
         | 
| 48 | 
            -
                      f.write(File.read(template_path('lib/tasks/jasmine.rake')))
         | 
| 49 | 
            -
                    end
         | 
| 50 53 | 
             
              end
         | 
| 51 54 | 
             
              File.open(template_path('INSTALL'), 'r').each_line do |line|
         | 
| 52 55 | 
             
                puts line
         | 
| @@ -9,7 +9,7 @@ class JasmineGenerator < Rails::Generator::Base | |
| 9 9 | 
             
                  m.directory "spec/javascripts/support"
         | 
| 10 10 | 
             
                  m.file "spec/javascripts/support/jasmine_config.rb", "spec/javascripts/support/jasmine_config.rb"
         | 
| 11 11 | 
             
                  m.file "spec/javascripts/support/jasmine_spec.rb", "spec/javascripts/support/jasmine_spec.rb"
         | 
| 12 | 
            -
                  m.file "spec/javascripts/support/ | 
| 12 | 
            +
                  m.file "spec/javascripts/support/jasmine-rails.yaml", "spec/javascripts/support/jasmine.yaml"
         | 
| 13 13 |  | 
| 14 14 | 
             
                  m.directory "lib/tasks"
         | 
| 15 15 | 
             
                  m.file "lib/tasks/jasmine.rake", "lib/tasks/jasmine.rake"
         | 
    
        data/generators/jasmine/templates/spec/javascripts/support/{sources-rails.yaml → jasmine-rails.yaml}
    RENAMED
    
    | @@ -1,8 +1,10 @@ | |
| 1 | 
            -
             | 
| 1 | 
            +
            src_files:
         | 
| 2 2 | 
             
              - javascripts/prototype.js
         | 
| 3 3 | 
             
              - javascripts/effects.js
         | 
| 4 4 | 
             
              - javascripts/controls.js
         | 
| 5 5 | 
             
              - javascripts/dragdrop.js
         | 
| 6 6 | 
             
              - javascripts/application.js
         | 
| 7 | 
            +
            spec_files:
         | 
| 8 | 
            +
              - **/*.js
         | 
| 7 9 | 
             
            src_dir: public
         | 
| 8 | 
            -
            spec_dir: spec/javascripts
         | 
| 10 | 
            +
            spec_dir: spec/javascripts
         | 
| @@ -2,22 +2,58 @@ require 'jasmine' | |
| 2 2 |  | 
| 3 3 | 
             
            class Jasmine::Config
         | 
| 4 4 |  | 
| 5 | 
            -
              def project_root
         | 
| 6 | 
            -
                 | 
| 7 | 
            -
              end
         | 
| 5 | 
            +
            #  def project_root
         | 
| 6 | 
            +
            #    Dir.pwd
         | 
| 7 | 
            +
            #  end
         | 
| 8 8 |  | 
| 9 | 
            -
            #  | 
| 10 | 
            -
            #  def  | 
| 11 | 
            -
            #     | 
| 9 | 
            +
            #  Path to your jasmine.yaml
         | 
| 10 | 
            +
            #  def simple_config_file
         | 
| 11 | 
            +
            #    File.join(project_root, 'spec/javascripts/support/jasmine.yaml')
         | 
| 12 12 | 
             
            #  end
         | 
| 13 13 |  | 
| 14 | 
            -
            #  | 
| 14 | 
            +
            #  Source directory path. Your src_files must be returned relative to this path.
         | 
| 15 15 | 
             
            #  def src_dir
         | 
| 16 | 
            -
            #     | 
| 16 | 
            +
            #    if simple_config['src_dir']
         | 
| 17 | 
            +
            #      File.join(project_root, simple_config['src_dir'])
         | 
| 18 | 
            +
            #    else
         | 
| 19 | 
            +
            #      project_root
         | 
| 20 | 
            +
            #    end
         | 
| 17 21 | 
             
            #  end
         | 
| 18 22 |  | 
| 19 | 
            -
            #  | 
| 23 | 
            +
            #  Spec directory path. Your spec_files must be returned relative to this path.
         | 
| 20 24 | 
             
            #  def spec_dir
         | 
| 21 | 
            -
            #     | 
| 25 | 
            +
            #    if simple_config['spec_dir']
         | 
| 26 | 
            +
            #      File.join(project_root, simple_config['spec_dir'])
         | 
| 27 | 
            +
            #    else
         | 
| 28 | 
            +
            #      File.join(project_root, 'spec/javascripts')
         | 
| 29 | 
            +
            #    end
         | 
| 30 | 
            +
            #  end
         | 
| 31 | 
            +
             | 
| 32 | 
            +
            #  Return an array of filepaths relative to src_dir to include before jasmine specs.
         | 
| 33 | 
            +
            #  def src_files
         | 
| 34 | 
            +
            #    files = []
         | 
| 35 | 
            +
            #    if simple_config['src_files']
         | 
| 36 | 
            +
            #      files = simple_config['src_files'].collect {|filepath| Dir.glob(filepath)}
         | 
| 37 | 
            +
            #    end
         | 
| 38 | 
            +
            #    files
         | 
| 22 39 | 
             
            #  end
         | 
| 40 | 
            +
             | 
| 41 | 
            +
            #  Return an array of filepaths relative to spec_dir to include before jasmine specs.
         | 
| 42 | 
            +
            #  def spec_files
         | 
| 43 | 
            +
            #    files = match_files(spec_dir, "**/*.js")
         | 
| 44 | 
            +
            #    if simple_config['spec_files']
         | 
| 45 | 
            +
            #      files = simple_config['spec_files'].collect {|filepath| Dir.glob(filepath)}
         | 
| 46 | 
            +
            #    end
         | 
| 47 | 
            +
            #    files
         | 
| 48 | 
            +
            #  end
         | 
| 49 | 
            +
             | 
| 50 | 
            +
            #  Return an array of filepaths relative to src_dir to include before jasmine specs.
         | 
| 51 | 
            +
            #  def stylesheets
         | 
| 52 | 
            +
            #    files = []
         | 
| 53 | 
            +
            #    if simple_config['stylesheets']
         | 
| 54 | 
            +
            #      files = simple_config['stylesheets'].collect {|filepath| Dir.glob(filepath)}
         | 
| 55 | 
            +
            #    end
         | 
| 56 | 
            +
            #    files
         | 
| 57 | 
            +
            #  end
         | 
| 58 | 
            +
             | 
| 23 59 | 
             
            end
         | 
    
        data/lib/jasmine/config.rb
    CHANGED
    
    | @@ -71,27 +71,54 @@ module Jasmine | |
| 71 71 | 
             
                  @client.eval_js(script)
         | 
| 72 72 | 
             
                end
         | 
| 73 73 |  | 
| 74 | 
            -
                def  | 
| 75 | 
            -
                   | 
| 74 | 
            +
                def match_files(dir, patterns)
         | 
| 75 | 
            +
                  dir = File.expand_path(dir)
         | 
| 76 | 
            +
                  patterns.collect do |pattern|
         | 
| 77 | 
            +
                    Dir.glob(File.join(dir, pattern)).collect {|f| f.sub("#{dir}/", "")}.sort
         | 
| 78 | 
            +
                  end.flatten
         | 
| 76 79 | 
             
                end
         | 
| 77 80 |  | 
| 78 | 
            -
                def  | 
| 79 | 
            -
                   | 
| 81 | 
            +
                def simple_config
         | 
| 82 | 
            +
                  config = File.exist?(simple_config_file) ? File.open(simple_config_file) { |yf| YAML::load( yf ) } : false
         | 
| 83 | 
            +
                  config || {}
         | 
| 80 84 | 
             
                end
         | 
| 81 85 |  | 
| 82 | 
            -
             | 
| 83 | 
            -
             | 
| 86 | 
            +
             | 
| 87 | 
            +
                def spec_path
         | 
| 88 | 
            +
                  "/__spec__"
         | 
| 84 89 | 
             
                end
         | 
| 85 90 |  | 
| 86 | 
            -
                def  | 
| 87 | 
            -
                   | 
| 88 | 
            -
             | 
| 91 | 
            +
                def root_path
         | 
| 92 | 
            +
                  "/__root__"
         | 
| 93 | 
            +
                end
         | 
| 94 | 
            +
             | 
| 95 | 
            +
                def mappings
         | 
| 96 | 
            +
                  {
         | 
| 97 | 
            +
                    spec_path => spec_dir,
         | 
| 98 | 
            +
                    root_path => project_root
         | 
| 99 | 
            +
                  }
         | 
| 100 | 
            +
                end
         | 
| 101 | 
            +
             | 
| 102 | 
            +
                def js_files
         | 
| 103 | 
            +
                  src_files.collect {|f| "/" + f } + spec_files.collect {|f| File.join(spec_path, f) }
         | 
| 104 | 
            +
                end
         | 
| 105 | 
            +
             | 
| 106 | 
            +
                def css_files
         | 
| 107 | 
            +
                  stylesheets.collect {|f| "/" + f }
         | 
| 108 | 
            +
                end
         | 
| 109 | 
            +
             | 
| 110 | 
            +
                def spec_files_full_paths
         | 
| 111 | 
            +
                  spec_files.collect {|spec_file| File.join(spec_dir, spec_file) }
         | 
| 89 112 | 
             
                end
         | 
| 90 113 |  | 
| 91 114 | 
             
                def project_root
         | 
| 92 115 | 
             
                  Dir.pwd
         | 
| 93 116 | 
             
                end
         | 
| 94 117 |  | 
| 118 | 
            +
                def simple_config_file
         | 
| 119 | 
            +
                  File.join(project_root, 'spec/javascripts/support/jasmine.yaml')
         | 
| 120 | 
            +
                end
         | 
| 121 | 
            +
             | 
| 95 122 | 
             
                def src_dir
         | 
| 96 123 | 
             
                  if simple_config['src_dir']
         | 
| 97 124 | 
             
                    File.join(project_root, simple_config['src_dir'])
         | 
| @@ -100,19 +127,6 @@ module Jasmine | |
| 100 127 | 
             
                  end
         | 
| 101 128 | 
             
                end
         | 
| 102 129 |  | 
| 103 | 
            -
                def simple_config_file
         | 
| 104 | 
            -
                  File.join(project_root, 'spec/javascripts/support/sources.yaml')
         | 
| 105 | 
            -
                end
         | 
| 106 | 
            -
             | 
| 107 | 
            -
                def simple_config
         | 
| 108 | 
            -
                  config = File.exist?(simple_config_file) ? File.open(simple_config_file) { |yf| YAML::load( yf ) } : false
         | 
| 109 | 
            -
                  config || {}
         | 
| 110 | 
            -
                end
         | 
| 111 | 
            -
             | 
| 112 | 
            -
                def src_files
         | 
| 113 | 
            -
                  simple_config['sources'] || []
         | 
| 114 | 
            -
                end
         | 
| 115 | 
            -
             | 
| 116 130 | 
             
                def spec_dir
         | 
| 117 131 | 
             
                  if simple_config['spec_dir']
         | 
| 118 132 | 
             
                    File.join(project_root, simple_config['spec_dir'])
         | 
| @@ -121,31 +135,29 @@ module Jasmine | |
| 121 135 | 
             
                  end
         | 
| 122 136 | 
             
                end
         | 
| 123 137 |  | 
| 124 | 
            -
                def  | 
| 125 | 
            -
                   | 
| 126 | 
            -
             | 
| 127 | 
            -
             | 
| 128 | 
            -
             | 
| 129 | 
            -
                   | 
| 130 | 
            -
                end
         | 
| 131 | 
            -
             | 
| 132 | 
            -
                def root_path
         | 
| 133 | 
            -
                  "/__root__"
         | 
| 138 | 
            +
                def src_files
         | 
| 139 | 
            +
                  files = []
         | 
| 140 | 
            +
                  if simple_config['src_files']
         | 
| 141 | 
            +
                    files = match_files(src_dir, simple_config['src_files'])
         | 
| 142 | 
            +
                  end
         | 
| 143 | 
            +
                  files
         | 
| 134 144 | 
             
                end
         | 
| 135 145 |  | 
| 136 | 
            -
                def  | 
| 137 | 
            -
                   | 
| 138 | 
            -
             | 
| 139 | 
            -
                     | 
| 140 | 
            -
                   | 
| 146 | 
            +
                def spec_files
         | 
| 147 | 
            +
                  files = match_files(spec_dir, "**/*.js")
         | 
| 148 | 
            +
                  if simple_config['spec_files']
         | 
| 149 | 
            +
                    files = match_files(spec_dir, simple_config['spec_files'])
         | 
| 150 | 
            +
                  end
         | 
| 151 | 
            +
                  files
         | 
| 141 152 | 
             
                end
         | 
| 142 153 |  | 
| 143 | 
            -
                def  | 
| 144 | 
            -
                   | 
| 154 | 
            +
                def stylesheets
         | 
| 155 | 
            +
                  files = []
         | 
| 156 | 
            +
                  if simple_config['stylesheets']
         | 
| 157 | 
            +
                    files = match_files(src_dir, simple_config['stylesheets'])
         | 
| 158 | 
            +
                  end
         | 
| 159 | 
            +
                  files
         | 
| 145 160 | 
             
                end
         | 
| 146 161 |  | 
| 147 | 
            -
                def spec_files_full_paths
         | 
| 148 | 
            -
                  spec_files.collect {|spec_file| File.join(spec_dir, spec_file) }
         | 
| 149 | 
            -
                end
         | 
| 150 162 | 
             
              end
         | 
| 151 163 | 
             
            end
         | 
    
        data/lib/jasmine/server.rb
    CHANGED
    
    | @@ -18,7 +18,7 @@ module Jasmine | |
| 18 18 | 
             
                #noinspection RubyUnusedLocalVariable
         | 
| 19 19 | 
             
                def run
         | 
| 20 20 | 
             
                  jasmine_files = @jasmine_files
         | 
| 21 | 
            -
                  css_files = @jasmine_stylesheets + (@config. | 
| 21 | 
            +
                  css_files = @jasmine_stylesheets + (@config.css_files || [])
         | 
| 22 22 | 
             
                  js_files = @config.js_files
         | 
| 23 23 |  | 
| 24 24 | 
             
                  body = ERB.new(File.read(File.join(File.dirname(__FILE__), "run.html.erb"))).result(binding)
         | 
    
        data/spec/config_spec.rb
    CHANGED
    
    | @@ -12,6 +12,7 @@ describe Jasmine::Config do | |
| 12 12 | 
             
                it "if sources.yaml not found" do
         | 
| 13 13 | 
             
                  File.stub!(:exist?).and_return(false)
         | 
| 14 14 | 
             
                  @config.src_files.should == []
         | 
| 15 | 
            +
                  @config.stylesheets.should == []
         | 
| 15 16 | 
             
                  @config.spec_files.should == ['javascripts/ExampleSpec.js', 'javascripts/SpecHelper.js']
         | 
| 16 17 | 
             
                  @config.mappings.should == {
         | 
| 17 18 | 
             
                    '/__root__' => @config.project_root,
         | 
| @@ -20,8 +21,10 @@ describe Jasmine::Config do | |
| 20 21 | 
             
                end
         | 
| 21 22 |  | 
| 22 23 | 
             
                it "if sources.yaml is empty" do
         | 
| 24 | 
            +
                  @config.stub!(:simple_config_file).and_return(File.join(@template_dir, 'spec/javascripts/support/jasmine.yaml'))
         | 
| 23 25 | 
             
                  YAML.stub!(:load).and_return(false)
         | 
| 24 26 | 
             
                  @config.src_files.should == []
         | 
| 27 | 
            +
                  @config.stylesheets.should == []
         | 
| 25 28 | 
             
                  @config.spec_files.should == ['javascripts/ExampleSpec.js', 'javascripts/SpecHelper.js']
         | 
| 26 29 | 
             
                  @config.mappings.should == {
         | 
| 27 30 | 
             
                    '/__root__' => @config.project_root,
         | 
| @@ -29,8 +32,8 @@ describe Jasmine::Config do | |
| 29 32 | 
             
                  }
         | 
| 30 33 | 
             
                end
         | 
| 31 34 |  | 
| 32 | 
            -
                it "using default  | 
| 33 | 
            -
                  @config.stub!(:simple_config_file).and_return(File.join(@template_dir, 'spec/javascripts/support/ | 
| 35 | 
            +
                it "using default jasmine.yaml" do
         | 
| 36 | 
            +
                  @config.stub!(:simple_config_file).and_return(File.join(@template_dir, 'spec/javascripts/support/jasmine.yaml'))
         | 
| 34 37 | 
             
                  @config.src_files.should == []
         | 
| 35 38 | 
             
                  @config.spec_files.should == ['javascripts/ExampleSpec.js', 'javascripts/SpecHelper.js']
         | 
| 36 39 | 
             
                  @config.mappings.should == {
         | 
| @@ -39,14 +42,31 @@ describe Jasmine::Config do | |
| 39 42 | 
             
                  }
         | 
| 40 43 | 
             
                end
         | 
| 41 44 |  | 
| 42 | 
            -
                it " | 
| 43 | 
            -
                  @config.stub!(:simple_config_file).and_return(File.join(@template_dir, 'spec/javascripts/support/ | 
| 45 | 
            +
                it "simple_config stylesheets" do
         | 
| 46 | 
            +
                  @config.stub!(:simple_config_file).and_return(File.join(@template_dir, 'spec/javascripts/support/jasmine.yaml'))
         | 
| 47 | 
            +
                  YAML.stub!(:load).and_return({'stylesheets' => ['foo.css', 'bar.css']})
         | 
| 48 | 
            +
                  Dir.stub!(:glob).and_return do |glob_string|
         | 
| 49 | 
            +
                    glob_string
         | 
| 50 | 
            +
                  end
         | 
| 51 | 
            +
                  @config.stylesheets.should == ['foo.css', 'bar.css']
         | 
| 52 | 
            +
                end
         | 
| 53 | 
            +
             | 
| 54 | 
            +
                it "using rails jasmine.yaml" do
         | 
| 55 | 
            +
                  original_glob = Dir.method(:glob)
         | 
| 56 | 
            +
                  Dir.stub!(:glob).and_return do |glob_string|
         | 
| 57 | 
            +
                    if glob_string =~ /public/
         | 
| 58 | 
            +
                      glob_string
         | 
| 59 | 
            +
                    else
         | 
| 60 | 
            +
                      original_glob.call(glob_string)
         | 
| 61 | 
            +
                    end
         | 
| 62 | 
            +
                  end
         | 
| 63 | 
            +
                  @config.stub!(:simple_config_file).and_return(File.join(@template_dir, 'spec/javascripts/support/jasmine-rails.yaml'))
         | 
| 64 | 
            +
                  @config.spec_files.should == ['javascripts/ExampleSpec.js', 'javascripts/SpecHelper.js']
         | 
| 44 65 | 
             
                  @config.src_files.should == ['javascripts/prototype.js',
         | 
| 45 66 | 
             
                                               'javascripts/effects.js',
         | 
| 46 67 | 
             
                                               'javascripts/controls.js',
         | 
| 47 68 | 
             
                                               'javascripts/dragdrop.js',
         | 
| 48 69 | 
             
                                               'javascripts/application.js']
         | 
| 49 | 
            -
                  @config.spec_files.should == ['javascripts/ExampleSpec.js', 'javascripts/SpecHelper.js']
         | 
| 50 70 | 
             
                  @config.js_files.should == [
         | 
| 51 71 | 
             
                    '/javascripts/prototype.js',
         | 
| 52 72 | 
             
                    '/javascripts/effects.js',
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification 
         | 
| 2 2 | 
             
            name: jasmine
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version 
         | 
| 4 | 
            -
              version: 0.4. | 
| 4 | 
            +
              version: 0.4.1
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors: 
         | 
| 7 7 | 
             
            - Rajan Agaskar
         | 
| @@ -87,10 +87,10 @@ files: | |
| 87 87 | 
             
            - generators/jasmine/templates/lib/tasks/jasmine.rake
         | 
| 88 88 | 
             
            - generators/jasmine/templates/spec/javascripts/ExampleSpec.js
         | 
| 89 89 | 
             
            - generators/jasmine/templates/spec/javascripts/SpecHelper.js
         | 
| 90 | 
            +
            - generators/jasmine/templates/spec/javascripts/support/jasmine-rails.yaml
         | 
| 91 | 
            +
            - generators/jasmine/templates/spec/javascripts/support/jasmine.yaml
         | 
| 90 92 | 
             
            - generators/jasmine/templates/spec/javascripts/support/jasmine_config.rb
         | 
| 91 93 | 
             
            - generators/jasmine/templates/spec/javascripts/support/jasmine_spec.rb
         | 
| 92 | 
            -
            - generators/jasmine/templates/spec/javascripts/support/sources-rails.yaml
         | 
| 93 | 
            -
            - generators/jasmine/templates/spec/javascripts/support/sources.yaml
         | 
| 94 94 | 
             
            - jasmine/contrib/ruby/jasmine_runner.rb
         | 
| 95 95 | 
             
            - jasmine/contrib/ruby/jasmine_spec_builder.rb
         | 
| 96 96 | 
             
            - jasmine/contrib/ruby/run.html
         |