opal-irb 0.8.0 → 0.8.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/Gemfile.lock +1 -1
- data/README.md +5 -1
- data/compiled/app-embeddable.js +370 -0
- data/compiled/app-jqconsole.js +428 -24
- data/examples/app-embeddable.rb +2 -0
- data/examples/app-jqconsole.rb +2 -0
- data/lib/opal-irb/version.rb +1 -1
- data/lib/opal-irb.rb +8 -5
- data/opal/object_extensions.rb +0 -8
- data/opal/opal_irb.rb +35 -7
- metadata +4 -4
    
        data/Gemfile.lock
    CHANGED
    
    
    
        data/README.md
    CHANGED
    
    | @@ -1,5 +1,6 @@ | |
| 1 1 | 
             
            opal-irb
         | 
| 2 2 | 
             
            =========
         | 
| 3 | 
            +
            [](http://badge.fury.io/rb/opal-irb)
         | 
| 3 4 |  | 
| 4 5 | 
             
            irb (interactive ruby) for Opal (Ruby running on javascript).  This is
         | 
| 5 6 | 
             
            interactive console (REPL) on a webpage. Good for testing Opal/ruby
         | 
| @@ -52,7 +53,10 @@ Embedding into lissio app, as made by lissio new | |
| 52 53 |  | 
| 53 54 | 
             
            * add to Gemfile opal-irb
         | 
| 54 55 | 
             
            ```ruby
         | 
| 55 | 
            -
             | 
| 56 | 
            +
            # gem 'opal-irb', '0.7.0' for Opal 0.7.*
         | 
| 57 | 
            +
            # gem 'opal-irb', '0.8.*' for Opal 0.8.*
         | 
| 58 | 
            +
            # For latest do below
         | 
| 59 | 
            +
            gem 'opal-irb', github: 'fkchang/opal-irb'
         | 
| 56 60 | 
             
            ```
         | 
| 57 61 | 
             
            * invoke app to require opal-jquery and opal-irb
         | 
| 58 62 | 
             
            ```bash
         | 
    
        data/compiled/app-embeddable.js
    CHANGED
    
    | @@ -41846,6 +41846,374 @@ Opal.modules["browser"] = function(Opal) { | |
| 41846 41846 | 
             
              return self.$require("browser/css");
         | 
| 41847 41847 | 
             
            };
         | 
| 41848 41848 |  | 
| 41849 | 
            +
            /* Generated by Opal 0.8.0 */
         | 
| 41850 | 
            +
            Opal.modules["date"] = function(Opal) {
         | 
| 41851 | 
            +
              Opal.dynamic_require_severity = "error";
         | 
| 41852 | 
            +
              function $rb_plus(lhs, rhs) {
         | 
| 41853 | 
            +
                return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs);
         | 
| 41854 | 
            +
              }
         | 
| 41855 | 
            +
              function $rb_minus(lhs, rhs) {
         | 
| 41856 | 
            +
                return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs);
         | 
| 41857 | 
            +
              }
         | 
| 41858 | 
            +
              var self = Opal.top, $scope = Opal, nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass;
         | 
| 41859 | 
            +
             | 
| 41860 | 
            +
              Opal.add_stubs(['$allocate', '$wrap', '$clone', '$raise', '$>>', '$==', '$wday', '$to_s', '$alias_method']);
         | 
| 41861 | 
            +
              return (function($base, $super) {
         | 
| 41862 | 
            +
                function $Date(){};
         | 
| 41863 | 
            +
                var self = $Date = $klass($base, $super, 'Date', $Date);
         | 
| 41864 | 
            +
             | 
| 41865 | 
            +
                var def = self.$$proto, $scope = self.$$scope;
         | 
| 41866 | 
            +
             | 
| 41867 | 
            +
                def.date = nil;
         | 
| 41868 | 
            +
                (function(self) {
         | 
| 41869 | 
            +
                  var $scope = self.$$scope, def = self.$$proto;
         | 
| 41870 | 
            +
             | 
| 41871 | 
            +
                  self.$$proto.$civil = self.$$proto.$new;
         | 
| 41872 | 
            +
                  self.$$proto.$wrap = function(native$) {
         | 
| 41873 | 
            +
                    var self = this, instance = nil;
         | 
| 41874 | 
            +
             | 
| 41875 | 
            +
                    instance = self.$allocate();
         | 
| 41876 | 
            +
                    instance.date = native$;
         | 
| 41877 | 
            +
                    return instance;
         | 
| 41878 | 
            +
                  };
         | 
| 41879 | 
            +
                  self.$$proto.$parse = function(string) {
         | 
| 41880 | 
            +
                    var self = this, match = nil;
         | 
| 41881 | 
            +
             | 
| 41882 | 
            +
                    match = /^(\d*)-(\d*)-(\d*)/.exec(string);
         | 
| 41883 | 
            +
                    return self.$wrap(new Date(parseInt(match[1]), parseInt(match[2]) - 1, parseInt(match[3])));
         | 
| 41884 | 
            +
                  };
         | 
| 41885 | 
            +
                  return (self.$$proto.$today = function() {
         | 
| 41886 | 
            +
                    var self = this;
         | 
| 41887 | 
            +
             | 
| 41888 | 
            +
                    return self.$wrap(new Date());
         | 
| 41889 | 
            +
                  }, nil) && 'today';
         | 
| 41890 | 
            +
                })(self.$singleton_class());
         | 
| 41891 | 
            +
             | 
| 41892 | 
            +
                def.$initialize = function(year, month, day) {
         | 
| 41893 | 
            +
                  var self = this;
         | 
| 41894 | 
            +
             | 
| 41895 | 
            +
                  return self.date = new Date(year, month - 1, day);
         | 
| 41896 | 
            +
                };
         | 
| 41897 | 
            +
             | 
| 41898 | 
            +
                def['$-'] = function(date) {
         | 
| 41899 | 
            +
                  var self = this;
         | 
| 41900 | 
            +
             | 
| 41901 | 
            +
                  
         | 
| 41902 | 
            +
                  if (date.$$is_number) {
         | 
| 41903 | 
            +
                    var result = self.$clone();
         | 
| 41904 | 
            +
                    result.date.setDate(self.date.getDate() - date);
         | 
| 41905 | 
            +
                    return result;
         | 
| 41906 | 
            +
                  }
         | 
| 41907 | 
            +
                  else if (date.date) {
         | 
| 41908 | 
            +
                    return Math.round((self.date - date.date) / (1000 * 60 * 60 * 24));
         | 
| 41909 | 
            +
                  }
         | 
| 41910 | 
            +
                  else {
         | 
| 41911 | 
            +
                    self.$raise($scope.get('TypeError'));
         | 
| 41912 | 
            +
                  }
         | 
| 41913 | 
            +
                ;
         | 
| 41914 | 
            +
                };
         | 
| 41915 | 
            +
             | 
| 41916 | 
            +
                def['$+'] = function(date) {
         | 
| 41917 | 
            +
                  var self = this;
         | 
| 41918 | 
            +
             | 
| 41919 | 
            +
                  
         | 
| 41920 | 
            +
                  if (date.$$is_number) {
         | 
| 41921 | 
            +
                    var result = self.$clone();
         | 
| 41922 | 
            +
                    result.date.setDate(self.date.getDate() + date);
         | 
| 41923 | 
            +
                    return result;
         | 
| 41924 | 
            +
                  }
         | 
| 41925 | 
            +
                  else {
         | 
| 41926 | 
            +
                    self.$raise($scope.get('TypeError'));
         | 
| 41927 | 
            +
                  }
         | 
| 41928 | 
            +
                ;
         | 
| 41929 | 
            +
                };
         | 
| 41930 | 
            +
             | 
| 41931 | 
            +
                def['$<'] = function(other) {
         | 
| 41932 | 
            +
                  var self = this;
         | 
| 41933 | 
            +
             | 
| 41934 | 
            +
                  
         | 
| 41935 | 
            +
                  var a = self.date, b = other.date;
         | 
| 41936 | 
            +
                  a.setHours(0, 0, 0, 0);
         | 
| 41937 | 
            +
                  b.setHours(0, 0, 0, 0);
         | 
| 41938 | 
            +
                  return a < b;
         | 
| 41939 | 
            +
                ;
         | 
| 41940 | 
            +
                };
         | 
| 41941 | 
            +
             | 
| 41942 | 
            +
                def['$<='] = function(other) {
         | 
| 41943 | 
            +
                  var self = this;
         | 
| 41944 | 
            +
             | 
| 41945 | 
            +
                  
         | 
| 41946 | 
            +
                  var a = self.date, b = other.date;
         | 
| 41947 | 
            +
                  a.setHours(0, 0, 0, 0);
         | 
| 41948 | 
            +
                  b.setHours(0, 0, 0, 0);
         | 
| 41949 | 
            +
                  return a <= b;
         | 
| 41950 | 
            +
                ;
         | 
| 41951 | 
            +
                };
         | 
| 41952 | 
            +
             | 
| 41953 | 
            +
                def['$>'] = function(other) {
         | 
| 41954 | 
            +
                  var self = this;
         | 
| 41955 | 
            +
             | 
| 41956 | 
            +
                  
         | 
| 41957 | 
            +
                  var a = self.date, b = other.date;
         | 
| 41958 | 
            +
                  a.setHours(0, 0, 0, 0);
         | 
| 41959 | 
            +
                  b.setHours(0, 0, 0, 0);
         | 
| 41960 | 
            +
                  return a > b;
         | 
| 41961 | 
            +
                ;
         | 
| 41962 | 
            +
                };
         | 
| 41963 | 
            +
             | 
| 41964 | 
            +
                def['$>='] = function(other) {
         | 
| 41965 | 
            +
                  var self = this;
         | 
| 41966 | 
            +
             | 
| 41967 | 
            +
                  
         | 
| 41968 | 
            +
                  var a = self.date, b = other.date;
         | 
| 41969 | 
            +
                  a.setHours(0, 0, 0, 0);
         | 
| 41970 | 
            +
                  b.setHours(0, 0, 0, 0);
         | 
| 41971 | 
            +
                  return a >= b;
         | 
| 41972 | 
            +
                ;
         | 
| 41973 | 
            +
                };
         | 
| 41974 | 
            +
             | 
| 41975 | 
            +
                def['$<=>'] = function(other) {
         | 
| 41976 | 
            +
                  var self = this;
         | 
| 41977 | 
            +
             | 
| 41978 | 
            +
                  
         | 
| 41979 | 
            +
                  var a = self.date, b = other.date;
         | 
| 41980 | 
            +
                  a.setHours(0, 0, 0, 0);
         | 
| 41981 | 
            +
                  b.setHours(0, 0, 0, 0);
         | 
| 41982 | 
            +
             | 
| 41983 | 
            +
                  if (a < b) {
         | 
| 41984 | 
            +
                    return -1;
         | 
| 41985 | 
            +
                  }
         | 
| 41986 | 
            +
                  else if (a > b) {
         | 
| 41987 | 
            +
                    return 1;
         | 
| 41988 | 
            +
                  }
         | 
| 41989 | 
            +
                  else {
         | 
| 41990 | 
            +
                    return 0;
         | 
| 41991 | 
            +
                  }
         | 
| 41992 | 
            +
                ;
         | 
| 41993 | 
            +
                };
         | 
| 41994 | 
            +
             | 
| 41995 | 
            +
                def['$=='] = function(other) {
         | 
| 41996 | 
            +
                  var self = this;
         | 
| 41997 | 
            +
             | 
| 41998 | 
            +
                  
         | 
| 41999 | 
            +
                  var a = self.date, b = other.date;
         | 
| 42000 | 
            +
                  return (a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate());
         | 
| 42001 | 
            +
                ;
         | 
| 42002 | 
            +
                };
         | 
| 42003 | 
            +
             | 
| 42004 | 
            +
                def['$>>'] = function(n) {
         | 
| 42005 | 
            +
                  var self = this;
         | 
| 42006 | 
            +
             | 
| 42007 | 
            +
                  
         | 
| 42008 | 
            +
                  if (!n.$$is_number) {
         | 
| 42009 | 
            +
                    self.$raise($scope.get('TypeError'));
         | 
| 42010 | 
            +
                  }
         | 
| 42011 | 
            +
             | 
| 42012 | 
            +
                  var result = self.$clone(), date = result.date, cur = date.getDate();
         | 
| 42013 | 
            +
                  date.setDate(1);
         | 
| 42014 | 
            +
                  date.setMonth(date.getMonth() + n);
         | 
| 42015 | 
            +
                  date.setDate(Math.min(cur, days_in_month(date.getFullYear(), date.getMonth())));
         | 
| 42016 | 
            +
                  return result;
         | 
| 42017 | 
            +
                ;
         | 
| 42018 | 
            +
                };
         | 
| 42019 | 
            +
             | 
| 42020 | 
            +
                def['$<<'] = function(n) {
         | 
| 42021 | 
            +
                  var self = this;
         | 
| 42022 | 
            +
             | 
| 42023 | 
            +
                  
         | 
| 42024 | 
            +
                  if (!n.$$is_number) {
         | 
| 42025 | 
            +
                    self.$raise($scope.get('TypeError'));
         | 
| 42026 | 
            +
                  }
         | 
| 42027 | 
            +
             | 
| 42028 | 
            +
                  return self['$>>'](-n);
         | 
| 42029 | 
            +
                ;
         | 
| 42030 | 
            +
                };
         | 
| 42031 | 
            +
             | 
| 42032 | 
            +
                Opal.defn(self, '$eql?', def['$==']);
         | 
| 42033 | 
            +
             | 
| 42034 | 
            +
                def.$clone = function() {
         | 
| 42035 | 
            +
                  var self = this;
         | 
| 42036 | 
            +
             | 
| 42037 | 
            +
                  return $scope.get('Date').$wrap(new Date(self.date.getTime()));
         | 
| 42038 | 
            +
                };
         | 
| 42039 | 
            +
             | 
| 42040 | 
            +
                def.$day = function() {
         | 
| 42041 | 
            +
                  var self = this;
         | 
| 42042 | 
            +
             | 
| 42043 | 
            +
                  return self.date.getDate();
         | 
| 42044 | 
            +
                };
         | 
| 42045 | 
            +
             | 
| 42046 | 
            +
                def['$friday?'] = function() {
         | 
| 42047 | 
            +
                  var self = this;
         | 
| 42048 | 
            +
             | 
| 42049 | 
            +
                  return self.$wday()['$=='](5);
         | 
| 42050 | 
            +
                };
         | 
| 42051 | 
            +
             | 
| 42052 | 
            +
                def['$monday?'] = function() {
         | 
| 42053 | 
            +
                  var self = this;
         | 
| 42054 | 
            +
             | 
| 42055 | 
            +
                  return self.$wday()['$=='](1);
         | 
| 42056 | 
            +
                };
         | 
| 42057 | 
            +
             | 
| 42058 | 
            +
                def.$month = function() {
         | 
| 42059 | 
            +
                  var self = this;
         | 
| 42060 | 
            +
             | 
| 42061 | 
            +
                  return self.date.getMonth() + 1;
         | 
| 42062 | 
            +
                };
         | 
| 42063 | 
            +
             | 
| 42064 | 
            +
                def.$next = function() {
         | 
| 42065 | 
            +
                  var self = this;
         | 
| 42066 | 
            +
             | 
| 42067 | 
            +
                  return $rb_plus(self, 1);
         | 
| 42068 | 
            +
                };
         | 
| 42069 | 
            +
             | 
| 42070 | 
            +
                def.$next_day = function(n) {
         | 
| 42071 | 
            +
                  var self = this;
         | 
| 42072 | 
            +
             | 
| 42073 | 
            +
                  if (n == null) {
         | 
| 42074 | 
            +
                    n = 1
         | 
| 42075 | 
            +
                  }
         | 
| 42076 | 
            +
                  return $rb_plus(self, n);
         | 
| 42077 | 
            +
                };
         | 
| 42078 | 
            +
             | 
| 42079 | 
            +
                def.$next_month = function() {
         | 
| 42080 | 
            +
                  var self = this;
         | 
| 42081 | 
            +
             | 
| 42082 | 
            +
                  
         | 
| 42083 | 
            +
                  var result = self.$clone(), date = result.date, cur = date.getDate();
         | 
| 42084 | 
            +
                  date.setDate(1);
         | 
| 42085 | 
            +
                  date.setMonth(date.getMonth() + 1);
         | 
| 42086 | 
            +
                  date.setDate(Math.min(cur, days_in_month(date.getFullYear(), date.getMonth())));
         | 
| 42087 | 
            +
                  return result;
         | 
| 42088 | 
            +
                ;
         | 
| 42089 | 
            +
                };
         | 
| 42090 | 
            +
             | 
| 42091 | 
            +
                def.$prev_day = function(n) {
         | 
| 42092 | 
            +
                  var self = this;
         | 
| 42093 | 
            +
             | 
| 42094 | 
            +
                  if (n == null) {
         | 
| 42095 | 
            +
                    n = 1
         | 
| 42096 | 
            +
                  }
         | 
| 42097 | 
            +
                  return $rb_minus(self, n);
         | 
| 42098 | 
            +
                };
         | 
| 42099 | 
            +
             | 
| 42100 | 
            +
                def.$prev_month = function() {
         | 
| 42101 | 
            +
                  var self = this;
         | 
| 42102 | 
            +
             | 
| 42103 | 
            +
                  
         | 
| 42104 | 
            +
                  var result = self.$clone(), date = result.date, cur = date.getDate();
         | 
| 42105 | 
            +
                  date.setDate(1);
         | 
| 42106 | 
            +
                  date.setMonth(date.getMonth() - 1);
         | 
| 42107 | 
            +
                  date.setDate(Math.min(cur, days_in_month(date.getFullYear(), date.getMonth())));
         | 
| 42108 | 
            +
                  return result;
         | 
| 42109 | 
            +
                ;
         | 
| 42110 | 
            +
                };
         | 
| 42111 | 
            +
             | 
| 42112 | 
            +
                def['$saturday?'] = function() {
         | 
| 42113 | 
            +
                  var self = this;
         | 
| 42114 | 
            +
             | 
| 42115 | 
            +
                  return self.$wday()['$=='](6);
         | 
| 42116 | 
            +
                };
         | 
| 42117 | 
            +
             | 
| 42118 | 
            +
                def.$strftime = function(format) {
         | 
| 42119 | 
            +
                  var self = this;
         | 
| 42120 | 
            +
             | 
| 42121 | 
            +
                  if (format == null) {
         | 
| 42122 | 
            +
                    format = ""
         | 
| 42123 | 
            +
                  }
         | 
| 42124 | 
            +
                  
         | 
| 42125 | 
            +
                  if (format == '') {
         | 
| 42126 | 
            +
                    return self.$to_s();
         | 
| 42127 | 
            +
                  }
         | 
| 42128 | 
            +
             | 
| 42129 | 
            +
                  return self.date.$strftime(format);
         | 
| 42130 | 
            +
                ;
         | 
| 42131 | 
            +
                };
         | 
| 42132 | 
            +
             | 
| 42133 | 
            +
                self.$alias_method("succ", "next");
         | 
| 42134 | 
            +
             | 
| 42135 | 
            +
                def['$sunday?'] = function() {
         | 
| 42136 | 
            +
                  var self = this;
         | 
| 42137 | 
            +
             | 
| 42138 | 
            +
                  return self.$wday()['$=='](0);
         | 
| 42139 | 
            +
                };
         | 
| 42140 | 
            +
             | 
| 42141 | 
            +
                def['$thursday?'] = function() {
         | 
| 42142 | 
            +
                  var self = this;
         | 
| 42143 | 
            +
             | 
| 42144 | 
            +
                  return self.$wday()['$=='](4);
         | 
| 42145 | 
            +
                };
         | 
| 42146 | 
            +
             | 
| 42147 | 
            +
                def.$to_s = function() {
         | 
| 42148 | 
            +
                  var self = this;
         | 
| 42149 | 
            +
             | 
| 42150 | 
            +
                  
         | 
| 42151 | 
            +
                  var d = self.date, year = d.getFullYear(), month = d.getMonth() + 1, day = d.getDate();
         | 
| 42152 | 
            +
                  if (month < 10) { month = '0' + month; }
         | 
| 42153 | 
            +
                  if (day < 10) { day = '0' + day; }
         | 
| 42154 | 
            +
                  return year + '-' + month + '-' + day;
         | 
| 42155 | 
            +
                ;
         | 
| 42156 | 
            +
                };
         | 
| 42157 | 
            +
             | 
| 42158 | 
            +
                def['$tuesday?'] = function() {
         | 
| 42159 | 
            +
                  var self = this;
         | 
| 42160 | 
            +
             | 
| 42161 | 
            +
                  return self.$wday()['$=='](2);
         | 
| 42162 | 
            +
                };
         | 
| 42163 | 
            +
             | 
| 42164 | 
            +
                def.$wday = function() {
         | 
| 42165 | 
            +
                  var self = this;
         | 
| 42166 | 
            +
             | 
| 42167 | 
            +
                  return self.date.getDay();
         | 
| 42168 | 
            +
                };
         | 
| 42169 | 
            +
             | 
| 42170 | 
            +
                def['$wednesday?'] = function() {
         | 
| 42171 | 
            +
                  var self = this;
         | 
| 42172 | 
            +
             | 
| 42173 | 
            +
                  return self.$wday()['$=='](3);
         | 
| 42174 | 
            +
                };
         | 
| 42175 | 
            +
             | 
| 42176 | 
            +
                def.$year = function() {
         | 
| 42177 | 
            +
                  var self = this;
         | 
| 42178 | 
            +
             | 
| 42179 | 
            +
                  return self.date.getFullYear();
         | 
| 42180 | 
            +
                };
         | 
| 42181 | 
            +
             | 
| 42182 | 
            +
                
         | 
| 42183 | 
            +
                function days_in_month(year, month) {
         | 
| 42184 | 
            +
                  var leap = ((year % 4 === 0 && year % 100 !== 0) || year % 400 === 0);
         | 
| 42185 | 
            +
                  return [31, (leap ? 29 : 28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month]
         | 
| 42186 | 
            +
                }
         | 
| 42187 | 
            +
              
         | 
| 42188 | 
            +
              })(self, null)
         | 
| 42189 | 
            +
            };
         | 
| 42190 | 
            +
             | 
| 42191 | 
            +
            /* Generated by Opal 0.8.0 */
         | 
| 42192 | 
            +
            Opal.modules["time"] = function(Opal) {
         | 
| 42193 | 
            +
              Opal.dynamic_require_severity = "error";
         | 
| 42194 | 
            +
              var self = Opal.top, $scope = Opal, nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass;
         | 
| 42195 | 
            +
             | 
| 42196 | 
            +
              Opal.add_stubs(['$strftime']);
         | 
| 42197 | 
            +
              return (function($base, $super) {
         | 
| 42198 | 
            +
                function $Time(){};
         | 
| 42199 | 
            +
                var self = $Time = $klass($base, $super, 'Time', $Time);
         | 
| 42200 | 
            +
             | 
| 42201 | 
            +
                var def = self.$$proto, $scope = self.$$scope;
         | 
| 42202 | 
            +
             | 
| 42203 | 
            +
                Opal.defs(self, '$parse', function(str) {
         | 
| 42204 | 
            +
                  var self = this;
         | 
| 42205 | 
            +
             | 
| 42206 | 
            +
                  return new Date(Date.parse(str));
         | 
| 42207 | 
            +
                });
         | 
| 42208 | 
            +
             | 
| 42209 | 
            +
                return (def.$iso8601 = function() {
         | 
| 42210 | 
            +
                  var self = this;
         | 
| 42211 | 
            +
             | 
| 42212 | 
            +
                  return self.$strftime("%FT%T%z");
         | 
| 42213 | 
            +
                }, nil) && 'iso8601';
         | 
| 42214 | 
            +
              })(self, null)
         | 
| 42215 | 
            +
            };
         | 
| 42216 | 
            +
             | 
| 41849 42217 | 
             
            /* Generated by Opal 0.8.0 */
         | 
| 41850 42218 | 
             
            (function(Opal) {
         | 
| 41851 42219 | 
             
              Opal.dynamic_require_severity = "error";
         | 
| @@ -41855,6 +42223,8 @@ Opal.modules["browser"] = function(Opal) { | |
| 41855 42223 | 
             
              self.$require("opal_irb_jqconsole");
         | 
| 41856 42224 | 
             
              self.$require("browser");
         | 
| 41857 42225 | 
             
              self.$require("browser/dom");
         | 
| 42226 | 
            +
              self.$require("date");
         | 
| 42227 | 
            +
              self.$require("time");
         | 
| 41858 42228 | 
             
              return ($a = ($b = $scope.get('Document'))['$ready?'], $a.$$p = (TMP_1 = function(){var self = TMP_1.$$s || this;
         | 
| 41859 42229 |  | 
| 41860 42230 | 
             
              $scope.get('OpalIrbJqconsole').$create_bottom_panel();
         | 
    
        data/compiled/app-jqconsole.js
    CHANGED
    
    | @@ -39052,22 +39052,56 @@ if (var_name == null) var_name = nil; | |
| 39052 39052 | 
             
            /* Generated by Opal 0.8.0 */
         | 
| 39053 39053 | 
             
            Opal.modules["opal_irb"] = function(Opal) {
         | 
| 39054 39054 | 
             
              Opal.dynamic_require_severity = "error";
         | 
| 39055 | 
            -
              var self = Opal.top, $scope = Opal, nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $ | 
| 39055 | 
            +
              var TMP_1, self = Opal.top, $scope = Opal, nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $hash2 = Opal.hash2, $klass = Opal.klass, $gvars = Opal.gvars;
         | 
| 39056 39056 |  | 
| 39057 | 
            -
              Opal.add_stubs(['$require', '$ | 
| 39057 | 
            +
              Opal.add_stubs(['$require', '$is_a?', '$last', '$pop', '$lambda', '$each', '$resolved?', '$resolve', '$[]', '$new', '$<<', '$tap', '$then', '$call', '$when', '$map', '$irb_vars', '$irb_gvars', '$Native', '$sort_by', '$name', '$uniq', '$attr_reader', '$compile']);
         | 
| 39058 39058 | 
             
              self.$require("opal");
         | 
| 39059 39059 | 
             
              self.$require("opal/compiler");
         | 
| 39060 39060 | 
             
              self.$require("object_extensions");
         | 
| 39061 39061 | 
             
              self.$require("opal-parser");
         | 
| 39062 | 
            -
              Opal.Object.$$proto.$require_js = function( | 
| 39063 | 
            -
                var self = this;
         | 
| 39062 | 
            +
              Opal.Object.$$proto.$require_js = TMP_1 = function(urls) {
         | 
| 39063 | 
            +
                var $a, $b, TMP_2, $c, TMP_4, $d, TMP_6, self = this, $iter = TMP_1.$$p, block = $iter || nil, promises = nil, opts = nil, clear_promises = nil;
         | 
| 39064 | 
            +
             | 
| 39065 | 
            +
                urls = $slice.call(arguments, 0);
         | 
| 39066 | 
            +
                TMP_1.$$p = null;
         | 
| 39067 | 
            +
                promises = [];
         | 
| 39068 | 
            +
                opts = (function() {if ((($a = urls.$last()['$is_a?']($scope.get('Hash'))) !== nil && (!$a.$$is_boolean || $a == true))) {
         | 
| 39069 | 
            +
                  return urls.$pop()
         | 
| 39070 | 
            +
                  } else {
         | 
| 39071 | 
            +
                  return $hash2([], {})
         | 
| 39072 | 
            +
                }; return nil; })();
         | 
| 39073 | 
            +
                clear_promises = ($a = ($b = self).$lambda, $a.$$p = (TMP_2 = function(){var self = TMP_2.$$s || this, $a, $b, TMP_3;
         | 
| 39064 39074 |  | 
| 39065 | 
            -
                
         | 
| 39066 | 
            -
             | 
| 39067 | 
            -
             | 
| 39068 | 
            -
             | 
| 39069 | 
            -
             | 
| 39070 | 
            -
             | 
| 39075 | 
            +
                return ($a = ($b = promises).$each, $a.$$p = (TMP_3 = function(promise){var self = TMP_3.$$s || this, $a;
         | 
| 39076 | 
            +
            if (promise == null) promise = nil;
         | 
| 39077 | 
            +
                  if ((($a = promise['$resolved?']()) !== nil && (!$a.$$is_boolean || $a == true))) {
         | 
| 39078 | 
            +
                      return nil
         | 
| 39079 | 
            +
                      } else {
         | 
| 39080 | 
            +
                      return promise.$resolve(false)
         | 
| 39081 | 
            +
                    }}, TMP_3.$$s = self, TMP_3), $a).call($b)}, TMP_2.$$s = self, TMP_2), $a).call($b);
         | 
| 39082 | 
            +
                if ((($a = opts['$[]']("timeout")) !== nil && (!$a.$$is_boolean || $a == true))) {
         | 
| 39083 | 
            +
                  setTimeout(clear_promises, opts['$[]']("timeout") * 1000);};
         | 
| 39084 | 
            +
                ($a = ($c = urls).$each, $a.$$p = (TMP_4 = function(url){var self = TMP_4.$$s || this, $a, $b, TMP_5, promise = nil, loaded = nil;
         | 
| 39085 | 
            +
            if (url == null) url = nil;
         | 
| 39086 | 
            +
                promise = $scope.get('Promise').$new();
         | 
| 39087 | 
            +
                  promises['$<<'](promise);
         | 
| 39088 | 
            +
                  loaded = ($a = ($b = self).$lambda, $a.$$p = (TMP_5 = function(){var self = TMP_5.$$s || this;
         | 
| 39089 | 
            +
             | 
| 39090 | 
            +
                  return promise.$resolve(true)}, TMP_5.$$s = self, TMP_5), $a).call($b);
         | 
| 39091 | 
            +
                  
         | 
| 39092 | 
            +
                  var script = document.createElement( 'script' );
         | 
| 39093 | 
            +
                  script.type = 'text/javascript';
         | 
| 39094 | 
            +
                  script.src = url;
         | 
| 39095 | 
            +
                  script.onload = loaded;
         | 
| 39096 | 
            +
                  document.body.appendChild(script);
         | 
| 39097 | 
            +
                }, TMP_4.$$s = self, TMP_4), $a).call($c);
         | 
| 39098 | 
            +
                return ($a = ($d = $scope.get('Promise').$new()).$tap, $a.$$p = (TMP_6 = function(promise){var self = TMP_6.$$s || this, $a, $b, TMP_7, $c;
         | 
| 39099 | 
            +
            if (promise == null) promise = nil;
         | 
| 39100 | 
            +
                return ($a = ($b = ($c = $scope.get('Promise')).$when.apply($c, [].concat(promises))).$then, $a.$$p = (TMP_7 = function(results){var self = TMP_7.$$s || this, $a, $b;
         | 
| 39101 | 
            +
            if (results == null) results = nil;
         | 
| 39102 | 
            +
                  if (block !== false && block !== nil) {
         | 
| 39103 | 
            +
                      ($a = block).$call.apply($a, [].concat(results))};
         | 
| 39104 | 
            +
                    return ($b = promise).$resolve.apply($b, [].concat(results));}, TMP_7.$$s = self, TMP_7), $a).call($b)}, TMP_6.$$s = self, TMP_6), $a).call($d);
         | 
| 39071 39105 | 
             
              };
         | 
| 39072 39106 | 
             
              Opal.Object.$$proto.$require_js_sync = function(url) {
         | 
| 39073 39107 | 
             
                var self = this;
         | 
| @@ -39099,11 +39133,11 @@ Opal.modules["opal_irb"] = function(Opal) { | |
| 39099 39133 | 
             
                };
         | 
| 39100 39134 |  | 
| 39101 39135 | 
             
                def.$irb_varnames = function() {
         | 
| 39102 | 
            -
                  var $a, $b,  | 
| 39136 | 
            +
                  var $a, $b, TMP_8, self = this;
         | 
| 39103 39137 |  | 
| 39104 | 
            -
                  return ($a = ($b = self.$irb_vars()).$map, $a.$$p = ( | 
| 39138 | 
            +
                  return ($a = ($b = self.$irb_vars()).$map, $a.$$p = (TMP_8 = function(varname, value){var self = TMP_8.$$s || this;
         | 
| 39105 39139 | 
             
            if (varname == null) varname = nil;if (value == null) value = nil;
         | 
| 39106 | 
            -
                  return varname},  | 
| 39140 | 
            +
                  return varname}, TMP_8.$$s = self, TMP_8), $a).call($b);
         | 
| 39107 39141 | 
             
                };
         | 
| 39108 39142 |  | 
| 39109 39143 | 
             
                def.$irb_gvars = function() {
         | 
| @@ -39119,20 +39153,20 @@ if (varname == null) varname = nil;if (value == null) value = nil; | |
| 39119 39153 | 
             
                };
         | 
| 39120 39154 |  | 
| 39121 39155 | 
             
                def.$irb_gvarnames = function() {
         | 
| 39122 | 
            -
                  var $a, $b,  | 
| 39156 | 
            +
                  var $a, $b, TMP_9, self = this;
         | 
| 39123 39157 |  | 
| 39124 | 
            -
                  return ($a = ($b = self.$irb_gvars()).$map, $a.$$p = ( | 
| 39158 | 
            +
                  return ($a = ($b = self.$irb_gvars()).$map, $a.$$p = (TMP_9 = function(varname, value){var self = TMP_9.$$s || this;
         | 
| 39125 39159 | 
             
            if (varname == null) varname = nil;if (value == null) value = nil;
         | 
| 39126 | 
            -
                  return varname},  | 
| 39160 | 
            +
                  return varname}, TMP_9.$$s = self, TMP_9), $a).call($b);
         | 
| 39127 39161 | 
             
                };
         | 
| 39128 39162 |  | 
| 39129 39163 | 
             
                def.$opal_classes = function() {
         | 
| 39130 | 
            -
                  var $a, $b,  | 
| 39164 | 
            +
                  var $a, $b, TMP_10, $c, TMP_11, self = this, classes = nil;
         | 
| 39131 39165 | 
             
                  if ($gvars.opal_js_object == null) $gvars.opal_js_object = nil;
         | 
| 39132 39166 |  | 
| 39133 39167 | 
             
                  classes = [];
         | 
| 39134 39168 | 
             
                  $gvars.opal_js_object = self.$Native(Opal);
         | 
| 39135 | 
            -
                  ($a = ($b = $gvars.opal_js_object).$each, $a.$$p = ( | 
| 39169 | 
            +
                  ($a = ($b = $gvars.opal_js_object).$each, $a.$$p = (TMP_10 = function(k){var self = TMP_10.$$s || this, $a, attr = nil;
         | 
| 39136 39170 | 
             
                    if ($gvars.opal_js_object == null) $gvars.opal_js_object = nil;
         | 
| 39137 39171 | 
             
            if (k == null) k = nil;
         | 
| 39138 39172 | 
             
                  attr = $gvars.opal_js_object['$[]'](k);
         | 
| @@ -39140,23 +39174,23 @@ if (k == null) k = nil; | |
| 39140 39174 | 
             
                      return classes['$<<'](attr)
         | 
| 39141 39175 | 
             
                      } else {
         | 
| 39142 39176 | 
             
                      return nil
         | 
| 39143 | 
            -
                    };},  | 
| 39144 | 
            -
                  return ($a = ($c = classes.$uniq()).$sort_by, $a.$$p = ( | 
| 39177 | 
            +
                    };}, TMP_10.$$s = self, TMP_10), $a).call($b);
         | 
| 39178 | 
            +
                  return ($a = ($c = classes.$uniq()).$sort_by, $a.$$p = (TMP_11 = function(cls){var self = TMP_11.$$s || this;
         | 
| 39145 39179 | 
             
            if (cls == null) cls = nil;
         | 
| 39146 | 
            -
                  return cls.$name()},  | 
| 39180 | 
            +
                  return cls.$name()}, TMP_11.$$s = self, TMP_11), $a).call($c);
         | 
| 39147 39181 | 
             
                };
         | 
| 39148 39182 |  | 
| 39149 39183 | 
             
                def.$opal_constants = function() {
         | 
| 39150 | 
            -
                  var $a, $b,  | 
| 39184 | 
            +
                  var $a, $b, TMP_12, self = this, constants = nil;
         | 
| 39151 39185 | 
             
                  if ($gvars.opal_js_object == null) $gvars.opal_js_object = nil;
         | 
| 39152 39186 |  | 
| 39153 39187 | 
             
                  constants = [];
         | 
| 39154 39188 | 
             
                  $gvars.opal_js_object = self.$Native(Opal);
         | 
| 39155 | 
            -
                  ($a = ($b = $gvars.opal_js_object).$each, $a.$$p = ( | 
| 39189 | 
            +
                  ($a = ($b = $gvars.opal_js_object).$each, $a.$$p = (TMP_12 = function(k){var self = TMP_12.$$s || this, attr = nil;
         | 
| 39156 39190 | 
             
                    if ($gvars.opal_js_object == null) $gvars.opal_js_object = nil;
         | 
| 39157 39191 | 
             
            if (k == null) k = nil;
         | 
| 39158 39192 | 
             
                  attr = $gvars.opal_js_object['$[]'](k);
         | 
| 39159 | 
            -
                    return constants['$<<'](attr);},  | 
| 39193 | 
            +
                    return constants['$<<'](attr);}, TMP_12.$$s = self, TMP_12), $a).call($b);
         | 
| 39160 39194 | 
             
                  return constants.$uniq();
         | 
| 39161 39195 | 
             
                };
         | 
| 39162 39196 |  | 
| @@ -41846,6 +41880,374 @@ if (c == null) c = nil; | |
| 41846 41880 | 
             
              })(self, null);
         | 
| 41847 41881 | 
             
            };
         | 
| 41848 41882 |  | 
| 41883 | 
            +
            /* Generated by Opal 0.8.0 */
         | 
| 41884 | 
            +
            Opal.modules["date"] = function(Opal) {
         | 
| 41885 | 
            +
              Opal.dynamic_require_severity = "error";
         | 
| 41886 | 
            +
              function $rb_plus(lhs, rhs) {
         | 
| 41887 | 
            +
                return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs);
         | 
| 41888 | 
            +
              }
         | 
| 41889 | 
            +
              function $rb_minus(lhs, rhs) {
         | 
| 41890 | 
            +
                return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs);
         | 
| 41891 | 
            +
              }
         | 
| 41892 | 
            +
              var self = Opal.top, $scope = Opal, nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass;
         | 
| 41893 | 
            +
             | 
| 41894 | 
            +
              Opal.add_stubs(['$allocate', '$wrap', '$clone', '$raise', '$>>', '$==', '$wday', '$to_s', '$alias_method']);
         | 
| 41895 | 
            +
              return (function($base, $super) {
         | 
| 41896 | 
            +
                function $Date(){};
         | 
| 41897 | 
            +
                var self = $Date = $klass($base, $super, 'Date', $Date);
         | 
| 41898 | 
            +
             | 
| 41899 | 
            +
                var def = self.$$proto, $scope = self.$$scope;
         | 
| 41900 | 
            +
             | 
| 41901 | 
            +
                def.date = nil;
         | 
| 41902 | 
            +
                (function(self) {
         | 
| 41903 | 
            +
                  var $scope = self.$$scope, def = self.$$proto;
         | 
| 41904 | 
            +
             | 
| 41905 | 
            +
                  self.$$proto.$civil = self.$$proto.$new;
         | 
| 41906 | 
            +
                  self.$$proto.$wrap = function(native$) {
         | 
| 41907 | 
            +
                    var self = this, instance = nil;
         | 
| 41908 | 
            +
             | 
| 41909 | 
            +
                    instance = self.$allocate();
         | 
| 41910 | 
            +
                    instance.date = native$;
         | 
| 41911 | 
            +
                    return instance;
         | 
| 41912 | 
            +
                  };
         | 
| 41913 | 
            +
                  self.$$proto.$parse = function(string) {
         | 
| 41914 | 
            +
                    var self = this, match = nil;
         | 
| 41915 | 
            +
             | 
| 41916 | 
            +
                    match = /^(\d*)-(\d*)-(\d*)/.exec(string);
         | 
| 41917 | 
            +
                    return self.$wrap(new Date(parseInt(match[1]), parseInt(match[2]) - 1, parseInt(match[3])));
         | 
| 41918 | 
            +
                  };
         | 
| 41919 | 
            +
                  return (self.$$proto.$today = function() {
         | 
| 41920 | 
            +
                    var self = this;
         | 
| 41921 | 
            +
             | 
| 41922 | 
            +
                    return self.$wrap(new Date());
         | 
| 41923 | 
            +
                  }, nil) && 'today';
         | 
| 41924 | 
            +
                })(self.$singleton_class());
         | 
| 41925 | 
            +
             | 
| 41926 | 
            +
                def.$initialize = function(year, month, day) {
         | 
| 41927 | 
            +
                  var self = this;
         | 
| 41928 | 
            +
             | 
| 41929 | 
            +
                  return self.date = new Date(year, month - 1, day);
         | 
| 41930 | 
            +
                };
         | 
| 41931 | 
            +
             | 
| 41932 | 
            +
                def['$-'] = function(date) {
         | 
| 41933 | 
            +
                  var self = this;
         | 
| 41934 | 
            +
             | 
| 41935 | 
            +
                  
         | 
| 41936 | 
            +
                  if (date.$$is_number) {
         | 
| 41937 | 
            +
                    var result = self.$clone();
         | 
| 41938 | 
            +
                    result.date.setDate(self.date.getDate() - date);
         | 
| 41939 | 
            +
                    return result;
         | 
| 41940 | 
            +
                  }
         | 
| 41941 | 
            +
                  else if (date.date) {
         | 
| 41942 | 
            +
                    return Math.round((self.date - date.date) / (1000 * 60 * 60 * 24));
         | 
| 41943 | 
            +
                  }
         | 
| 41944 | 
            +
                  else {
         | 
| 41945 | 
            +
                    self.$raise($scope.get('TypeError'));
         | 
| 41946 | 
            +
                  }
         | 
| 41947 | 
            +
                ;
         | 
| 41948 | 
            +
                };
         | 
| 41949 | 
            +
             | 
| 41950 | 
            +
                def['$+'] = function(date) {
         | 
| 41951 | 
            +
                  var self = this;
         | 
| 41952 | 
            +
             | 
| 41953 | 
            +
                  
         | 
| 41954 | 
            +
                  if (date.$$is_number) {
         | 
| 41955 | 
            +
                    var result = self.$clone();
         | 
| 41956 | 
            +
                    result.date.setDate(self.date.getDate() + date);
         | 
| 41957 | 
            +
                    return result;
         | 
| 41958 | 
            +
                  }
         | 
| 41959 | 
            +
                  else {
         | 
| 41960 | 
            +
                    self.$raise($scope.get('TypeError'));
         | 
| 41961 | 
            +
                  }
         | 
| 41962 | 
            +
                ;
         | 
| 41963 | 
            +
                };
         | 
| 41964 | 
            +
             | 
| 41965 | 
            +
                def['$<'] = function(other) {
         | 
| 41966 | 
            +
                  var self = this;
         | 
| 41967 | 
            +
             | 
| 41968 | 
            +
                  
         | 
| 41969 | 
            +
                  var a = self.date, b = other.date;
         | 
| 41970 | 
            +
                  a.setHours(0, 0, 0, 0);
         | 
| 41971 | 
            +
                  b.setHours(0, 0, 0, 0);
         | 
| 41972 | 
            +
                  return a < b;
         | 
| 41973 | 
            +
                ;
         | 
| 41974 | 
            +
                };
         | 
| 41975 | 
            +
             | 
| 41976 | 
            +
                def['$<='] = function(other) {
         | 
| 41977 | 
            +
                  var self = this;
         | 
| 41978 | 
            +
             | 
| 41979 | 
            +
                  
         | 
| 41980 | 
            +
                  var a = self.date, b = other.date;
         | 
| 41981 | 
            +
                  a.setHours(0, 0, 0, 0);
         | 
| 41982 | 
            +
                  b.setHours(0, 0, 0, 0);
         | 
| 41983 | 
            +
                  return a <= b;
         | 
| 41984 | 
            +
                ;
         | 
| 41985 | 
            +
                };
         | 
| 41986 | 
            +
             | 
| 41987 | 
            +
                def['$>'] = function(other) {
         | 
| 41988 | 
            +
                  var self = this;
         | 
| 41989 | 
            +
             | 
| 41990 | 
            +
                  
         | 
| 41991 | 
            +
                  var a = self.date, b = other.date;
         | 
| 41992 | 
            +
                  a.setHours(0, 0, 0, 0);
         | 
| 41993 | 
            +
                  b.setHours(0, 0, 0, 0);
         | 
| 41994 | 
            +
                  return a > b;
         | 
| 41995 | 
            +
                ;
         | 
| 41996 | 
            +
                };
         | 
| 41997 | 
            +
             | 
| 41998 | 
            +
                def['$>='] = function(other) {
         | 
| 41999 | 
            +
                  var self = this;
         | 
| 42000 | 
            +
             | 
| 42001 | 
            +
                  
         | 
| 42002 | 
            +
                  var a = self.date, b = other.date;
         | 
| 42003 | 
            +
                  a.setHours(0, 0, 0, 0);
         | 
| 42004 | 
            +
                  b.setHours(0, 0, 0, 0);
         | 
| 42005 | 
            +
                  return a >= b;
         | 
| 42006 | 
            +
                ;
         | 
| 42007 | 
            +
                };
         | 
| 42008 | 
            +
             | 
| 42009 | 
            +
                def['$<=>'] = function(other) {
         | 
| 42010 | 
            +
                  var self = this;
         | 
| 42011 | 
            +
             | 
| 42012 | 
            +
                  
         | 
| 42013 | 
            +
                  var a = self.date, b = other.date;
         | 
| 42014 | 
            +
                  a.setHours(0, 0, 0, 0);
         | 
| 42015 | 
            +
                  b.setHours(0, 0, 0, 0);
         | 
| 42016 | 
            +
             | 
| 42017 | 
            +
                  if (a < b) {
         | 
| 42018 | 
            +
                    return -1;
         | 
| 42019 | 
            +
                  }
         | 
| 42020 | 
            +
                  else if (a > b) {
         | 
| 42021 | 
            +
                    return 1;
         | 
| 42022 | 
            +
                  }
         | 
| 42023 | 
            +
                  else {
         | 
| 42024 | 
            +
                    return 0;
         | 
| 42025 | 
            +
                  }
         | 
| 42026 | 
            +
                ;
         | 
| 42027 | 
            +
                };
         | 
| 42028 | 
            +
             | 
| 42029 | 
            +
                def['$=='] = function(other) {
         | 
| 42030 | 
            +
                  var self = this;
         | 
| 42031 | 
            +
             | 
| 42032 | 
            +
                  
         | 
| 42033 | 
            +
                  var a = self.date, b = other.date;
         | 
| 42034 | 
            +
                  return (a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate());
         | 
| 42035 | 
            +
                ;
         | 
| 42036 | 
            +
                };
         | 
| 42037 | 
            +
             | 
| 42038 | 
            +
                def['$>>'] = function(n) {
         | 
| 42039 | 
            +
                  var self = this;
         | 
| 42040 | 
            +
             | 
| 42041 | 
            +
                  
         | 
| 42042 | 
            +
                  if (!n.$$is_number) {
         | 
| 42043 | 
            +
                    self.$raise($scope.get('TypeError'));
         | 
| 42044 | 
            +
                  }
         | 
| 42045 | 
            +
             | 
| 42046 | 
            +
                  var result = self.$clone(), date = result.date, cur = date.getDate();
         | 
| 42047 | 
            +
                  date.setDate(1);
         | 
| 42048 | 
            +
                  date.setMonth(date.getMonth() + n);
         | 
| 42049 | 
            +
                  date.setDate(Math.min(cur, days_in_month(date.getFullYear(), date.getMonth())));
         | 
| 42050 | 
            +
                  return result;
         | 
| 42051 | 
            +
                ;
         | 
| 42052 | 
            +
                };
         | 
| 42053 | 
            +
             | 
| 42054 | 
            +
                def['$<<'] = function(n) {
         | 
| 42055 | 
            +
                  var self = this;
         | 
| 42056 | 
            +
             | 
| 42057 | 
            +
                  
         | 
| 42058 | 
            +
                  if (!n.$$is_number) {
         | 
| 42059 | 
            +
                    self.$raise($scope.get('TypeError'));
         | 
| 42060 | 
            +
                  }
         | 
| 42061 | 
            +
             | 
| 42062 | 
            +
                  return self['$>>'](-n);
         | 
| 42063 | 
            +
                ;
         | 
| 42064 | 
            +
                };
         | 
| 42065 | 
            +
             | 
| 42066 | 
            +
                Opal.defn(self, '$eql?', def['$==']);
         | 
| 42067 | 
            +
             | 
| 42068 | 
            +
                def.$clone = function() {
         | 
| 42069 | 
            +
                  var self = this;
         | 
| 42070 | 
            +
             | 
| 42071 | 
            +
                  return $scope.get('Date').$wrap(new Date(self.date.getTime()));
         | 
| 42072 | 
            +
                };
         | 
| 42073 | 
            +
             | 
| 42074 | 
            +
                def.$day = function() {
         | 
| 42075 | 
            +
                  var self = this;
         | 
| 42076 | 
            +
             | 
| 42077 | 
            +
                  return self.date.getDate();
         | 
| 42078 | 
            +
                };
         | 
| 42079 | 
            +
             | 
| 42080 | 
            +
                def['$friday?'] = function() {
         | 
| 42081 | 
            +
                  var self = this;
         | 
| 42082 | 
            +
             | 
| 42083 | 
            +
                  return self.$wday()['$=='](5);
         | 
| 42084 | 
            +
                };
         | 
| 42085 | 
            +
             | 
| 42086 | 
            +
                def['$monday?'] = function() {
         | 
| 42087 | 
            +
                  var self = this;
         | 
| 42088 | 
            +
             | 
| 42089 | 
            +
                  return self.$wday()['$=='](1);
         | 
| 42090 | 
            +
                };
         | 
| 42091 | 
            +
             | 
| 42092 | 
            +
                def.$month = function() {
         | 
| 42093 | 
            +
                  var self = this;
         | 
| 42094 | 
            +
             | 
| 42095 | 
            +
                  return self.date.getMonth() + 1;
         | 
| 42096 | 
            +
                };
         | 
| 42097 | 
            +
             | 
| 42098 | 
            +
                def.$next = function() {
         | 
| 42099 | 
            +
                  var self = this;
         | 
| 42100 | 
            +
             | 
| 42101 | 
            +
                  return $rb_plus(self, 1);
         | 
| 42102 | 
            +
                };
         | 
| 42103 | 
            +
             | 
| 42104 | 
            +
                def.$next_day = function(n) {
         | 
| 42105 | 
            +
                  var self = this;
         | 
| 42106 | 
            +
             | 
| 42107 | 
            +
                  if (n == null) {
         | 
| 42108 | 
            +
                    n = 1
         | 
| 42109 | 
            +
                  }
         | 
| 42110 | 
            +
                  return $rb_plus(self, n);
         | 
| 42111 | 
            +
                };
         | 
| 42112 | 
            +
             | 
| 42113 | 
            +
                def.$next_month = function() {
         | 
| 42114 | 
            +
                  var self = this;
         | 
| 42115 | 
            +
             | 
| 42116 | 
            +
                  
         | 
| 42117 | 
            +
                  var result = self.$clone(), date = result.date, cur = date.getDate();
         | 
| 42118 | 
            +
                  date.setDate(1);
         | 
| 42119 | 
            +
                  date.setMonth(date.getMonth() + 1);
         | 
| 42120 | 
            +
                  date.setDate(Math.min(cur, days_in_month(date.getFullYear(), date.getMonth())));
         | 
| 42121 | 
            +
                  return result;
         | 
| 42122 | 
            +
                ;
         | 
| 42123 | 
            +
                };
         | 
| 42124 | 
            +
             | 
| 42125 | 
            +
                def.$prev_day = function(n) {
         | 
| 42126 | 
            +
                  var self = this;
         | 
| 42127 | 
            +
             | 
| 42128 | 
            +
                  if (n == null) {
         | 
| 42129 | 
            +
                    n = 1
         | 
| 42130 | 
            +
                  }
         | 
| 42131 | 
            +
                  return $rb_minus(self, n);
         | 
| 42132 | 
            +
                };
         | 
| 42133 | 
            +
             | 
| 42134 | 
            +
                def.$prev_month = function() {
         | 
| 42135 | 
            +
                  var self = this;
         | 
| 42136 | 
            +
             | 
| 42137 | 
            +
                  
         | 
| 42138 | 
            +
                  var result = self.$clone(), date = result.date, cur = date.getDate();
         | 
| 42139 | 
            +
                  date.setDate(1);
         | 
| 42140 | 
            +
                  date.setMonth(date.getMonth() - 1);
         | 
| 42141 | 
            +
                  date.setDate(Math.min(cur, days_in_month(date.getFullYear(), date.getMonth())));
         | 
| 42142 | 
            +
                  return result;
         | 
| 42143 | 
            +
                ;
         | 
| 42144 | 
            +
                };
         | 
| 42145 | 
            +
             | 
| 42146 | 
            +
                def['$saturday?'] = function() {
         | 
| 42147 | 
            +
                  var self = this;
         | 
| 42148 | 
            +
             | 
| 42149 | 
            +
                  return self.$wday()['$=='](6);
         | 
| 42150 | 
            +
                };
         | 
| 42151 | 
            +
             | 
| 42152 | 
            +
                def.$strftime = function(format) {
         | 
| 42153 | 
            +
                  var self = this;
         | 
| 42154 | 
            +
             | 
| 42155 | 
            +
                  if (format == null) {
         | 
| 42156 | 
            +
                    format = ""
         | 
| 42157 | 
            +
                  }
         | 
| 42158 | 
            +
                  
         | 
| 42159 | 
            +
                  if (format == '') {
         | 
| 42160 | 
            +
                    return self.$to_s();
         | 
| 42161 | 
            +
                  }
         | 
| 42162 | 
            +
             | 
| 42163 | 
            +
                  return self.date.$strftime(format);
         | 
| 42164 | 
            +
                ;
         | 
| 42165 | 
            +
                };
         | 
| 42166 | 
            +
             | 
| 42167 | 
            +
                self.$alias_method("succ", "next");
         | 
| 42168 | 
            +
             | 
| 42169 | 
            +
                def['$sunday?'] = function() {
         | 
| 42170 | 
            +
                  var self = this;
         | 
| 42171 | 
            +
             | 
| 42172 | 
            +
                  return self.$wday()['$=='](0);
         | 
| 42173 | 
            +
                };
         | 
| 42174 | 
            +
             | 
| 42175 | 
            +
                def['$thursday?'] = function() {
         | 
| 42176 | 
            +
                  var self = this;
         | 
| 42177 | 
            +
             | 
| 42178 | 
            +
                  return self.$wday()['$=='](4);
         | 
| 42179 | 
            +
                };
         | 
| 42180 | 
            +
             | 
| 42181 | 
            +
                def.$to_s = function() {
         | 
| 42182 | 
            +
                  var self = this;
         | 
| 42183 | 
            +
             | 
| 42184 | 
            +
                  
         | 
| 42185 | 
            +
                  var d = self.date, year = d.getFullYear(), month = d.getMonth() + 1, day = d.getDate();
         | 
| 42186 | 
            +
                  if (month < 10) { month = '0' + month; }
         | 
| 42187 | 
            +
                  if (day < 10) { day = '0' + day; }
         | 
| 42188 | 
            +
                  return year + '-' + month + '-' + day;
         | 
| 42189 | 
            +
                ;
         | 
| 42190 | 
            +
                };
         | 
| 42191 | 
            +
             | 
| 42192 | 
            +
                def['$tuesday?'] = function() {
         | 
| 42193 | 
            +
                  var self = this;
         | 
| 42194 | 
            +
             | 
| 42195 | 
            +
                  return self.$wday()['$=='](2);
         | 
| 42196 | 
            +
                };
         | 
| 42197 | 
            +
             | 
| 42198 | 
            +
                def.$wday = function() {
         | 
| 42199 | 
            +
                  var self = this;
         | 
| 42200 | 
            +
             | 
| 42201 | 
            +
                  return self.date.getDay();
         | 
| 42202 | 
            +
                };
         | 
| 42203 | 
            +
             | 
| 42204 | 
            +
                def['$wednesday?'] = function() {
         | 
| 42205 | 
            +
                  var self = this;
         | 
| 42206 | 
            +
             | 
| 42207 | 
            +
                  return self.$wday()['$=='](3);
         | 
| 42208 | 
            +
                };
         | 
| 42209 | 
            +
             | 
| 42210 | 
            +
                def.$year = function() {
         | 
| 42211 | 
            +
                  var self = this;
         | 
| 42212 | 
            +
             | 
| 42213 | 
            +
                  return self.date.getFullYear();
         | 
| 42214 | 
            +
                };
         | 
| 42215 | 
            +
             | 
| 42216 | 
            +
                
         | 
| 42217 | 
            +
                function days_in_month(year, month) {
         | 
| 42218 | 
            +
                  var leap = ((year % 4 === 0 && year % 100 !== 0) || year % 400 === 0);
         | 
| 42219 | 
            +
                  return [31, (leap ? 29 : 28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month]
         | 
| 42220 | 
            +
                }
         | 
| 42221 | 
            +
              
         | 
| 42222 | 
            +
              })(self, null)
         | 
| 42223 | 
            +
            };
         | 
| 42224 | 
            +
             | 
| 42225 | 
            +
            /* Generated by Opal 0.8.0 */
         | 
| 42226 | 
            +
            Opal.modules["time"] = function(Opal) {
         | 
| 42227 | 
            +
              Opal.dynamic_require_severity = "error";
         | 
| 42228 | 
            +
              var self = Opal.top, $scope = Opal, nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass;
         | 
| 42229 | 
            +
             | 
| 42230 | 
            +
              Opal.add_stubs(['$strftime']);
         | 
| 42231 | 
            +
              return (function($base, $super) {
         | 
| 42232 | 
            +
                function $Time(){};
         | 
| 42233 | 
            +
                var self = $Time = $klass($base, $super, 'Time', $Time);
         | 
| 42234 | 
            +
             | 
| 42235 | 
            +
                var def = self.$$proto, $scope = self.$$scope;
         | 
| 42236 | 
            +
             | 
| 42237 | 
            +
                Opal.defs(self, '$parse', function(str) {
         | 
| 42238 | 
            +
                  var self = this;
         | 
| 42239 | 
            +
             | 
| 42240 | 
            +
                  return new Date(Date.parse(str));
         | 
| 42241 | 
            +
                });
         | 
| 42242 | 
            +
             | 
| 42243 | 
            +
                return (def.$iso8601 = function() {
         | 
| 42244 | 
            +
                  var self = this;
         | 
| 42245 | 
            +
             | 
| 42246 | 
            +
                  return self.$strftime("%FT%T%z");
         | 
| 42247 | 
            +
                }, nil) && 'iso8601';
         | 
| 42248 | 
            +
              })(self, null)
         | 
| 42249 | 
            +
            };
         | 
| 42250 | 
            +
             | 
| 41849 42251 | 
             
            /* Generated by Opal 0.8.0 */
         | 
| 41850 42252 | 
             
            (function(Opal) {
         | 
| 41851 42253 | 
             
              Opal.dynamic_require_severity = "error";
         | 
| @@ -41858,6 +42260,8 @@ if (c == null) c = nil; | |
| 41858 42260 | 
             
              self.$require("browser");
         | 
| 41859 42261 | 
             
              self.$require("browser/dom");
         | 
| 41860 42262 | 
             
              self.$require("opal_irb_jqconsole");
         | 
| 42263 | 
            +
              self.$require("date");
         | 
| 42264 | 
            +
              self.$require("time");
         | 
| 41861 42265 | 
             
              return ($a = ($b = $scope.get('Document'))['$ready?'], $a.$$p = (TMP_1 = function(){var self = TMP_1.$$s || this;
         | 
| 41862 42266 |  | 
| 41863 42267 | 
             
              return $scope.get('OpalIrbJqconsole').$create("#console")}, TMP_1.$$s = self, TMP_1), $a).call($b);
         | 
    
        data/examples/app-embeddable.rb
    CHANGED
    
    
    
        data/examples/app-jqconsole.rb
    CHANGED
    
    
    
        data/lib/opal-irb/version.rb
    CHANGED
    
    
    
        data/lib/opal-irb.rb
    CHANGED
    
    | @@ -34,11 +34,14 @@ module OpalIrbUtils | |
| 34 34 | 
             
               }.join("\n")
         | 
| 35 35 | 
             
              end
         | 
| 36 36 |  | 
| 37 | 
            -
              def self.include_code_mirror
         | 
| 38 | 
            -
             | 
| 39 | 
            -
             | 
| 40 | 
            -
             | 
| 41 | 
            -
             | 
| 37 | 
            +
              def self.include_code_mirror(https=nil)
         | 
| 38 | 
            +
             | 
| 39 | 
            +
                prefix = https ? 'https:' : ''
         | 
| 40 | 
            +
                cdn = 'cdnjs.cloudflare.com/ajax/libs/codemirror/5.7.0'
         | 
| 41 | 
            +
                %|<link rel="stylesheet" href="#{prefix}//#{cdn}/codemirror.css"/>| +
         | 
| 42 | 
            +
               require_scripts( [ "#{prefix}//#{cdn}/codemirror.js",
         | 
| 43 | 
            +
                                  "#{prefix}//#{cdn}/keymap/emacs.js",
         | 
| 44 | 
            +
                                  "#{prefix}//#{cdn}/mode/ruby/ruby.js"])
         | 
| 42 45 | 
             
             end
         | 
| 43 46 |  | 
| 44 47 | 
             
            end
         | 
    
        data/opal/object_extensions.rb
    CHANGED
    
    
    
        data/opal/opal_irb.rb
    CHANGED
    
    | @@ -6,15 +6,43 @@ require 'opal-parser'           # so I can have require_remote | |
| 6 6 | 
             
            # 'require' a javascript filename over the internet, asynchronously,
         | 
| 7 7 | 
             
            # so you'll have to delay before using.  Should be fine if typed by hand
         | 
| 8 8 | 
             
            # but if scripted add delay
         | 
| 9 | 
            -
            def require_js( | 
| 9 | 
            +
            def require_js(*urls, &block)
         | 
| 10 10 | 
             
              # used to use this, but don't want to depend on opal-jquery
         | 
| 11 11 | 
             
              # Element.find("head").append("<script src='#{js_filename}' type='text/javascript'></script>")
         | 
| 12 | 
            -
               | 
| 13 | 
            -
             | 
| 14 | 
            -
             | 
| 15 | 
            -
             | 
| 16 | 
            -
             | 
| 17 | 
            -
             | 
| 12 | 
            +
              promises = []
         | 
| 13 | 
            +
             | 
| 14 | 
            +
              opts = urls.last.is_a?(Hash) ? urls.pop : {}
         | 
| 15 | 
            +
             | 
| 16 | 
            +
              clear_promises = lambda do
         | 
| 17 | 
            +
                promises.each do |promise|
         | 
| 18 | 
            +
                  promise.resolve(false) unless promise.resolved?
         | 
| 19 | 
            +
                end
         | 
| 20 | 
            +
              end
         | 
| 21 | 
            +
             | 
| 22 | 
            +
              `setTimeout(#{clear_promises}, #{opts[:timeout]} * 1000)` if opts[:timeout]
         | 
| 23 | 
            +
             | 
| 24 | 
            +
              urls.each do |url|
         | 
| 25 | 
            +
                promise = Promise.new
         | 
| 26 | 
            +
                promises << promise
         | 
| 27 | 
            +
                loaded = lambda do
         | 
| 28 | 
            +
                  promise.resolve(true)
         | 
| 29 | 
            +
                end
         | 
| 30 | 
            +
                %x|
         | 
| 31 | 
            +
                  var script = document.createElement( 'script' );
         | 
| 32 | 
            +
                  script.type = 'text/javascript';
         | 
| 33 | 
            +
                  script.src = url;
         | 
| 34 | 
            +
                  script.onload = #{loaded};
         | 
| 35 | 
            +
                  document.body.appendChild(script);
         | 
| 36 | 
            +
                |
         | 
| 37 | 
            +
              end
         | 
| 38 | 
            +
             | 
| 39 | 
            +
              Promise.new.tap do |promise|
         | 
| 40 | 
            +
                Promise.when(*promises).then do |results|
         | 
| 41 | 
            +
                  block.call results if block
         | 
| 42 | 
            +
                  promise.resolve results
         | 
| 43 | 
            +
                end
         | 
| 44 | 
            +
              end
         | 
| 45 | 
            +
             | 
| 18 46 | 
             
            end
         | 
| 19 47 |  | 
| 20 48 | 
             
            # 'require' a javascrit filename over the internet, synchronously.
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: opal-irb
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.8. | 
| 4 | 
            +
              version: 0.8.1
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
            platform: ruby
         | 
| 7 7 | 
             
            authors:
         | 
| @@ -9,7 +9,7 @@ authors: | |
| 9 9 | 
             
            autorequire: 
         | 
| 10 10 | 
             
            bindir: bin
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date: 2015- | 
| 12 | 
            +
            date: 2015-12-08 00:00:00.000000000 Z
         | 
| 13 13 | 
             
            dependencies:
         | 
| 14 14 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 15 | 
             
              name: opal
         | 
| @@ -134,7 +134,7 @@ required_ruby_version: !ruby/object:Gem::Requirement | |
| 134 134 | 
             
                  version: '0'
         | 
| 135 135 | 
             
                  segments:
         | 
| 136 136 | 
             
                  - 0
         | 
| 137 | 
            -
                  hash:  | 
| 137 | 
            +
                  hash: 848123283666491420
         | 
| 138 138 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 139 139 | 
             
              none: false
         | 
| 140 140 | 
             
              requirements:
         | 
| @@ -143,7 +143,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 143 143 | 
             
                  version: '0'
         | 
| 144 144 | 
             
                  segments:
         | 
| 145 145 | 
             
                  - 0
         | 
| 146 | 
            -
                  hash:  | 
| 146 | 
            +
                  hash: 848123283666491420
         | 
| 147 147 | 
             
            requirements: []
         | 
| 148 148 | 
             
            rubyforge_project: 
         | 
| 149 149 | 
             
            rubygems_version: 1.8.23.2
         |